Java 在Selenium TestNG XML中运行多个测试用例
我正在尝试自动化一个场景,在这个场景中,我希望登录一次应用程序,然后进行操作,而无需再次登录 考虑到这一点,我创建了一个基类,其中包含Java 在Selenium TestNG XML中运行多个测试用例,java,selenium,selenium-webdriver,testng,Java,Selenium,Selenium Webdriver,Testng,我正在尝试自动化一个场景,在这个场景中,我希望登录一次应用程序,然后进行操作,而无需再次登录 考虑到这一点,我创建了一个基类,其中包含@BeforeSuite,@BeforeTest,等等。。所有方法都包括驱动程序设置和特定类中的所有方法 然后我有3个Java文件,每个文件中包含多个测试用例 public class firstJavaClass extends TestBase { List<WebElement> elementList; WebElement e;
@BeforeSuite
,@BeforeTest
,等等。。所有方法都包括驱动程序设置和特定类中的所有方法
然后我有3个Java文件,每个文件中包含多个测试用例
public class firstJavaClass extends TestBase {
List<WebElement> elementList;
WebElement e;
@Test(priority = 0, enabled=true)
public void firstTest() {
new Login(driver, "user");
driver.get(baseURL);
implicitWait();
}
@Test(priority = 1, enabled=true)
public void secondTest() {
for(WebElement e : elementList)
Helper.getValue(e);
}
}
为什么在testng.xml中有两次secondJavaClass?并共享secondJavaClass的代码,既然您提到了
,那么从secondJavaClass执行第一个测试,然后抛出NullPointerException失败了secondJavaClass
,我在secondJavaClass
中为firstJavaClass
和thirdJavaClass
公共类secondJavaClass扩展了TestBase提供了常见的测试用例{List elementList;WebElement e;@Test(priority=0,enabled=true)public void pageTitleMain(){Helper.getCss(Profiles.getPageTitle(driver));}@Test(priority=1,enabled=true)public void pageTitleSub(){Helper.getCss(Profiles.getPageNameTitle(driver));}@Test(priority=2,enabled=true)public void unselectedSubNavMenu(){elementList=Profiles.subNavUnSelected(驱动程序);}
为什么要调用是否有任何After Test/class方法?我怀疑,在执行pageTitleMain方法后,驱动程序值会变为null。1)首先,这个问题与testng.xml无关。2)如果将一个类编写为两次,则只会执行一次(第二次类)3)请分享助手类的代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="TestSuite">
<test name="TEST">
<classes>
<class name="com.automation.firstJavaClass />
<class name="com.automation.secondJavaClass />
<class name="com.automation.thirdJavaClass />
<class name="com.automation.secondJavaClass />
</classes>
</test>
</suite>
public class secondJavaClass extends TestBase {
List<WebElement> elementList; WebElement e;
@Test(priority = 0, enabled=true)
public void pageTitleMain() {
Helper.getCss(Profiles.getPageTitle(driver));
}
@Test(priority = 1, enabled=true)
public void pageTitleSub() {
Helper.getCss(Profiles.getPageNameTitle(driver));
}
@Test(priority = 2, enabled=true) public void unselectedSubNavMenu()
{
elementList = Profiles.subNavUnSelected(driver);
}
}