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

2019-12-05 14:09:33 浏览数 (1)

8.1 Selenium自动化测试准备

1.Selenium介绍

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

Selenium 1.0

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

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

Selenium 2.0

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

2.基于Java开发

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

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

—Web元素定位

—id name linktext xpath tag css

—异常处理

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

▲图8.1

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

—安装Eclipes。

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

默认为火狐(Firefox)驱动,如chromedriver.exe、IEDriverServer.exe。

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

4.环境搭建的简要步骤

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

(2)安装Eclipes。

(3)安装火狐SeleniumIDE、谷歌Chromedrive和IE driver。

(4)加入jxl、log4j、Selenium包。

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

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

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

(8)安装Jenkins、Tomcat,配置Tomcat环境变量。

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

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

8.2 Selenium自动化源码解析

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

密码:3xfb

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

3 持续集成到Jenkins

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

程序清单8-10 Java代码

代码语言:javascript复制
<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.4和8.5所示。

▲图8.4

▲图8.5

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

获取源码后台回复:selenium

0 人点赞