簡體   English   中英

TestNG 並行測試,打開兩個瀏覽器,但僅在 1 個瀏覽器中運行所有測試

[英]TestNG Parallel Testing, Opens two browser but runs all tests only in 1 browser

大家好,我有一個 XML class

<?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="Auto">
        <classes>
            <class name="Auto.....Name_of_class1......"/>
        </classes>
    </test>

    <test name="Bad">
        <classes>
            <class name="Bad.....Name_of_class2......"/>
        </classes>
    </test>
     </suit>

當我運行這個 XML 文件時,它首先打開兩個瀏覽器( Chrome ),然后運行這兩個類。 但這對我來說是令人困惑的部分

當瀏覽器打開時,在這兩個瀏覽器中,只有一個瀏覽器會測試用例。 在我的情況下,我並行運行兩個類,每個 class 有 2-3 個測試用例。 但所有測試用例都將在一個瀏覽器中運行。 第二個瀏覽器剛剛打開並轉到基地 URL

另外,我嘗試將並行更改為“class”、“True”,但沒有成功。 結果集也很亂,請看截圖

在此處輸入圖像描述

兩個類都調用:-

public static WebDriver initDriver() {
    
            if (driver == null) {
    
                switch (prop.getProperty("browser")) {
    
                case "chrome":
                    WebDriverManager.chromedriver().setup();
                    driver = new ChromeDriver();
                    driver.manage().deleteAllCookies();
                    break;
    
                case "firefox":    
                    driver = new FirefoxDriver(fOptions);
  
                    break;
    
                default:
                        System.out.println("Wrong driver was chosen!");
    
                }
    
                action = new Actions(driver);
                driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
                driver.manage().window().maximize();
            }
            return driver;
    
        }

這純粹是一個 Java 問題,與 (或 )關系不大。

static字段屬於 class(而不是類的實例),因此無論您調用多少次 class,它都只存在一次 您可以在此處此處以及許多其他來源中閱讀有關此內容的更多信息。

實際上,每次您的代碼執行driver = new ChromeDriver() (或driver = new FirefoxDriver() )時,它都會啟動一個您觀察到的新瀏覽器,並用新值覆蓋字段driver

為了並行運行測試,您必須使driver不是static 您還必須調整代碼以非靜態方式訪問此字段。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM