代码改变世界

Selenium的Web自动化测试(送源码)

2019-12-18 18:01  zouhui  阅读(1120)  评论(0编辑  收藏  举报

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