zoukankan      html  css  js  c++  java
  • Selenium的Web自动化测试(送源码)

    8.1  Selenium自动化测试准备

    1Selenium介绍

    Selenium是一个Web开源自动化测试框架,页面级操作,模拟用户真实操作,API从系统层面触发事件。

    Selenium 1.0 

    Sever/Client工作方式,可在localremote机器上运行基于js注入的case底层。

    为什么一定要用代理服务器的模式?答案是同源策略,它是由Netscape 提出的一个著名的安全策略,现在所有可支持Javascript 的浏览器都在使用这个策略。

    Selenium 2.0

    Selenium 2.0基于Selenium 1.0(即Javascript )并结合其WebDriver来模拟用户的真实操作。WebDriver原生绑定到浏览器,绕过浏览器安全模型。它有很好的处理Ajax的能力,并且支持多种浏览器(如SafariIEFirefoxChrome等),可以运行在多种操作系统上面。目前,大家几乎都在使用Selenium 2.0

    2.基于Java开发

    1Selenium IDE录制用例,回放,导出Java代码。

    2)多种方式定位并控制页面元素: 

    —Web元素定位  

    —id name linktext xpath tag css 

    —异常处理

    3)自动化测试用例封装和设计原则参考如图8.1所示。

          8.1

    —安装JDK,配置JDK环境变量。

    —安装Eclipes

    3.运行时注意驱动与浏览器的版本

    默认为火狐(Firefox)驱动,如chromedriver.exeIEDriverServer.exe

    注意,版本需要兼容JDK 1.7以及IE 8IE 10IE 11及以上需要更新驱动才能支持,请大家自行研究更新版本驱动或采用旧版本浏览器。

    4.环境搭建的简要步骤

    1)安装JDK,配置JDK环境变量。

    2)安装Eclipes  

    3)安装火狐SeleniumIDE、谷歌ChromedriveIE driver

    4)加入jxllog4jSelenium包。

    5)加入JUnit包,创建JUnit测试类。 

    6)加入TestNG包,创建TestNG测试类 TestNG.xml

    7)安装Ant,配置Ant环境变量 build.xml

    8)安装JenkinsTomcat,配置Tomcat环境变量。

    9)节点Slave的配置及连接。

    10)启动节点自动化测试。

    8.2  Selenium自动化源码解析

    登录demo的工程文件路径:https://pan.baidu.com/s/1i4UwtkL

    密码:3xfb

    (基于Java语言和Selenium自动化框架工具开发)

    持续集成到Jenkins

    将源代码结合TestNG Ant,持续集成到Jenkins。下面是build.xml文件的内容。

    程序清单8-10 Java代码

    <project name="shopping" basedir="."default="run_tests">   <!-- 默认调用run_tests任务 -->

             <propertyname="src" value="src" />

             <propertyname="dest" value="classes" />

             <propertyname="lib.dir" value="${basedir}/lib" />

             <propertyname="output.dir" value="${basedir}/test-output"/>   <!-- 设置报告输出的路径 -->

             <pathid="compile.path">                                        <!--编译路径设置 -->

                       <filesetdir="${lib.dir}/">

                                <includename="*.jar" />

                       </fileset>

                       <pathelementlocation="${src}" />

                       <pathelementlocation="${dest}" />

             </path>

             <targetname="init">                                           <!-- 初始化设置 -->

                       <mkdirdir="${dest}" />

             </target>

             <targetname="compile" depends="init">                           <!-- 编译和初始化 -->

                       <echo>compiletests</echo>

                       <javacsrcdir="${src}" destdir="${dest}" encoding="UTF-8"

                                classpathref="compile.path" />

             </target>

             <taskdefresource="testngtasks"classpath="${lib.dir}/testng.jar"/>   <!-- testng.jar目录和文件 -->

             <targetname="run_tests" depends="compile">                           <!-- 开始测试 -->

                       <echo>runningtests</echo>

                       <testngclasspathref="compile.path"outputdir="${output.dir}"

                                haltonfailure="no"

             failureproperty="failed"

             parallel="true"

             threadCount="1" >

                                <xmlfilesetdir="${src}/" includes="testng.xml" />   

     <!--结合testng,调用testng.xml里面配置的测试用例  -->

                                <classfilesetdir="${dest}">

         <include name="/*.class"/>

       </classfileset>

                       </testng>

                       <antcalltarget="transform" />

                       <!--<fail message="TEST FAILURE" if="failed" /> -->

                      

             </target>

            

             <targetname="transform"description="report">           <!-- 生成报告 -->

                       <xslt

                                in="${output.dir}/testng-results.xml"

                                style="${lib.dir}/testng-results.xsl"            <!-- testnt-results.xsl模板的方式 -->

                                out="${output.dir}/Report.html"                  <!-- 输出HTML格式的测试报告 -->

                                force="yes">

                                <!--you need to specify the directory here again -->

                                <paramname="testngXslt.outputDir"expression="${output.dir}"/>

                                <classpathrefid="compile.path" />

                       </xslt>

             </target>

    </project>

    8.4  Web自动化测试结果展示

    3个用例的测试结果TestNG报告如图8.3所示。

                             

    8.3

    3个用例,即1个手机登录和2个搜索用例执行记录的TestNG的详细报告如图8.48.5所示。

    8.4

    8.5

    本篇节选自《软件自动化测试开发-java和python测试开发指南》

    获取源码后台回复:selenium

  • 相关阅读:
    javaBean实体包区分
    先后天八卦配太极图
    mysql表连接
    关于解决问题方法论的思考
    Python基础综合练习
    大数据概述
    编译原理
    词法分析
    组合数据类型练习
    词法分析器实验报告
  • 原文地址:https://www.cnblogs.com/finer/p/12061249.html
Copyright © 2011-2022 走看看