![](/img/trans.png)
[英]To run tests on different browsers using Selenium webdriver+ TestNG+Java
[英]Run selenium tests on different browsers via TestNG
誰能幫我,因為我真的不明白:
那是我的TestNG文件:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="GRID SAMPLE TEST" parallel="tests" verbose="3" thread-count="2">
<test name="GRID EXECUTION WITH CHROME" parallel="classes" verbose="3" thread-count="2">
<parameter name ="browserType" value="chrome"/>
<classes>
<class name ="Tests"/>
<class name ="Tests2"/>
</classes>
</test>
<test name="GRID EXECUTION WITH FF" parallel="classes" verbose="3" thread-count="2">
<parameter name ="browserType" value="firefox"/>
<classes>
<class name ="Tests"/>
<class name ="Tests2"/>
</classes>
</test>
</suite>
那就是我的setUp方法:
RegistrationPage rp;
@BeforeClass
@Parameters("browserType")
public void setUp(String browserType) throws InterruptedException {
rp = new RegistrationPage();
if (browserType.equalsIgnoreCase("firefox")) {
Configuration.browser = "firefox";
} else if (browserType.equalsIgnoreCase("chrome")){
Configuration.browser = "chrome";
}
Configuration.baseUrl = "http://demoqa.com/registration/";
}
我正在使用Selenide,它是Selenium的包裝,但這不是重點。 關鍵是我希望對chrome(此處為2)和firefox(至此處)運行相同的測試。 當我在調試時運行它們時,一切正常,在FF上進行了2個測試,在CHROME上進行了另外2個測試。 但是,當我在沒有調試的情況下正常運行它們時(右鍵單擊xml並以testNG的身份運行),那么我的所有測試都僅在FF(4)或僅在CHROME(4)上完成!
誰能解釋為什么? 我在這里做錯了嗎?
它當前失敗的原因是-您嘗試在使用XML時並行運行測試(與調試模式相反,我認為調試模式在單個線程中運行)。
這兩個測試(來自TestNG XML的test
元素)幾乎同時執行,都設置了Configuration.browser
字段,該字段被定義為static ,這意味着-它僅存在一個實例,並且無論稍后執行哪個線程都將其覆蓋。
可以通過依次執行測試或手動為每個線程創建一個單獨的WebDriver實例(根據參數browserType
)並使用WebDriverRunner.setWebDriver()
而不是Configuration.browser
。
例如:
@BeforeTest
@Parameters("browserType")
public void setUp(String browserType) throws InterruptedException {
rp = new RegistrationPage();
Configuration.baseUrl = "http://demoqa.com/registration/";
if (browserType.equalsIgnoreCase("firefox")) {
WebDriverRunner.setWebDriver(new FirefoxDriver());
} else if (browserType.equalsIgnoreCase("chrome")){
WebDriverRunner.setWebDriver(new ChromeDriver());
}
}
希望這可以幫助。
采用 :
@BeforeTest
注釋,然后它將使用您在testNG.xml的<test>
標記中提到的其他瀏覽器
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.