在Selenium TestNG XML中运行多个测试用例

时间:2018-08-17 15:19:58

标签: java selenium selenium-webdriver testng

我正在尝试自动化一个场景,我想要一次登录到应用程序中,然后进行操作而不必再次重新登录。

考虑一下,我已经创建了一个包含@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); 
} 
}

0 个答案:

没有答案