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

使用@DataProvider并行执行测试

林弘壮
2023-03-14

我使用testNg用于使用java的Selenium自动化,我使用@DataProvider从excel获取数据并作为参数传递给测试脚本。

假设我在Excel中有10行数据,我的测试用例将按顺序执行10次,但现在我想并行运行这10个测试,同时使用线程。

这能做到吗?如果是的话,有人能给我一个同样的例子吗?

共有3个答案

柯唯
2023-03-14

BrowserStack和Sauce Labs都提供了并行TestNG测试的示例:

  • browserstack/testng browserstack:testng和browserstack自动化的Selenium示例
穆阳炎
2023-03-14

使用酱实验室并行执行,在那里你可以在虚拟机中执行一次30个线程。

还有一个建议,你可以使用硒网格,它将在不同的机器上并行执行。

张亦
2023-03-14

您可以在dataprovider方法中指定“parallel=true”,以启用并行执行。

示例代码:希望这有帮助。

@DataProvider(name="browserinfo",parallel=true)
    public static Object[][] browserinfo(){
        Object[][] testdata=new Object[][] {
            {Platform.WINDOWS,"firefox"},
            {Platform.LINUX,"chrome"},
            {Platform.MAC,"safari"}};

    return testdata;
}
 类似资料:
  • 问题内容: 我有一个测试,可以从数据提供者那里接收数据。我希望此测试与数据提供者的不同值并行运行。 我尝试了类似的方法: } 我收到的输出是: 你好:10 你好:12 你好:17 你好:11 你好:16 你好:14 你好:13 你好:15 产生10个线程,而我在线程池大小中指定5个。您能否告诉我们必须在上述代码段中添加哪些内容来控制数据提供程序线程池的大小。 问题答案: 您需要使用。在和不需要的值

  • 问题内容: 我想在TestNg中使用@dataprovider并行运行selenium测试。理想情况下,测试是按方法并行的(一种测试=一种方法),而不是浏览器的简单套件并行性。我读过某个地方的内容,一次可以控制大约5个ChromeDriver实例,因此我认为应该可以实现。稍后,我计划移至grid2。为了进行开发,我通过右键单击+在XML配置文件上运行,使用IntelliJ Idea测试运行器运行事

  • 我正在使用@dataprovider TestNG 注释来传递不同的数据集。我的 TestNG 类包含 @BeforeClass、@DataProvider、三种@Test方法(一种使用数据提供程序的测试)和@After类。 数据提供程序包含 3 组数据(用户名和密码) 我只想知道如何按照以下顺序执行测试 --执行@Beforeclass - --转到测试并从数据提供程序打印第二组数据 --执行第

  • 我一个类有5到6个方法,想在不同的节点上并行运行方法,我有网格2设置,里面有4个节点。 下面是我的测试。xml 我有一个测试工具,它初始化了login、common和utils类 在我的测试类中,我扩展了测试工具,在@Beforemethod中,我调用了inilze方法 如果我运行测试,我会看到以下问题 两个浏览器在每个节点中打开一个,但只有一个浏览器启动应用程序,另一个不启动。 如果我遗漏了什么

  • 我正在使用数据提供程序向每个测试方法传递数据。假设数据提供程序中有2行。 当前运行单个测试方法的所有迭代,然后运行第二个测试方法...例如: 但我想按以下顺序运行。 http://fruzenshtein.com/testng-dataprovider-run-tests-sequency/

  • 我目前正在使用testng selenium来自动化我的测试,我有以下场景: 我需要从excel文件中读取数据,转换对象中的每一行,并为每一行运行一个测试。我试图使用annotation@DataProvider返回一个对象数组,但是它只能返回迭代器和对象[]。是否有任何变通方法可用于从数据提供程序返回客户机对象数组?我尝试了以下代码,但它只打印来自Client2的数据: 编辑1:客户类别: 在控