簡體   English   中英

如何在同一WebDriver上使用XML Runner運行2個測試?

[英]How can I Run 2 Tests Using XML Runner at the same WebDriver?

我將Selenium與Java WebDriver一起使用,並與測試Runner Suit(XML)一起使用,我有2個要運行的測試。

我在每個Test類中都設置了一個設置方法,這沒問題-測試運行良好(每個測試都使用其瀏覽器窗口)。

然后,我決定將setup方法移至配置類。 每個測試類都會擴展該類,這會產生一個問題,即第二次測試運行會使用相同的瀏覽器來覆蓋第一個測試運行。

設置類的方法代碼:

public class Configrations_And_ScreenShotsFunc_POM   {

protected WebDriver driver;

    public void setup()
    {
        System.setProperty("webdriver.edge.driver","C:\\Program Files (x86)\\Microsoft Web Driver\\MicrosoftWebDriver.exe");    
        driver = new EdgeDriver();
        driver.get(URL);
    }

測試1類代碼:

public class TestCase1_POM extends Configrations_And_ScreenShotsFunc_POM   {

@BeforeTest
public void Begain() throws InterruptedException
{
    setup();  //Setup Browser       
}

測試2類代碼:

public class TestCase2_POM extends Configrations_And_ScreenShotsFunc_POM   {

@BeforeTest
public void Begain() throws InterruptedException
{
    setup(); //Setup Browser        
}

Runner.Xml:

<?xml version="1.0" encoding="UTF-8"?>
<suite name="TestSuite" thread-count="2" parallel="tests">
    <test name="TestCase1">
        <parameter name="browser" value="Edge" />
        <classes>
            <class name="POM.Tests.TestCa se1_POM"></class>
        </classes>
    </test>
    <test name="TestCase2_POM">
        <parameter name="browser" value="Edge" />
        <classes>
            <class name="POM.Tests.TestCase2_POM"></class>
        </classes>
    </test>
</suite>

注釋:2個測試文件位於一個文件夾中,而配置類位於另一個文件夾中。

如何解決?

setup()方法上使用@BeforeTest注釋,而不要使用當前的Begin()並刪除Begin()

注釋@BeforeTest僅應對suite.xml文件中的每個<test>標記調用一次。 在所有測試類都從其擴展的基類中使用@BeforeTest方法中的瀏覽器實例化具有以下缺點:

  • 根據WebDriver實例的保存方式(作為靜態數據成員或作為實例變量),測試方法可以最終使用相同的WebDriver實例(對於靜態數據成員)(或)最終獲得NullPointerException (對於實例數據成員)

您可以考慮將瀏覽器實例化到更精細的級別,例如:

  • @BeforeClass (這里還有一個缺點是,如果您的類中有多個@Test注釋的測試方法都使用由@BeforeClass初始化的WebDriver實例,那么在並行執行期間,您最終將在測試中遇到競爭條件方法)或
  • @BeforeMethod注釋的方法。

我創建了一個博客文章,向您展示如何使用TestNG並行執行而不使用任何這些配置注釋,繼承等。請查看它是否對您有幫助。

博客鏈接: https : //rationaleemotions.wordpress.com/2013/07/31/parallel-webdriver-executions-using-testng/

暫無
暫無

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

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