前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Selenium的Web自动化测试(送源码)

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

作者头像
测试开发社区
发布2019-12-05 14:09:33
1.3K0
发布2019-12-05 14:09:33
举报

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试开发社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 8.1 Selenium自动化测试准备
    • 1.Selenium介绍
      • 2.基于Java开发
        • 3.运行时注意驱动与浏览器的版本
          • 4.环境搭建的简要步骤
          • 8.2 Selenium自动化源码解析
          • 3 持续集成到Jenkins
          • 8.4 Web自动化测试结果展示
          相关产品与服务
          持续集成
          CODING 持续集成(CODING Continuous Integration,CODING-CI)全面兼容 Jenkins 的持续集成服务,支持 Java、Python、NodeJS 等所有主流语言,并且支持 Docker 镜像的构建。图形化编排,高配集群多 Job 并行构建全面提速您的构建任务。支持主流的 Git 代码仓库,包括 CODING 代码托管、GitHub、GitLab 等。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档