gpt4 book ai didi

java - 以编程方式在 TestNG xml 套件中设置测试参数以实现并行执行

转载 作者:行者123 更新时间:2023-12-01 18:17:07 24 4
gpt4 key购买 nike

我正在尝试以并行模式运行 TestNG 套件,但想要根据外部参数动态更改 threadCount。

如果测试数量 = threadCount (params Number) - 我可以通过以下方式使用 TestNG API 来做到这一点:

            List<String> params = Arrays.asList("1", "2");

suite.setThreadCount(params.size());
suite.setParallel(XmlSuite.ParallelMode.TESTS);

List<XmlTest> xmlTests = suite.getTests();

for (int i = 0; i < xmlTests.size(); i++) {
Map<String, String> paramsMap = new HashMap<>();
paramsMap.put("param", params.get(i));
xmlTests.get(i).setParameters(paramsMap);
}

但是如果测试 number > threadCount(params Number) 我想设置与 threadCount 相对应的参数:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="TestNG suite" parallel="tests" thread-count="2">

<test name="Test 1">
<parameter name="param" value="1"/>
<classes>
<class name="tests.Tests_1">
</class>
</classes>
</test>
<test name="Test 2">
<parameter name="param" value="2"/>
<classes>
<class name="tests.Tests_2">
</class>
</classes>
</test>
<test name="Test 3">
<parameter name="param" value="1"/>
<classes>
<class name="tests.Tests_3">
</class>
</classes>
</test>
</suite>

例如,对于 2 个 threadCount 和 6 个测试设置参数:1, 2, 1, 2, 1, 2;
对于 3 个 threadCount 和 5 个测试集:1, 2, 3, 1, 2

如何迭代测试并设置适当的参数?

最佳答案

您需要计算threadCount的索引:

int j = 0;
for (int i = 0; i < xmlTests.size(); i++) {

if (j>= params.size()) {
j = 0;
}

Map<String, String> paramsMap = new HashMap<>();
paramsMap.put("param", params.get(j));
xmlTests.get(i).setParameters(paramsMap);
j++;
}

关于java - 以编程方式在 TestNG xml 套件中设置测试参数以实现并行执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60345614/

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