51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1777|回复: 1
打印 上一主题 下一主题

Selenium浏览器兼容性测试的实现方法

[复制链接]
  • TA的每日心情
    擦汗
    昨天 09:05
  • 签到天数: 525 天

    连续签到: 2 天

    [LV.9]测试副司令

    跳转到指定楼层
    1#
    发表于 2018-12-28 14:51:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    第一步:在基础类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>
    复制代码


    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-14 09:05 , Processed in 0.059094 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表