兼容测试是软件测试中必不可少的一个过程。在有限的测试资源和时间内,如何快速的进行多个浏览器的兼容测试显得极为重要。
使用Selenium+TestNG进行并发测试
在我们经历的Web产品测试中,都需要进行多浏览器兼容测试,以确保在不同的浏览器中与预期一致,给用户带来相同的体验。 在多浏览器中进行回归测试需要占用更多的人力和时间,TestNG为我们提供了简单的方式来实现多浏览器并发测试。
如何实现?
- 创建基于Selenium+TestNG的测试类,以百度搜索为例
- 使用TestNG参数化注解,将不同的浏览器以参数形式传递给测试类的初始化方法
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
import java.util.concurrent.TimeUnit;
public class PageFactoryDemo {
WebDriver driver;
BaiduHomePage homePage;
SearchResultPage resultPage;
@Parameters("browser")
@BeforeClass
public void setUp(String browser) throws Exception {
if (browser.equalsIgnoreCase("chrome")) {
System.setProperty("webdriver.ie.driver", System.getProperty("user.dir") + "\\driver\\chromedriver.exe");
driver = new EventFiringWebDriver(new InternetExplorerDriver()).register(new LogListener());
} else if (browser.equalsIgnoreCase("ie")) {
System.setProperty("webdriver.ie.driver", System.getProperty("user.dir") + "\\driver\\IEDriverServer.exe");
driver = new EventFiringWebDriver(new InternetExplorerDriver()).register(new LogListener());
}
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.get("http://www.baidu.com");
}
@Test
public void testSearch() throws InterruptedException {
//创建首页对象
homePage = new BaiduHomePage(driver);
//输入搜索关键字
homePage.setKeyWords("测试");
//点击搜索按钮
homePage.clickSearchButton();
//创建搜索结果页对象
resultPage = new SearchResultPage(driver);
Thread.sleep(3000);
//获取搜索页标题
String titleText = resultPage.getTitleText();
System.out.println(titleText);
//验证页面标题中是否包含测试关键字
Assert.assertTrue(titleText.contains("测试"));
}
@AfterClass
public void tearDown() {
driver.quit();
}
}
3 . 创建testng.xml来运行测试,配置传递的参数。
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="All Test Suite" parallel="tests" thread-count="2">
<test name="ChromeTest">
<parameter name="browser" value="chrome" />
<classes>
<class name="testSuites.PageFactoryDemo" />
</classes>
</test>
<test name="IETest">
<parameter name="browser" value="ie" />
<classes>
<class name="testSuites.PageFactoryDemo" />
</classes>
</test>
</suite>
有兴趣的同学可以试试,有问题可随时联系我们。QQ群:368872334