gpt4 book ai didi

java - TestNG 使用单线程数据提供程序并行运行

转载 作者:行者123 更新时间:2023-12-02 07:13:32 28 4
gpt4 key购买 nike

我想利用来自数据提供者的 1 次调用计数的并行测试,如何实现这一目标?

这里是一些示例代码:

public class Example {


@Test(dataProvider = "provider", threadPoolSize = 20)
public void test(final TestData td) {
System.out.println(td);
Assert.assertTrue(td.i >= 0);
}

@DataProvider
public Object[][] provider() {
final Random r = new Random(System.currentTimeMillis());
final Object[][] data = new TestData[5][1];
for (int i = 0; i < 5; i++) {
data[i][0] = new TestData(r.nextInt(5), i, "test string");
}
return data;
}

private class TestData {
public int random;
public int creationNum;
public String s;

public TestData(final int random, final int creationNum, final String s) {
this.random = random;
this.creationNum = creationNum;
this.s = s;
}

@Override
public String toString() {
final List<String> list = new ArrayList<>();
for (int j = 0; j < i; j++) {
list.add(s);
}
return "I = " + i + ", Creation Num: " + creationNum + ", " + StringUtils.join(list, ", ");
}
}
}

所以当我运行这个测试时,我希望看到creationNumber以随机顺序出现。问题是如果未提供 invokingCount,则 threadPoolSize 将被忽略。如果我提供这一点,我将看到用于多个测试的相同 TestData 实例——这是我不希望发生的情况。有没有办法让我以线程方式运行此测试,而无需多次测试相同的数据?

最佳答案

您可以设置@DataProvider(parallel = true)并使用您的 dataproviderthreadcount 来控制您想要生成的并行线程的数量。

关于java - TestNG 使用单线程数据提供程序并行运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15232664/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com