首页 > 解决方案 > 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"));
    }       
}

注意:无头选项在属性文件中设置为“否”。因此,此脚本将启动浏览器。

标签: testng

解决方案


推荐阅读