51Testing软件测试论坛

标题: Selenium浏览器兼容性测试的实现方法 [打印本页]

作者: 测试积点老人    时间: 2018-12-28 14:51
标题: Selenium浏览器兼容性测试的实现方法

第一步:在基础类BaseTest中,写一个“获取浏览器”方法。

代码如下:

  1. public class BaseTest {

  2.     public WebDriver getWebDriver(String browser){

  3.        WebDriver driver = null;

  4.        if("ie".equals(browser)){

  5.        //  ie

  6.        System.setProperty("webdriver.ie.driver","D:/Program Files/WebDriver/IEDriverServer.exe");

  7.        DesiredCapabilities capab = DesiredCapabilities.internetExplorer();

  8.        capab.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true);

  9.       capab.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);

  10.        driver = new InternetExplorerDriver(capab);

  11.        }

  12.        else if ("chrome".equals(browser)){

  13.        //chrome

  14.        System.setProperty("webdriver.chrome.driver","D:/Program Files/WebDriver/chromedriver.exe");

  15.        driver = new ChromeDriver();

  16.        }  

  17.        else{

  18.        //firefox

  19.        System.setProperty("webdriver.firefox.bin","D:/Program Files/Mozilla Firefox/firefox.exe");

  20.        System.setProperty("webdriver.gecko.driver","D:/Program Files/WebDriver/geckodriver.exe");

  21.        driver = new FirefoxDriver();

  22.        }

  23.        driver.manage().window().maximize();

  24.        return driver;

  25.     }

  26. }
复制代码

第二步:在测试case中,继承BaseTest基础类(extends BaseTest)。

同时增加一个参数@Parameters("browser")来存放TestNG.xml传送过来的浏览器值,在setUp()中定义一个String browser,调动基础类的“获取浏览器方法”driver = this.getWebDriver(browser);

代码如下:

  1. public class YiiTestMenuQuery extends BaseTest{

  2.     WebDriver driver;

  3.     @BeforeClass

  4.     @Parameters("browser")

  5.     public void setUp(String browser) throws Exception {

  6.        driver = this.getWebDriver(browser);

  7.     }
  8. }
复制代码

第三步:以使用不同浏览器来运行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的代码如下:

  1. <?xml version="1.0" encoding="UTF-8"?>

  2. <suite name="Suite1">

  3.     <parameter name=”browser” value=”firefox” />   <!—火狐-->

  4.     <test name="Menu" preserve-order="true">      <!--菜单管理-->

  5.        <classes>

  6.           <class name="com.selenium.yan.YiiTestMenuQuery" />            
  7.           <class name="com.selenium.yan.YiiTestMenuCreate" />   

  8.           <class name="com.selenium.yan.YiiTestMenuDelete" />   

  9.           <class name="com.selenium.yan.YiiTestMenuBatchDelete" />  

  10.        </classes>

  11.     </test>

  12. </suite>
复制代码

3.2 使用谷歌浏览器运行case的代码如下:

  1. <?xml version="1.0" encoding="UTF-8"?>

  2. <suite name="Suite1">

  3.     <parameter name=”browser” value=”chrome” />   <!—谷歌-->

  4.     <test name="Menu" preserve-order="true">      <!--菜单管理-->

  5.        <classes>

  6.           <class name="com.selenium.yan.YiiTestMenuQuery" />            
  7.           <class name="com.selenium.yan.YiiTestMenuCreate" />   

  8.           <class name="com.selenium.yan.YiiTestMenuDelete" />   

  9.           <class name="com.selenium.yan.YiiTestMenuBatchDelete" />  

  10.        </classes>

  11.     </test>

  12. </suite>
复制代码

3.3 使用IE浏览器运行case的代码如下:

  1. <?xml version="1.0" encoding="UTF-8"?>

  2. <suite name="Suite1">

  3.     <parameter name=”browser” value=”ie” />   <!—ie浏览器-->

  4.     <test name="Menu" preserve-order="true">      <!--菜单管理-->

  5.        <classes>

  6.           <class name="com.selenium.yan.YiiTestMenuQuery" />            
  7.           <class name="com.selenium.yan.YiiTestMenuCreate" />   

  8.           <class name="com.selenium.yan.YiiTestMenuDelete" />   

  9.           <class name="com.selenium.yan.YiiTestMenuBatchDelete" />  

  10.        </classes>

  11.     </test>

  12. </suite>
复制代码



作者: Miss_love    时间: 2020-12-28 09:14
支持分享




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2