我正在尝试自动化一个场景,我想要一次登录到应用程序中,然后进行操作而不必再次重新登录。
考虑一下,我已经创建了一个包含@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 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>
我得到的错误是它仅从firstJavaClass
执行第一个测试,然后从secondJavaClass
执行第一个测试,然后抛出NullPointerException
失败。
我不确定我在写XML
时是否犯了错误或其他错误。因为如果我以TestNG test
的形式运行任何Java类,那么它执行得很好。请提出我该如何实现。提前致谢。
编辑:
这是secondJavaClass
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);
}
}