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

标签 java maven selenium-webdriver automated-tests testng

这就是我正在尝试做的事情。 我有一个测试,进入测试页面并执行一些复杂的任务,等待一段时间,然后在测试失败时截取屏幕截图,并使用 OCR 工具执行进一步的任务。我希望这个相同的测试同时在 10 个 chrome 浏览器 session 上运行,我们正在尝试用它来做一个准负载测试,并且由于使用第三方库测试已经足够复杂,使用像 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 浏览器上同时多次运行相同的测试。有没有更好的方法来实现?

最佳答案

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

关于java - 使用 Maven 在多个线程上同时运行单个 TestNG 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59740358/

相关文章:

java - Hibernate:哪一列???将数据类型 nvarchar 转换为数字时出错

Java TCP发送第一条消息,然后无限等待

java - 无法在 eclipse 上下文菜单中找到 run 来运行我的 spring mvc 项目

java - Travis-ci 无法找到 chromedriver

selenium - 无法连接到 Firefox

java - 使用 JPA/Hibernate 最小化 JSON 以反序列化和持久化复杂的 POJO

java - 在命令行中执行 headless eclipse

java - 无法在 IntelliJ 中启动 Spring Boot +thymeleaf 应用程序

maven - 我可以控制哪些 Artifact 在 Sonatype Nexus 中可用吗?

python - 在新选项卡中打开链接并在选项卡之间切换(Selenium WebDriver + Python)