我正致力于使用TestNG和selenium自动测试网站。这个网站处理一堆学校的数据。
目前,我正在使用@Parameters
注释在所有浏览器中重复我的测试。但是,我需要为多个学校重新运行某些测试类(除了重新运行多个浏览器之外)。
更具体地说,假设我有这个SchoolTest.java
测试类。我需要为3所学校中的每一所学校重新运行整个课程,然后为每个浏览器重新运行这3所学校中的每一所学校,总共重复6次(2 * 3)。
我怎样才能做到这一点?我想要完成的伪代码如下。
For each browser
for each school
run TestNG test class.
答案 0 :(得分:0)
保持当前代码不变,您可以拥有此解决方案。为学校和浏览器创建单独的测试并将它们作为参数传递,因此在这种情况下,您最终将在testng.xml中进行六次测试
`<suite name="Parallel test runs" parallel="tests" thread-count="2">
<test name="T_01">
<parameter name="browser" value="chrome"/>
<parameter name="SCHOOL" value="name1"/>
<classes>
<class name="testNG.Parallel.Test01" ></class>
</classes>
</test>
<test name="T_02">
<parameter name="browsername" value="ff"/>
<parameter name="SCHOOL" value="name1"/>
<classes>
<class name="testNG.Parallel.Test01" ></class>
</classes>
</test>
<test name="T_03">
<parameter name="browser" value="chrome"/>
<parameter name="SCHOOL" value="name2"/>
<classes>
<class name="testNG.Parallel.Test01" ></class>
</classes>
</test>
<test name="T_04">
<parameter name="browsername" value="ff"/>
<parameter name="SCHOOL" value="name2"/>
<classes>
<class name="testNG.Parallel.Test01" ></class>
</classes>
</test>
</suite>`
否则你可以为学校提供3个@test方法,然后在testng.xml中创建2个测试并将浏览器作为参数传递。