使用Maven同时在多个线程上运行一个TestNG测试

问题描述 投票:0回答:1

这是我要做的。我有一个测试,该测试转到测试页并执行一些复杂的任务,请稍等片刻,然后在测试失败时拍摄屏幕快照,并使用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>
...

尝试过一些骇人听闻的事情

数据提供者路线

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

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

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

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

java maven selenium-webdriver automated-tests testng
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.