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

Selenium的Web自动化测试(送源码)的更多相关文章

  1. appium ios真机自动化环境搭建&运行(送源码)

    appium ios真机自动化环境搭建&运行(送源码) 原创: f i n  测试开发社区  6天前 Appium测试环境的搭建相对比较烦琐,不少初学者在此走过不少弯路 首先是熟悉Mac的使用 ...

  2. appium ios真机自动化环境搭建&运行(送源码)

    appium ios真机自动化环境搭建&运行(送源码) 原创: f i n  测试开发社区  6天前 Appium测试环境的搭建相对比较烦琐,不少初学者在此走过不少弯路 首先是熟悉Mac的使用 ...

  3. 接口自动化 基于python实现的http+json协议接口自动化测试框架源码(实用改进版)

    基于python实现的http+json协议接口自动化测试框架(实用改进版)   by:授客 QQ:1033553122 欢迎加入软件性能测试交流QQ群:7156436     目录 1.      ...

  4. Node.js结合Selenium做Web自动化测试

    发现腾讯课堂上有个node.js结合Selenium做Web自动化测试的教学视频, 听来感觉不错,一来老师讲的还不错,二来node.js这门语言会越来越热,学会总没什么坏处,三来发现CukeTest这 ...

  5. asp.net web api的源码

    从安装的NuGet packages逆向找回去 <package id="Microsoft.AspNet.WebApi.Core" version="5.2.7& ...

  6. 刷金币全自动脚本 | 让Python每天帮你薅一个早餐钱(送源码)

    刷金币全自动脚本 | 让Python每天帮你薅一个早餐钱(送源码) 测试开发社区  6天前 文章转载自公众号  AirPython , 作者 星安果 阅读文本大概需要 12 分钟. 1 目 标 场 景 ...

  7. Python 基于python实现的http+json协议接口自动化测试框架源码(实用改进版)

    目录 1.      写在前面 2.      开发环境 3.      大致流程 4.      框架简介 5.      运行结果展示 6.      文件与配置 7.      测试接口实例 n ...

  8. jmeter+ant+jenkins 接口自动化测试持续集成(送源码)

     9.1  安装和介绍 JMeter 安装文件路径:https://pan.baidu.com/s/1kVJdnuv. JMeter 是轻量级的开源且稳定的自动化测试工具. 思路:在接口说明文档中整理 ...

  9. Selenium 4.0beta:读源码学习新功能

    Selenium 4 源码分析 这一篇文章我们来分析Selenium 4 python版源码. 除非你对Selenium 3的源码烂熟于心,否则通过对比工具分析更容易看出Selenium 4更新了哪些 ...

随机推荐

  1. 微信小程序java8 java7 java6 encryptedData 解密 异常处理

    使用java8 java7  java6 解密微信小程序encryptedData可以回遇到一些错误 1.java.security.NoSuchAlgorithmException: Cannot ...

  2. ORBSLAM2的资源

    ORBSLAM2代码总结 https://blog.csdn.net/hzwwpgmwy/article/details/82462988 ORBSLAM2局部地图更新实现 https://blog. ...

  3. zabbix3.4--配置微信告警

    1.注册企业微信 https://work.weixin.qq.com/ 2.注册好后登陆,点击“我的企业”,记录企业ID. 3.点击“应用管理”--“创建应用”,创建应用时添加接收告警的用户 4.添 ...

  4. iTOP-4412开发板-can测试工具使用文档

    本文档介绍如何使用 can 工具测试 can. 给用户提供了“can_libs.rar”以及“can_tools.zip”压缩包,分别是 can 工具需要的库 文件和 can 工具二进制文件. 注意开 ...

  5. maven隐含依赖

    1.有时候,我们在pom.xml依赖了2个jar包,不过在工程lib里看到依赖包多于2个,这是为什么呢?原因是maven引入一个jar时,会连带引入这个jar包依赖的jar包,除非在配置引入这个jar ...

  6. v-cloak使用

    v-cloak:保持和元素实例的关联,直到结束编译后自动消失. v-cloak指令和CSS 规则一起用的时候,能够解决差值表达式闪烁的问题(即:可以隐藏未编译的标签直到实例准备完毕). 就拿上一段代码 ...

  7. Exchange Onine 公用文件夹

    公用文件夹专为共享访问设计,为收集.组织信息及工作组织中的其他人共享信息提供提供了一种轻松.有效的方式.公用文件夹帮助以易于浏览的层次结构来组织内容. 一.公用文件夹的适用环境 公用文件夹在以下out ...

  8. 吴裕雄--天生自然C语言开发:约瑟夫生者死者小游戏

    个人在一条船上,超载,需要 人下船. 于是人们排成一队,排队的位置即为他们的编号. 报数,从 开始,数到 的人下船. 如此循环,直到船上仅剩 人为止,问都有哪些编号的人下船了呢? #include&l ...

  9. 有几张高度不一样的小图片,如何用html+css实现在同一行垂直居中对齐?

    方法一 :使用弹性布局 方法二 :CSS3 transform 属性 父级元素定位 子集元素加属性: position: absolute; top: 50%; transform: translat ...

  10. JS创建数组的三种方法

    1     常规方式 创建数组并给数组元素赋值 var myCars = new Array(); myCars[0] = "Saab"; myCars[1] = "Vo ...