我的项目中有两个testNG套件。我想同时运行它们两个。使用网络驱动程序和Selenium并行执行两个套件
Suite1:
class A
class B
Suite2:
class C
class D
我想并联同一台机器上运行SUITE1
和SUITE2
。但是,SUITE1
的Class B
只应在Class A
之后运行。与第二个套件相同:第一个和第二个类需要串行运行。
我该如何做到这一点?
我的项目中有两个testNG套件。我想同时运行它们两个。使用网络驱动程序和Selenium并行执行两个套件
Suite1:
class A
class B
Suite2:
class C
class D
我想并联同一台机器上运行SUITE1
和SUITE2
。但是,SUITE1
的Class B
只应在Class A
之后运行。与第二个套件相同:第一个和第二个类需要串行运行。
我该如何做到这一点?
为了实现,您需要将注释添加为@Test(priority = ??)。优先级的默认值为零。
如果你没有提到优先级,它会把所有的测试用例作为“priority = 0”并执行。
如果我们定义优先级“优先=”,只有当所有这些都没有任何优先级设置为默认优先级的测试案例将被设为这些测试用例将得到执行,以“优先= 0”
您的需求不需要两个xml。按照这些,你应该有相同的测试并行运行。
<suite name="Test-class Suite" parallel="tests" thread-count="2">
<test name="Test-class test 1">
<classes>
<class name="com.ClassA" />
<class name="com.ClassB" />
</classes>
</test>
<test name="Test-class test 2">
<classes>
<class name="com.ClassC" />
<class name="com.ClassD" />
</classes>
</test>
确保您的并行参数有平行=“真”和线程数按您的要求。
要按指定顺序执行类,需要使用preserve-order =“true”。根据下面的xml文件,首先指定ClassB,以便ClassB按照我们指定的顺序先执行ClassA,然后按照指定顺序执行@Test方法。请使用优先级。像下面
@Test(priority=1)
下面
是例如xml文件..
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="tests" preserve-order="true">
<test name="TestA">
<classes>
<class name="com.test.ClassB"/>
<class name="com.test.ClassA"/>
</classes> </test> <!-- Test A-->
<test name="TestB">
<classes>
<class name="com.test.ClassD"/>
<class name="com.test.ClassC"/>
</classes> </test> <!-- Test B-->
</suite> <!-- Suite -->
*****更新为根据注释
嗨,
要执行二套房,需要创建两个xml文件并在这些xml文件中指定您的套件。然后创建另一个XML文件,这些套间调用的XML文件..
可以说我有在testng1.xml文件一间套房
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite1" parallel="false" preserve-order="true">
<test name="TestA">
<classes>
<class name="com.test.NewTest1"/>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
另一个套件testng2.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite2" parallel="false" preserve-order="true">
<test name="TestB">
<classes>
<class name="com.test.NewTest1"/>
</classes>
</test> <!-- Test -->
然后使用另一个testng.xml文件并调用这两个文件。通过执行这个文件,两个套件将被执行。
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="My test suite" preserve-order="true">
<suite-files>
<suite-file path="Testng1.xml"></suite-file>
<suite-file path="Testng2.xml"></suite-file>
</suite-files>
</suite>
谢谢你的答案:) –
但我需要从同一个XML运行Suite1和Suite2。 –
<!DOCTYPE套件系统 “http://testng.org/testng-1.0.dtd”> <套件名称= “套房套房的” 保留阶= “真正的” 线程数=“2 “> <套件文件路径=” TestNG1.xml”> <套件文件路径= “TestNG2.xml”> 套件-文件> 这是我的如何套件Suites文件看起来像 –