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个窗口中运行测试脚本中定义的操作步骤,实现了浏览器的并发测试。