我想按特定顺序在testng中运行测试。有可能吗?
例如,这是我的testng.xml文件。我想首先运行Chrome测试,然后运行firefox。我不希望他们并行运行。怎么做?
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="mycompany.myapp.local" parallel="none">
<test name="Test Module in Chrome">
<parameter name="selenium.browser" value="chrome" />
<parameter name="wheretorun" value="local" />
<parameter name="chrome.driver.path"
value="/path/to/chromedriver" />
<classes>
<class name="com.mycompany.TestClass">
<methods>
<include name="navigateToUserPage" />
<include name="createUser" />
<include name="verifySomething1" />
<include name="verifySomething2" />
<include name="logout" />
</methods>
</class>
</classes>
</test>
<test name="Test Module in Firefox">
<parameter name="selenium.browser" value="firefox" />
<parameter name="wheretorun" value="local" />
<classes>
<class name="com.mycompany.TestClass">
<methods>
<include name="loginWithCreatedUser" />
<include name="verifySomething1" />
<include name="verifySomething2" />
<include name="logout" />
</methods>
</class>
</classes>
</test>
</suite>
我正在努力实现这一目标: - 在1个测试中创建用户,并在另一个测试中使用相同的用户。所以我想先运行第一次测试并在第一次测试完成后运行第二次。
否则,是否可以选择在套件级别运行某些内容..比如创建用户并设置一些数据,然后运行这两个测试?
非常感谢您抽出时间帮助我。
答案 0 :(得分:2)
在我给你答案之前,我想说你应该总是努力并行。从长远来看,这将对您有所帮助。即使这意味着多次登录和退出,或者创建一个反复使用的测试用户池。测试应该很短,应该测试一件事而不依赖于其他测试。
但是因为理想并不总是可能的。
&#34; preserve-order如果为true,则此标记中的类将按照XML文件中的顺序运行。&#34;
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="mycompany.myapp.local" parallel="tests" thread-count="1" preserve-order="true">
<test name="Setup User" preserve-order="true">
<parameter name="selenium.browser" value="chrome" />
<parameter name="wheretorun" value="local" />
<parameter name="chrome.driver.path"
value="/path/to/chromedriver" />
<classes>
<class name="com.mycompany.TestClass">
<methods>
<include name="createUser" />
</methods>
</class>
</classes>
</test>
<test name="Test Module in Chrome" preserve-order="true">
<parameter name="selenium.browser" value="chrome" />
<parameter name="wheretorun" value="local" />
<parameter name="chrome.driver.path"
value="/path/to/chromedriver" />
<classes>
<class name="com.mycompany.TestClass">
<methods>
<include name="loginWithCreatedUser" />
<include name="verifySomething1" />
<include name="verifySomething2" />
<include name="logout" />
</methods>
</class>
</classes>
</test>
<test name="Test Module in Firefox" preserve-order="true">
<parameter name="selenium.browser" value="firefox" />
<parameter name="wheretorun" value="local" />
<classes>
<class name="com.mycompany.TestClass">
<methods>
<include name="loginWithCreatedUser" />
<include name="verifySomething1" />
<include name="verifySomething2" />
<include name="logout" />
</methods>
</class>
</classes>
</test>
</suite>
您还可以设置&#34;优先级&#34;在每次测试中确保它以正确的顺序运行。
再次,最好只设置4个静态用户,并行运行4个verifySomething测试和创建用户测试。