zoukankan      html  css  js  c++  java
  • WebDriver+TestNG+ANT_实现多浏览器兼容性测试

    使用说明

    整个Demo通过ANT TestNG的结合使用, 同时引入 log4J 方便记录日志。
    最后 通过 testng-results.xsl 文件将 TestNG 生成的报告美化。

    Demo 运行4个百度搜索脚本,每一个脚本都会在 IE firefox Chorme 中分别执行一次。


    Demo 下载地址:
    开源测试交流群  群共享 237754909
    文件名 ATS-WD.rar

    115网盘下载
    CSDN 下载

    1. 安装 ANT
    apache-ant-1.7.1-bin.zip

    下载地址:

    http://archive.apache.org/dist/ant/binaries/apache-ant-1.7.1-bin.zip


    第一步      解压apache-ant-1.7.1-bin.zip到某个盘符,这里以C盘做为例。

    第二步      bin所在目录设置为path环境变量的值之一:C:apache-ant-1.7.1in

    第三步      设置环境变量ANT_HOME为:C:apache-ant-1.7.1

    第四步      打开Dos窗口,输入ant -version检查是否正确,如果正确如下图

    C:Documents and SettingsAdministrator>ant -version

    Apache Ant version 1.7.1 compiled on June 27 2008






    2. 配置firefox的安装目录
    修改 src目录下的 testng.xml 文件

    1 <parameter name="firefox_dir"

    2                 value="D:/Program Files/Mozilla Firefox/Mozilla Firefox/firefox.exe" />

    复制代码


    value 为 本地 firefox的安装目录


    3. 执行脚本

    第一种方法 :在eclipse中导入项目,运行 ant 脚本 build.xml

    第二种方法 :用dos进入到ATS-WD的目录,直接输入命令 ant 即可。




    4. 查看报告

    通过ANT运行后的测试报告如下:

    在线展示:

    http://opentest.cn/test-output/Report.html



    截图中的 饼图需要第三方插件支持,firefoxchrome可以正常显示。ie中不会显示。
    在本地运行后,开打  test-output目录下的 Report.html  可以查看报告。







    脚本设计


    具体实现说明:
    主要方法是使用 InternetExplorerDriver  FirefoxDriver  ChromeDriver 运行相同的测试脚本。

    将每一种Driver  的启动写成 @Test 的方法,如下所示:

    @Test
        @Parameters( { "webSite" })
        public void setUp_InternetExplorerDriver(String webSite) throws Exception {
            //.\lib\IEDriverServer.exe  lib目录下的驱动
            System.setProperty("webdriver.ie.driver", ".\lib\IEDriverServer.exe");
            DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
            capabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,
                                       true);
            driver = new InternetExplorerDriver(capabilities);
            baseUrl = webSite;
            driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
            script(driver);
        }
        
        @Test
        @Parameters( { "firefox_dir", "webSite" })
        public void setUp_FirefoxDriver(String firefox_dir, String webSite)
                throws Exception {
            //firefox_dir 为本机 firefox安装目录
            System.setProperty("webdriver.firefox.bin", firefox_dir);
            driver = new FirefoxDriver();
            baseUrl = webSite;
            driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
            script(driver);
        }
        
        @Test
        @Parameters( { "webSite" })
        public void setUp_ChromeDriver(String webSite) throws Exception {
            //.\lib\IEDriverServer.exe  lib目录下的驱动
            System.setProperty("webdriver.chrome.driver", "./lib/chromedriver.exe");
            driver = new ChromeDriver();
            baseUrl = webSite;
            driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
            script(driver);
        }


    对于具体的测试脚本,写成一个新的方法,每一个driver都会调用该方法,如下所示:

    private void script(WebDriver driver) throws Exception {
            try {
                logger.log("开始");
                driver.get(baseUrl);
                driver.findElement(By.id("kw")).clear();
                driver.findElement(By.id("kw")).sendKeys("selenium");
                driver.findElement(By.id("kw")).submit();
                driver.findElement(By.linkText("下一页>")).click();
                driver.findElement(By.linkText("下一页>")).click();
                driver.findElement(By.linkText("下一页>")).click();
                assertEquals("selenium", driver.findElement(By.id("kw"))
                                               .getAttribute("value"));
                
                logger.log("结束");
                
            } catch (Exception e) {
                throw e;
            } finally {
                tearDown();
            }
        }




    ANT TestNG 配置

    ANT 脚本文件为 根目录下 的 build.xml
    主要任务是 编译脚本、调用TestNG执行脚本、将TestNG生成的报告美化。

    TestNG 配置文件为 src目录下的 testng.xml

    通过配置 testng.xml 可以到达 脚本 参数化 , 并发执行脚本的目的,如下所示

    <suite name="WebDriver兼容性测试" thread-count="4" parallel="tests">

            <parameter name="firefox_dir"
                    value="D:/Program Files/Mozilla Firefox/Mozilla Firefox/firefox.exe" />
            <parameter name="webSite" value="http://www.baidu.com" />


    thread-count="4" 为同时执行的线程数   parallel="tests" 为同时执行的测试级别



    日志配置

    log4J TestNG 中自带的日志功能结合。
    在脚本中写入的日志会分别记录在以下地方:

    1. 测试报告 -- Report.html
    2. logs文件夹中的日志文件
    3. 在控制台中打印


    对于每一个 webdriver脚本  开始先初始化一下:

        private static final SelLogger logger = SelLogger.getLogger(脚本名.class);


    在脚本中 使用
    logger.log("开始");
    logger.log("结束");




    目录结构

    src   目录为 源码
    lib    目录为 需要使用到的jar包文件,包括 ChromeDriver InternetExplorerDriver 需要使用的exe文件
    logs 目录为 日志文件,在脚本中使用     logger.log("XXXXXX")    
           会记录到该文件夹中
    classes 目录为 ANT 编译后的class文件夹,可删除
    test-output 目录为 测试报告目录 TestNG 自动生成,可删除

  • 相关阅读:
    音频(一)_音频认知(1.音频释义)
    音频_写在前面的话
    SignInWithAppleId(Apple登录接入)_unity篇
    编程工具~用了都说好的快捷键大杂烩
    Unity的PlayerPrefs存储路径
    unity如何判断应用的运行平台
    Unity资源加载机制www的坑
    VSCode快捷键
    MD5加密字符串并转化为base64(C#和PHP代码相同实现)
    转载:关于 Google Chrome 中的全屏模式和 APP 模式
  • 原文地址:https://www.cnblogs.com/mochengjun/p/6639583.html
Copyright © 2011-2022 走看看