gpt4 book ai didi

java - 在 testng 中并行化类和方法

转载 作者:行者123 更新时间:2023-11-30 02:53:42 25 4
gpt4 key购买 nike

我有一个用例,我必须在一个类下动态运行某些测试方法。

我使用@factory注释来动态生成这些测试类。

我已经在上述类下并行运行了我的测试方法。

如何使测试类和测试方法并行?无论如何也可以这样做吗?

public class FactoryClass {

@Factory
public Object[] factoryMethod() {
return new Object[] { new TestClass(), new TestClass() }
}
}

public class TestClass {

@DataProvider(name = "firstDataProvider", parallel = true)
public Object[] firstDataProvider() {
return new Object[] { };
}

@DataProvider(name = "secondDataProvider", parallel = true)
public Object[] secondDataProvider() {
return new Object[] { };
}

@Test(dataProvider = "firstDataProvider")
public void firstTestMethod(String arg) {

}

@Test(dataProvider = "secondDataProvider")
public void secondTestMethod(String arg) {

}
}

测试.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1" parallel="methods" data-provider-thread-count="60">
<test name="test1">
<classes>
<class name="com.amriteya.test.FactoryMain"></class>
</classes>
</test>
</suite>

以下是我的类(class)的布局。

test.xml中,我设置了parallel="methods",但它没有为我提供正确的输出。

最佳答案

您不能同时为测试方法和测试类设置并行属性。看来您需要在套件级别设置并行测试,并在测试级别设置并行类/方法,这里的 testng xml 示例很清楚:

<suite name="Suite1" parallel="tests">
<test name="test1" parallel="methods">
<classes>
<class name="FactoryClass"/>
</classes>
</test>
<test name="test2" parallel="methods">
<classes>
<class name="FactoryClass"/>
</classes>
</test>
</suite>

所有方法都将在唯一的线程中运行。当您想要并行运行测试(例如在多组浏览器上)时,这种情况非常有用。套件级别的并行选项将定义您拥有例如两个浏览器池(Chrome 和 Firefox - 您将向测试传递适当的参数),测试级别的并行选项将定义池中有多少个浏览器。

关于java - 在 testng 中并行化类和方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37874072/

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