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

如何使用数据提供程序在testNG上并行运行测试?

幸鸿轩
2023-03-14

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

共有1个答案

桂杰
2023-03-14

也许您没有将DataProvider传递给您的构造函数。

为了并行运行测试,您需要执行以下操作:

TestNG配置:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<suite name="TestNG-OddCheckerTest" verbose="1" parallel="methods" thread-count="10" data-provider-thread-count="10">
    <test name="OddCheckerTest">
        <classes>
            <class name="com.mypackage.test.OddCheckerTest" />
        </classes>
    </test>
</suite>
package com.mypackage.test;

import org.testng.Assert;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Factory;
import org.testng.annotations.Test;

@Test
public class OddCheckerTest {

    private long number;

    @Factory(dataProvider = "numberList")
    public OddCheckerTest(long number) {
        this.number = number;
    }

    @DataProvider(name = "numberList", parallel = true)
    public static Object[][] getNumber() {
        return new Object[][]{
                {1}, {3}, {5}, {77}, {111}, {123}, {287}, {305}, {505}, {607}, {709}, {803}, {805}
        };
    }

    @Test
    public void testForOdd() throws InterruptedException {
        System.out.println(Thread.currentThread().getName() +  ": checking that [ " + number + " ] it's odd!");
        Thread.sleep(1000);
        Assert.assertTrue(number % 2 == 1, "Number [" + number + "] is not odd!");
    }
}
 类似资料:
  • 我想在类中与数据提供者并行运行测试方法。我需要一个数据提供者,它每次在新测试方法开始为给定的测试运行生成部分动态数据之前都会被调用。让我用伪代码解释一下: 我怎样才能做到这一点?

  • 我想用Selenium和TestNG来模拟谷歌搜索,同时使用各种搜索参数。下面是我的测试类和testng。xml。我已经使用下面的注释

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

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

  • 我正在通过testNG xml运行我的测试套件。以下是xml: 我使用的数据提供者注释为并行=true。我有大约2000个测试用例,它们在一个具有不同数据的测试用例中循环运行。当它不并行时,测试运行良好。当我尝试在4个线程中并行运行测试时,前后方法在同一个线程中执行,但是我的测试方法被分配给完全不同的线程。我如何确保对于测试用例,方法之前、方法之后和测试都在测试实例的同一线程中运行。

  • 我正在尝试并行运行我的测试,如果我的数据提供程序存在于我的@Test所在的同一类中,则一切正常。 然而,如果我将DataProvider放在一个单独的类中,并行运行有时运行良好,有时会失败。 以下是我的常用数据提供者代码 下面是我的一个“测试”