硒: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();
}
}

TestNG 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>

版本:

硒-爪哇 = 3.4.0

测试= 6.14.3

====

==================================请让我知道我该如何解决它。

谢谢!

首先尝试一个简单的示例,记录每个测试方法上的线程 ID,而无需调用 ChromeDriver

long id = Thread.currentThread().getId();
System.out.println("Sample test-method " + testName
+ ". Thread id is: " + id);

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

如果它并行记录了ID,则可能与ChromeDriver有关

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

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

编辑:
您可以使用测试.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".xml

尝试使用parallel="classes" 并且不使用数据提供程序线程计数="5",因为您在此处没有使用数据提供程序。

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Test" parallel="classes" thread-count="3">
<test name="Launch">
<classes>
<class name="test.demo.grid.TestOne" />
<class name="test.demo.grid.TestTwo" />
<class name="test.demo.grid.TestThree" />
</classes>
</test>
</suite>

你可以试试:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" configfailurepolicy="continue">
<parameter name="parallelSetup" value="tests" />
<parameter name="threadsNumber" value="3" />

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

在每个类中添加@BeforeClass注释,并在该注释中初始化WebDriver 并在每个班级@AfterClass概念中关闭驱动程序

相关内容

  • 没有找到相关文章

最新更新