【问题标题】:Running a single TestNG test on multiple threads simultaneously using Maven使用 Maven 在多个线程上同时运行单个 TestNG 测试
【发布时间】:2020-01-14 19:18:23
【问题描述】:

这就是我想要做的。 我有一个测试,它进入测试页面并执行一些复杂的任务,等待一段时间,然后在测试失败时截取屏幕截图并使用 OCR 工具执行进一步的任务。我希望这个相同的测试同时在 10 个 chrome 浏览器会话上运行,我们正在尝试对此进行准负载测试,并且由于使用第三方库的测试已经足够复杂,因此使用 Jmeter 的 WebDriver 插件之类的东西看起来并不这里可行。无论如何,无论我尝试什么,测试似乎都是一个接一个地运行,而不是打开 10 个浏览器窗口并并行运行。这是我迄今为止尝试过的,而不是环顾互联网。

TestNG.xml 路由

<suite name="UI Tests" parallel="methods" preserve-order="true" thread-count="10">

没用

Maven 路线

在 pom.xml 中添加以下内容

...
<build>
 <plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>3.0.0-M4</version>
    <configuration>
        <forkCount>10</forkCount>
        <reuseForks>true</reuseForks>
    </configuration>
  </plugin>
 </plugins>
</build>
...

尝试了一些有点hacky的东西

数据提供者路由

为测试提供唯一的数据,以便它可以同时运行相同的测试,但无济于事。

@DataProvider(name="Unique")
public static Object[][] unique(){
   return new Object[][] {
     {"someValue"},
     ....
     };
}

@Test(dataProvider="Unique")
public void test(String unique){
//test code
}

以上选项都不适用于我在 chrome 浏览器上同时多次运行相同的测试。有没有更好的方法来实现它?

【问题讨论】:

  • 您是否尝试使用例如@Test 注解中的 threadPoolSize 和 invocationCount 参数?
  • 哇这个好用,没想到这么简单。谢谢!如果您可以将此添加为答案,我可以将其标记为已接受。
  • 好的,谢谢 - 我添加为答案

标签: java maven selenium-webdriver automated-tests testng


【解决方案1】:

您是否尝试将 threadPoolSize 和 invocationCount 参数添加到 @Test 注释?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-25
    • 2019-05-05
    • 1970-01-01
    • 1970-01-01
    • 2013-03-10
    • 2017-06-17
    • 2018-01-31
    • 2011-12-24
    相关资源
    最近更新 更多