第一步:在基础类BaseTest中,写一个“获取浏览器”方法。 代码如下: - public class BaseTest {
- public WebDriver getWebDriver(String browser){
- WebDriver driver = null;
- if("ie".equals(browser)){
- // ie
- System.setProperty("webdriver.ie.driver","D:/Program Files/WebDriver/IEDriverServer.exe");
- DesiredCapabilities capab = DesiredCapabilities.internetExplorer();
- capab.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true);
- capab.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
- driver = new InternetExplorerDriver(capab);
- }
- else if ("chrome".equals(browser)){
- //chrome
- System.setProperty("webdriver.chrome.driver","D:/Program Files/WebDriver/chromedriver.exe");
- driver = new ChromeDriver();
- }
- else{
- //firefox
- System.setProperty("webdriver.firefox.bin","D:/Program Files/Mozilla Firefox/firefox.exe");
- System.setProperty("webdriver.gecko.driver","D:/Program Files/WebDriver/geckodriver.exe");
- driver = new FirefoxDriver();
- }
- driver.manage().window().maximize();
- return driver;
- }
- }
复制代码
第二步:在测试case中,继承BaseTest基础类(extends BaseTest)。 同时增加一个参数@Parameters("browser")来存放TestNG.xml传送过来的浏览器值,在setUp()中定义一个String browser,调动基础类的“获取浏览器方法”driver = this.getWebDriver(browser); 代码如下: - public class YiiTestMenuQuery extends BaseTest{
- WebDriver driver;
- @BeforeClass
- @Parameters("browser")
- public void setUp(String browser) throws Exception {
- driver = this.getWebDriver(browser);
- }
- }
复制代码
第三步:以使用不同浏览器来运行case,建立多个TestNG.xml文件。 在TestNG.xml文件中增加<parameter name=”browser” value=”浏览器名称” /> 通过TestNG.xml文件来执行多个case。把要执行的case,放入TestNG.xml文件中。选中TestNG.xml文件,右键,选择“Run As”-》“TestNG Suite”,即这个TestNG.xml文件中所有case都是以火狐浏览器运行的。 3.1 使用火狐浏览器运行case的代码如下: - <?xml version="1.0" encoding="UTF-8"?>
- <suite name="Suite1">
- <parameter name=”browser” value=”firefox” /> <!—火狐-->
- <test name="Menu" preserve-order="true"> <!--菜单管理-->
- <classes>
- <class name="com.selenium.yan.YiiTestMenuQuery" />
- <class name="com.selenium.yan.YiiTestMenuCreate" />
- <class name="com.selenium.yan.YiiTestMenuDelete" />
- <class name="com.selenium.yan.YiiTestMenuBatchDelete" />
- </classes>
- </test>
- </suite>
复制代码
3.2 使用谷歌浏览器运行case的代码如下: - <?xml version="1.0" encoding="UTF-8"?>
- <suite name="Suite1">
- <parameter name=”browser” value=”chrome” /> <!—谷歌-->
- <test name="Menu" preserve-order="true"> <!--菜单管理-->
- <classes>
- <class name="com.selenium.yan.YiiTestMenuQuery" />
- <class name="com.selenium.yan.YiiTestMenuCreate" />
- <class name="com.selenium.yan.YiiTestMenuDelete" />
- <class name="com.selenium.yan.YiiTestMenuBatchDelete" />
- </classes>
- </test>
- </suite>
复制代码
3.3 使用IE浏览器运行case的代码如下: - <?xml version="1.0" encoding="UTF-8"?>
- <suite name="Suite1">
- <parameter name=”browser” value=”ie” /> <!—ie浏览器-->
- <test name="Menu" preserve-order="true"> <!--菜单管理-->
- <classes>
- <class name="com.selenium.yan.YiiTestMenuQuery" />
- <class name="com.selenium.yan.YiiTestMenuCreate" />
- <class name="com.selenium.yan.YiiTestMenuDelete" />
- <class name="com.selenium.yan.YiiTestMenuBatchDelete" />
- </classes>
- </test>
- </suite>
复制代码
|