如何在selenium中并行运行多个类


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" thread-count="4" parallel="tests"  preserve-order="true">
<test name="Login - firefox">
<parameter name="browserName" value="firefox"></parameter>
<classes>
<class name="com.qa.logintests.LoginTest" />
<class name="com.qa.logouttest.LogoutTest" />
</classes>
</test>
<test name="Login - chrome">
<parameter name="browserName" value="chrome"></parameter>
<classes>
<class name="com.qa.logintests.LoginTest" />
<class name="com.qa.logouttest.LogoutTest" />
</classes>
</test>
</suite> 
  1. 需要并行运行多个类,如果我只运行1个浏览器,parallel = none,那么代码工作正常。
  2. 但是如果我使用parallel = tests并尝试运行,那么对于第二个类命名为"LogoutTest",我将面临空指针异常。
  3. 谁能建议我如何解决这个问题?

由于我们希望并行执行类,我们必须在suite标签的属性中添加parallel="classes"

parallel="classes"代替parallel="tests"

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" thread-count="4" parallel="classes">
<test name="Login - firefox">
<parameter name="browserName" value="firefox"></parameter>
<classes>
<class name="com.qa.logintests.LoginTest" />
<class name="com.qa.logouttest.LogoutTest" />
</classes>
</test>
<test name="Login - chrome">
<parameter name="browserName" value="chrome"></parameter>
<classes>
<class name="com.qa.logintests.LoginTest" />
<class name="com.qa.logouttest.LogoutTest" />
</classes>
</test>
</suite> 

注意:如果一个类依赖于另一个类,例如,注销依赖于登录,那么很明显,它将抛出空指针异常。同时并行运行依赖的东西是不明智的。

最新更新