簡體   English   中英

在 testNG Selenium 中並行執行測試

[英]Parallel execution of tests in testNG Selenium

我無法並行調用瀏覽器,這些瀏覽器目前正在一個接一個地調用。 需要一種在並行測試中調用瀏覽器的方法。
注意:在我的配置 xml 文件中,我將線程數保持為 2。

下面是我的配置文件:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE suite SYSTEM "testng.org/testng-1.0.dtd"; > 
<suite name="Parallel" parallel="tests" thread-count="4" > 
    <test verbose="3" name="<name>"> 
        <parameter name="platform" value ="win8"/> 
        <parameter name="browsername" value ="internet explorer"/> 
        <classes> 
            <class name="com.parallel.execution.ParallelExecution"> 
                <methods> 
                    <include name="testmethod1"/> 
                </methods> 
             </class> 
         </classes> 
     </test> 
</suite>

我們必須在簡單的 testng.xml 文件中定義兩個屬性“ parallel ”和“ thread-count ”。 見下文:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Parallel Execution suite" parallel="methods" thread-count="2">
  <test name="Regression 2">
    <classes>
      <class name="com.parallel.TestParallelExecution"/>
    </classes>
  </test>
</suite>

在上面,由於我們希望測試方法並行執行,我們將並行屬性設置為“方法”,線程計數屬性將控制要創建的最大線程數。

重新安裝TestNG解決了上述問題。

您必須明確編寫代碼來調用瀏覽器作為@Before配置的一部分,以便在每次運行 @Test 時調用瀏覽器。 我將指定多種方法中的一種,以便您獲得一個想法。

<suite name="Parallel" parallel="tests" thread-count="4" > 
    <test verbose="3" name="test1"> 
        <classes> 
            <class name="com.parallel.execution.ParallelExecution1"/>  
         </classes> 
    </test> 
    <test verbose="3" name="test2"> 
        <classes> 
            <class name="com.parallel.execution.ParallelExecution2"/>  
        </classes> 
     </test> 
</suite>

考慮一個包含 2 個tests設置為並行運行的套件文件。 我們期望 ParallelExecution1 中的@Test方法在第一個瀏覽器中運行,而 ParallelExecution2 中的@Test方法在第二個瀏覽器中運行。 因此,您需要一種機制來調用瀏覽器會話並運行您的測試方法。 進入BaseTest類。

public abstract class BaseTest {
    protected WebDriver driver;        

    @BeforeTest
    @Parameters({"browser"}) 
    public void init(String browser) {
        // Initialize your browser here. Code below is dummy
        driver = new FF();
    }

    @AfterTest
    public void end() {
        driver.close();
        driver.quit();
    }
}

現在在您的兩個測試類中繼承這個“BaseTest”。

public class ParallelExecution1 extends BaseTest {
    @Test
    public void test1() { 
    }
}


public class ParallelExecution2 extends BaseTest {
    @Test
    public void test2() { 
    }
}

現在這兩個測試都有@BeforeTest@AfterTest方法,它們將調用瀏覽器。

暫無
暫無

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

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