当前位置: 首页 > 知识库问答 >
问题:

TestNG并行数据提供程序

国兴贤
2023-03-14

我想在类中与数据提供者并行运行测试方法。我需要一个数据提供者,它每次在新测试方法开始为给定的测试运行生成部分动态数据之前都会被调用。让我用伪代码解释一下:

@DataProvider(parallel=true)
public Object[][] dp(){
  User user = createNewUser();
  return new Object[][]{
            {"s1", new AExtendsOtherObject(user), user},
            {"s2", new BExtendsOtherObject("any"), user},
}

@Test(dataProvider = "dp")
void test(String s, OtherObject o, User user){
}

<suite name="all" verbose="1" parallel="methods" data-provider-thread-count="5">

我怎样才能做到这一点?

共有2个答案

侯池暝
2023-03-14

你试过这个吗?来自公共文件:

https://howtodoinjava.com/testng/testng-executing-parallel-tests/#test_in_multiple_threads

慕嘉运
2023-03-14

好吧,现在我意识到我真正想要的是什么,我的问题看起来有点愚蠢。对此表示抱歉。无论如何,我的解决方案是:

@DataProvider(parallel=true)
public Iterator<Object[]> dp(){
  List<Object[]> list = new ArrayList<>();
  User user = createNewUser();
  list.add(new Object[]{"s1", new AExtendsOtherObject(user), user});
  user = createNewUser();
  list.add(new Object[] {"s2", new BExtendsOtherObject("any"), user});        
  return list.iterator();
}

这个解决方案唯一的问题是,如果createNewUser()需要很多时间,那么它会在任何测试方法开始之前立即将其提前处理。

 类似资料:
  • 我正在尝试通过TestNG进行多线程测试为测试实例化WebDrivers<代码>@AfterMethod在测试后关闭WebDrivers

  • 我有一个TestNG测试方法,使用数据提供程序使用多个参数运行: 有时我想并行运行检查测试,有时则不想。我可以通过将代码注释设置为DataProvider(parallel=true)或DataProvider(parallel=false)来控制这一点,但我希望将其作为运行时参数,而不是代码中的设置。 如何设置数据提供程序是否在TestNG套件XML文件中作为命令行参数或属性派生多个线程?

  • 我有一个TestNG Dataprovider测试,如下所示: 输入csv 读者 测验 有许多输入文件,每个测试都包含一个优先级。我想单独运行优先级为1的测试。 在没有数据提供者的情况下,我可以使用下面的IMethodInterceptor过滤测试。 样品测试: 由于数据提供者的优先级是动态的,因此我无法根据优先级过滤测试。 不应执行其他测试,而应跳过其他测试。

  • 我已使用以下方法在应用程序中输入凭据。 其中EnterText定义如下: 在测试类中,我写了下面的代码 我得到以下错误: 失败:loginProxy(“11”,“Priya”)java.lang.NumberFormatException:java.lang.Integer处为空。parseInt(未知源)位于java.lang.Integer。parseInt(未知源) 请帮助解决同样的问题。据

  • suite name=“knowledgetest”verbose=“5”configfailurepolicy=“continue”data-provider-thread-count=“10”parallel=“methods”thread-count=“5”

  • 我想在TestNg中并行运行硒测试,使用“数据提供者”。理想情况下,测试是按方法并行的(一个测试=一个方法),而不是简单的浏览器套件并行。我在某个地方读到过,一次可以控制大约5个ChromeDriver实例,所以我认为这应该是可能的。稍后,我计划转移到grid2。对于开发,我将通过右键单击XML配置文件上的运行来运行IntelliJ idea测试运行程序。 我在并行运行测试时遇到了问题(在grid