在同一个类中并行运行测试组

时间:2015-09-16 18:01:52

标签: java testing selenium-webdriver automation testng

我想知道是否有办法在testng.xml文件中并行运行测试,但测试只在一个类中找到。我发现的示例显示了如何在两个类中完成它,例如,运行类ExampleClass1Tests和ExampleClass2Tests可以通过...轻松完成。

<classes>
    <class name="somePackage.ExampleClass1Tests"/>
    <class name="somePackage.ExampleClass2Tests"/>
</classes>

这很容易。但是让我说我​​想要只有一个类测试分开的东西。我怎么能

a)并行运行这些WebDrivers?
b)几乎在队列而不是并行中运行这些。

谢谢!

2 个答案:

答案 0 :(得分:0)

你需要在testng xml中将set属性设置为parallel =“tests”

<suite name="Parallel test runs" parallel="tests" thread-count="2">

有“并行”参数。设置为“tests”因为我们想要并行运行测试。另一个参数是“线程计数”。如果设置为2,则将打开两个浏览器,并且将从列表中运行前两个测试。如果线程数为5,则将打开五个浏览器并且所有五个测试将并行执行!

对于测试,您的testng.xml结构应如下所示: -

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Parallel test runs" parallel="tests" thread-count="2">

<test name="T_01">
    <classes>
        <class name="testNG.Parallel.Test01" ></class>
    </classes>
</test>

<test name="T_02">
    <classes>
        <class name="testNG.Parallel.Test02" ></class>
    </classes>
</test>

<test name="T_03">
    <classes>
        <class name="testNG.Parallel.Test03" ></class>
    </classes>
</test>

<test name="T_04">
    <classes>
        <class name="testNG.Parallel.Test04" ></class>
    </classes>
</test>

<test name="T_05">
    <classes>
        <class name="testNG.Parallel.Test05" ></class>
    </classes>
</test>

</suite>

如果你想并行运行2个课程

<suite name="Parallel test suite" parallel="classes" thread-count="2">
For classes your testng.xml structure should be like below:-

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Parallel test suite" parallel="classes" thread-count="2">
  <test name="Test 1">
    <classes>
      <class name="com.parallel.TestParallelClassOne"/>
      <class name="com.parallel.TestParallelClassTwo"/>
    </classes>
  </test>
</suite>

现在你需要在同一个项目中的不同包中添加两个项目类,并使用我的1个示例testng结构并添加上面的属性。

如何运行两个套房: -

<suite name="allSuites">
  <suite-files>
    <suite-file path="suite1.xml" />
    <suite-file path="suite2.xml" />
    ...
  </suite-files>
</suite>

希望它会对你有所帮助:)。

如果仍然遇到任何问题,请回复我:)

答案 1 :(得分:0)

如果所有测试都在同一个类中,则需要在testng xml文件中设置parallel=methods

队列中的意思是顺序 - 如果你的测试之间存在依赖关系,那么你需要在@Test注释中添加dependsOnMethods。如果没有,您可以设置parallel=false,这将按顺序运行所有内容。