TestNg 中的 DataProvider 的线程并行度如何工作?我如何为 DataProvider 指定线程数?

How does thread parallelism work for DataProvider in TestNg and how can I specify the threadcount for DataProvider?

我们在TestNg的@Test注解中使用threadcount属性,但是@DataProvider注解没有这样的属性,那么是否可以为Dataprovider指定线程数,如果可以,那么如何?我在@DataProvider 注解中指定了 Parallel=true 并尝试从 Excel 中读取数据,有 19 组测试数据,当执行时默认情况下我发现创建了 10 个线程。我使用 Thread.currentThread() 以及每组测试数据来显示正在使用的线程,但我无法理解创建 10 个线程的过程和原因。

这是因为在 DataProvider 上将 parallel 设置为 true 时,testng 使用 10 作为默认值。这可以被 suite 标签上的 data-provider-thread-count 属性覆盖。示例:

<suite name="Sample Suite" data-provider-thread-count="20">
  <test name="Component Tests">
    <packages>
        <package name="com.something.tests" />
    </packages>
 </test>
</suite>

DataProvider 上的 testng 文档有这个以及更多:http://testng.org/doc/documentation-main.html#parameters-dataproviders