`
SariyaLee
  • 浏览: 149536 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

【转载】WebDriver+TestNG+ANT 实现多浏览器兼容性测试 - 美化testNG 报告

阅读更多

一 使用说明

整个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.1\bin
第三步      设置环境变量ANT_HOME为:C:\apache-ant-1.7.1
第四步      打开Dos窗口,输入ant -version检查是否正确,如果正确如下图
C:\Documents and Settings\Administrator>ant -version

Apache Ant version 1.7.1 compiled on June 27 2008




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

<parameter name="firefox_dir"
                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   


截图中的 饼图需要第三方插件支持,firefox和chrome可以正常显示。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 自动生成,可删除

 

分享到:
评论

相关推荐

    WebDriver+TestNG+ANT_实现多浏览器兼容性测试

    总的来说,`WebDriver+TestNG+ANT`的组合提供了一种高效、可扩展的解决方案,用于自动化Web应用的多浏览器兼容性测试。通过它们,开发者可以节省大量手动测试的时间,提高测试覆盖率,从而确保产品的质量和稳定性。...

    selenium+testng页面测试

    【标题】"selenium+testng页面测试"涉及的核心知识点主要围绕自动化测试工具Selenium以及测试框架TestNG展开,同时也提到了报告生成和错误处理机制。以下是对这些知识点的详细阐述: 1. **Selenium**: Selenium 是...

    ant + Selenium2 + testNG 整合的相关例子

    "Ant + Selenium2 + TestNG" 的整合是自动化测试领域中一种常见的解决方案,它结合了构建工具、浏览器自动化工具和测试框架的优势。 Ant 是 Apache 软件基金会的一个项目,是一款强大的Java构建工具,它通过XML配置...

    ant + Selenium2 + testNG 整合的相关demo

    本示例"ant + Selenium2 + testNG 整合的相关demo"提供了一个综合性的自动化测试解决方案,它结合了三个强大的工具,以实现高效、可靠的Web应用测试。以下是关于这些工具以及它们整合使用的详细解释: 1. **Ant**:...

    selenium2测试案例 多浏览器 兼容

    它允许测试人员编写可跨多个浏览器运行的脚本,确保软件在不同的环境下的兼容性和稳定性。在"多浏览器兼容"的场景下,Selenium2的强大功能得以体现,它支持如Chrome、Firefox、Internet Explorer、Edge以及Safari等...

    webDriver自动化框架

    【 WebDriver 自动化框架】是一种基于 Selenium WebDriver 的自动化测试解决方案,它结合了 Gradle 构建工具、Jenkins 持续集成服务器以及 TestNG 测试框架,为 Web 应用程序提供高效、可靠的测试自动化服务。...

    测试简历模板.doc

    1. Aaa平台测试项目:搭建ant+webdriver+testng+jenkins的自动化测试框架,并应用于企业saas平台的测试过程中。 2. 基于关键字驱动的自动化测试平台搭建项目:主导搭建以webdriver为核心的关键字驱动自动化测试平台...

    selenium培训

    - **Webdriver和Selenium 1代码兼容性整合**:解决新旧版本间的兼容性问题。 #### 四、进阶技术 - **深入学习Selenium WebDriver API**:全面掌握Selenium WebDriver提供的API接口及其使用方法。 - **制作Selenium ...

    3年Java全栈自动化简历模板.docx

    1. **UI 自动化测试项目**:在全球领先的旅行平台项目中,工程师使用 Java 设计自动化测试方案,采用 WebDriver 进行多浏览器自动化测试,使用 Maven、Jenkins、Git 和 TestNG 实现持续集成。此外,还利用 Excel ...

    web自动化课程

    - **Selenium WebDriver**:一种常用的Web自动化测试框架,可以直接与浏览器交互,模拟用户的操作行为。 - **JUnit**:Java语言中的一个单元测试框架,常用于自动化测试中对代码进行验证。 - **Maven + TestNG**:...

    Selenium自动化测试培训

    - **单元测试框架集成**:利用Ant、Maven、JUnit或TestNG等工具,构建Selenium测试框架。 - **日志和报告框架**:记录测试过程和结果,提供详尽的测试报告。 - **关键字驱动框架**:通过关键词抽象测试步骤,降低...

    selenium-java-2.47.1.zip

    在Java版的Selenium 2.47.1中,WebDriver已经成为主要的测试接口,因为它更直接、更强大,且支持更多的浏览器。 在 "selenium-2.47.1" 这个目录下,你可以找到以下关键组成部分: 1. **libs**:包含了Selenium ...

    selenium从入门到精通

    而Selenium Grid则可以实现在多个环境和浏览器上同时运行测试任务,提高测试效率。 在Selenium WebDriver的使用中,文档提到了对浏览器进行基本操作,例如打开浏览器、打开URL、浏览器导航、关闭浏览器以及获取当前...

    Selenium学习文档

    配合Selenium使用TestNG,可以创建更加复杂的测试场景,满足更多测试需求。 ReportNG是TestNG的扩展工具,它可以生成更加友好和详细的测试报告。通过这个工具,可以很直观地看到测试的成功率、失败原因等信息,使得...

    Selenium使用说明.pdf

    在选择Selenium IDE和Selenium RC结合使用时,可以利用IDE的录制功能快速生成测试脚本,然后通过RC执行这些脚本在不同浏览器上,实现跨浏览器测试。同时,结合Java和JUnit,可以进行自动化测试并生成详细的测试报告...

    selenium2资料

    总之,Selenium2是一个强大的自动化测试工具,它提供了丰富的API和多语言支持,帮助测试人员高效地进行Web应用的功能和兼容性测试。通过理解和使用这些文件,开发者可以构建、维护和执行一套完整的Selenium测试框架...

    SELENIUM测试自动化框架

    SELENIUM WebDriver通过各种浏览器驱动实现浏览器控制,而SELENIUM IDE是基于Firefox的录制回放工具。 SELENIUM WebDriver提供了多种语言的绑定,包括Java、Python、C#、Ruby等,便于开发者根据项目需要选择合适的...

    SeleniumProjectInstallationGuide

    2. **使用testng.xml运行冒烟测试**:通过配置testng.xml文件来运行一组冒烟测试用例。 3. **使用Excel运行功能测试**:根据Excel表格中的数据驱动测试用例的执行。 #### 十、安装项目到Eclipse 这部分文档似乎...

Global site tag (gtag.js) - Google Analytics