Web測試項目中經常會進行瀏覽器兼容性相關的測試工作,而兼容性測試的工作重復性相當高,這里TestNG提供了並發執行執行測試用例的功能,可以讓測試用例以並發的形式執行,實現並發測試不同瀏覽器的兼容性測試需求。
這里以IE、Chrome、FireFox瀏覽器結合TestNGINX以並發方式進行瀏覽器訪問為例(IE、Chrome、Firefox調用方式請參考之前的博客)
測試代碼:
package com.testng.browser;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
public class MultipleBrowserSearchTest {
public WebDriver driver;
String baseUrl = "http://www.sogou.com/";
@Parameters("browser")
@BeforeClass
public void beforeTest(String Browser)
{
if(Browser.equalsIgnoreCase("firefox"))
{
System.setProperty("webdriver.firefox.bin", "C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");
driver = new FirefoxDriver();
//設置瀏覽器為全屏模式
driver.manage().window().maximize();
}else if(Browser.equalsIgnoreCase("ie"))
{
System.setProperty("webdriver.ie.driver", "C:\\Program Files\\Internet Explorer\\IEDriverServer.exe");
//設置IE瀏覽器默認存儲位置
driver = new InternetExplorerDriver();
//設置瀏覽器為全屏模式
driver.manage().window().maximize();
}else
{
//錕斤拷錕矯谷革拷錕斤拷錕斤拷錕僥拷洗媧⑽伙拷錕�
System.setProperty("webdriver.chrome.driver", "D:\\BaiduNetdiskDownload\\Chrome\\chromedriver.exe");
driver = new ChromeDriver();
//錕斤拷錕斤拷錕斤拷錕斤拷錕轎拷錕僥J�
driver.manage().window().maximize();
}
}
@Test
public void testSearch() {
driver.get(baseUrl);
WebElement inputBox = driver.findElement(By.id("query"));
Assert.assertTrue(inputBox.isDisplayed());
inputBox.sendKeys("光榮之路自動化測試");
//單擊搜素按鈕
driver.findElement(By.id("stb")).click();
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Assert.assertTrue(driver.getPageSource().contains("光榮之路"));
}
@AfterClass
public void afterTest() {
//退出瀏覽器
driver.quit();
}
}
testng.xml文件的配置內容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="tests" thread-count="3">
<!-- 火狐瀏覽器 -->
<test name="FirefoxTest">
<parameter name="browser" value="firefox"></parameter>
<classes>
<class name="com.testng.webdriver.MultipleBrowserSearchTest"/>
</classes>
</test>
<!-- IE瀏覽器 -->
<test name="IETest">
<parameter name="browser" value="ie"></parameter>
<classes>
<class name="com.testng.webdriver.MultipleBrowserSearchTest"></class>
</classes>
</test>
<!-- 谷歌瀏覽器 -->
<test name="ChromeTest">
<parameter name="browser" value="chrome"></parameter>
<classes>
<class name="com.testng.webdriver.MultipleBrowserSearchTest"></class>
</classes>
</test>
</suite>
運行結果:在運行過程中,可以看到系統同時彈出了IE、Chrome、FireFox的瀏覽器窗口,並在這3個窗口中運行測試腳本中定義的操作步驟,實現了瀏覽器的並發測試。
