在多个浏览器中测试您的Web应用程序非常重要。每种浏览器以不同的方式处理代码,因此用户体验可能会因测试人员的不同而有所差异,因此,我们有责任确保我们的应用程序在大多数常用的浏览器(如firefox,chrome和IE)上都能正常运行。
测试NG允许我们使用TestNG参数自动进行多浏览器测试。在本文中,我们将详细介绍如何通过一个简单的示例来实现这一目标。
例。
1.创建一个简单的测试脚本。
2.配置它以将“浏览器类型”作为参数传递。
package test; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.ie.InternetExplorerDriver; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Parameters; import org.testng.annotations.Test; public class MultiBrowserTest { public WebDriver driver; @Parameters("browser") @BeforeClass // Passing Browser parameter from 测试NG xml public void beforeTest(String browser) { // If the browser is Chrome, then do this if(browser.equalsIgnoreCase("chrome")) { System.setProperty("webdriver.ie.driver", "C:\\Softwares\\chromedriver_win32\\chromedriver.exe"); driver = new InternetExplorerDriver();; // If browser is IE, then do this }else if (browser.equalsIgnoreCase("ie")) { // Here I am setting up the path for my IEDriver System.setProperty("webdriver.ie.driver", "D:\\QA\\drivers\\IEDriverServer.exe"); driver = new InternetExplorerDriver(); } // Doesn't the browser type, lauch the Website driver.get("http://www.yubo666.com"); } // Once Before method is completed, Test method will start @Test public void 搜索() throws Exception { Thread.sleep(5000); driver.findElement(By.xpath("*//input[@class='search-field']")).sendKeys("appium"); driver.findElement(By.xpath("*//input[@class='search-submit']")).click(); driver.quit(); } @AfterClass public void afterTest() { driver.quit(); } }
3.在testng.xml中提及浏览器类型的详细信息
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="Suite"> <test name="ChromeTest"> <parameter name="browser" value="chrome" /> <classes> <class name="test.MultiBrowserTest" /> </classes> </test> <test name="IETest"> <parameter name="browser" value="ie" /> <classes> <class name="test.MultiBrowserTest" /> </classes> </test> <!-- Test --> </suite> <!-- Suite -->
4.以TestNG Suit的身份运行。
并行执行- 考虑要在多个浏览器上并行执行测试,然后对testng.xml稍作更改即可实现
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="Suite" parallel="tests"> <test name="ChromeTest"> <parameter name="browser" value="chrome" /> <classes> <class name="test.MultiBrowserTest" /> </classes> </test> <test name="IETest"> <parameter name="browser" value="ie" /> <classes> <class name="test.MultiBrowserTest" /> </classes> </test> <!-- Test --> </suite> <!-- Suite -->
.