testng - TestNG 并行运行问题
问题描述
我正在尝试将 testng.xml 作为并行运行的 TestNG 套件运行。前面提到的每个类都有 3 到 4 个测试。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="Test Suite - Parallel" thread-count="3" parallel="methods" >
<test name="Parallel Tests">
<classes>
<class name="com.qa.tests.LoginPageTest"></class>
<class name="com.qa.tests.HomePageTest"></class>
<class name="com.qa.tests.ProductsPageTest"></class>
</classes>
</test>
</suite>
在将此 testng.xml 作为 testNG 套件运行时,浏览器 (chrome) 正在打开但无法看到它正在导航到应用程序 URL。所有浏览器都是空白的。并在控制台中收到以下错误。
功能 {acceptInsecureCerts: false, browserName: chrome, browserVersion: 92.0.4515.159, chrome: {chromedriverVersion: 92.0.4515.107 (87a818b10553..., userDataDir: C:\Users\XXXX\AppData\Loca...}, goog:chromeOptions :{debuggerAddress:localhost:61727},javascriptEnabled:true,networkConnectionEnabled:false,pageLoadStrategy:正常,平台:WINDOWS,platformName:WINDOWS,代理:Proxy(),setWindowRect:true,strictFileInteractability:false,超时:{implicit:0, pageLoad:300000,脚本:30000},unhandledPromptBehavior:dismiss and notify,webauthn:extension:credBlob:true,webauthn:extension:largeBlob:true,webauthn:virtualAuthenticators:true} 会话ID:7f2acb8109497d5b031fa8bc22839ba7 发生异常:org.openqa.selenium。 NoSuchSessionException:无效的会话 id 构建信息:版本:'3.141.59',修订:'e82be7d358',时间:'2018-11-14T08:17:03' 系统信息:主机:'DESKTOP-XXXXXXX',ip:'XXX.XX.0.XXX',os.name:'Windows 10',操作系统。拱:'amd64',os.version:'10.0',java.version:'16.0.1' 驱动信息:org.openqa.selenium.chrome.ChromeDriver
驱动程序初始化代码:
package com.sd.qa.base;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import com.sd.qa.utils.TestUtils;
import io.github.bonigarcia.wdm.WebDriverManager;
public class TestBase
{
public static WebDriver driver;
public static Properties prop;
public TestBase()
{
try
{
prop = new Properties();
FileInputStream inStream = new FileInputStream(System.getProperty("user.dir") + "\\src\\main\\java\\com\\sd\\qa\\config\\config.properties");
prop.load(inStream);
}
catch(FileNotFoundException exp)
{
exp.printStackTrace();
}
catch(IOException exp)
{
exp.printStackTrace();
}
}
public static void initialization()
{
String sBrowserName = prop.getProperty("browser");
switch(sBrowserName.toLowerCase())
{
case "chrome":
WebDriverManager.chromedriver().setup();
if(prop.getProperty("headless").toLowerCase().equals("yes"))
{
ChromeOptions options = new ChromeOptions();
options.addArguments("--headless");
driver = new ChromeDriver(options);
}
else
{
driver = new ChromeDriver();
}
break;
default:
break;
}
driver.manage().window().maximize();
driver.manage().deleteAllCookies();
driver.manage().timeouts().pageLoadTimeout(TestUtils.PAGE_LOAD_TIMEOUT, TimeUnit.SECONDS);`enter code here`
driver.manage().timeouts().implicitlyWait(TestUtils.IMPLICIT_WAIT, TimeUnit.SECONDS);
driver.get(prop.getProperty("autpath"));
}
}
注意:无头选项在属性文件中设置为“否”。因此,此脚本将启动浏览器。
解决方案
推荐阅读
- python - 为什么在使用 .str 访问器对数据框中的对象类型行进行切片时出现属性错误?
- javascript - Asp.Net Core - 使用 Ajax 将 Ckeditor textarea 值传递给控制器?
- javascript - 为什么 this.reponseText 没有给我一个 JSON 对象?
- node.js - MongoDB (Mongoose) - 仅获取嵌套项等于值的记录
- python - 如何在 Python 中使用带有 WxWidgets 的 WxFormBuilder 拥有多个上下文菜单
- firebase - 使用 Cloud Firestore 为每个帖子实现评论部分
- python - Python 中的标准缩放器
- c++ - 从 1 到 n 的二进制数的计数
- android - 在 Android 11 设备上将目标版本更新为 30 后,从意图打开 Android 地图并从意图拨打电话不起作用
- python - 保留对索引的 Python 引用