首页 > 解决方案 > Selenium:TestNG:测试未并行运行

问题描述

我有一个包含三个类文件的简单 Maven 项目。当我运行我的 testng.xml 文件时,测试是连续运行的。

我尝试保留 parallel="classes", parallel="methods", parallel="tests" 但没有运气。还尝试将 testng 版本从6.9.0 更改为 7.0.0,但没有成功。

期待:

测试应该并行运行

怎么了:

测试按顺序运行

以下是我的项目和所有文件:

测试等级:1

public class TestOne {

private static WebDriver driver;
private static String baseURL;

@Test
public void launch() throws IOException {
    baseURL = "http://www.gmail.com";
    System.setProperty("webdriver.chrome.driver", "path");
    WebDriver driver = new ChromeDriver();
    driver.get(baseURL);
    driver.quit();
    }
}

测试等级:2

public class TestTwo {

private static WebDriver driver;
private static String baseURL;

@Test
public void launch() throws IOException {
    baseURL = "http://www.gmail.com";
    System.setProperty("webdriver.chrome.driver", "path");
    WebDriver driver = new ChromeDriver();
    driver.get(baseURL);
    driver.quit();
    }
}

测试等级:3

public class TestThree {

private static WebDriver driver;
private static String baseURL;

@Test
public void launch() throws IOException {
    baseURL = "http://www.gmail.com";
    System.setProperty("webdriver.chrome.driver", "path");
    WebDriver driver = new ChromeDriver();
    driver.get(baseURL);
    driver.quit();
    }
}

测试NG xml:

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

suite name="Test" parallel="tests" thread-count="3" data-provider-thread-count="5"

<test name="Launch">
    <classes>
        <class name="test.demo.grid.TestOne" />
        <class name="test.demo.grid.TestTwo" />
        <class name="test.demo.grid.TestThree" />
    </classes>
</test>

版本:

硒 java = 3.4.0

测试 = 6.14.3

==================================

请让我知道如何解决它。

谢谢!

标签: javaseleniumselenium-webdriverselenium-chromedrivertestng

解决方案


<test>标签只是您的一个testng.xml,这就是并行执行不起作用的原因。

在您的情况下,您需要使用parallel="classes"并且所有类都将并行执行。

编辑:
您可以将 testng.xml 用作:

<test name="Launch">
    <classes>
        <class name="test.demo.grid.TestOne" />
    </classes>
</test>
<test name="Second test">
    <classes>
        <class name="test.demo.grid.TestTwo" />
    </classes>
</test>
<test name="Third test">
    <classes>
        <class name="test.demo.grid.TestThree" />
    </classes>
</test>

现在parallel="tests"在 testng.xml 中使用


推荐阅读