java - 我可以使用单个驱动程序在 Selenium (Java) 中并行运行多个测试吗?
问题描述
根据我的项目的结构方式,它是由调用一个静态驱动程序的所有函数组成的,因为我没想到我需要同时进行许多测试。现在我正在使用 TestNG,现在它正在打开多个测试并在其中一个窗口中执行两个测试操作,从而有效地使测试崩溃。
发生这种情况是因为我所做的所有基本功能(例如单击按钮、登录用户等)都从我命名为 DriverManager 的类中调用了一个静态驱动程序。为了改变这一点,我基本上必须重构整个代码,将驱动程序作为我所做的大多数函数的入口对象。
有什么方法可以只使用一个驱动程序使用 TestNG 并行进行测试吗?
解决方案
Yes you can do it ,
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="tests" thread-count="2">
<test name="Test">
<classes>
<class name="Parallel"/>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
This is XML file
Parallel is class name
You can do parallel by **method,tests,classes and instances**
following code for run test parallel
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.Test;
public class Parallel {
WebDriver driver;
@Test
public void test1() {
System.setProperty("webdriver.chrome.driver", "C:\\Users\\User\\IdeaProjects\\SeleniumParallelTestingFinal\\src\\main\\resources\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();
driver.get("https://www.google.com/");
driver.findElement(By.name("q")).sendKeys("Testing");
}
@Test
public void test2() {
System.setProperty("webdriver.gecko.driver","C:\\Users\\User\\IdeaProjects\\SeleniumParallelTestingFinal\\src\\main\\resources\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();
driver.manage().window().maximize();
driver.get("https://www.google.com/");
driver.findElement(By.name("q")).sendKeys("Testing");
}
public static void main(String[] args) throws Exception {
System.out.println("WELCOME TO WORLD JESUS");
}
@AfterMethod
public void tearDown()
{
}
}
推荐阅读
- sql - 无效的列类型查询
- c# - 动态创建新列表
并添加 n 行 - C# - c# - 带有 Ninject 和 EF Core 的 MVC 5,上下文在一次查询后抛出异常
- php - 根据用户群的 Laravel 5.6 验证唯一规则(高级)
- angular - 在 Angular 6 中检索和显示 Firestore 文档
- sql-server - 在 SQL Server 中根据具有重复值的多个列计算字段
- windows - 如何使用批处理脚本重命名多个文件
- java - 处理空异常获取属性方法
- python - Python简单教程变量未定义问题
- vba - 选择多个 MS Word 页面并复制所选内容