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

  • 2019 年 12 月 5 日
  • 筆記

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代码

<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