Selenium的Web自动化测试(送源码)
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自动化测试(送源码)的更多相关文章
- appium ios真机自动化环境搭建&运行(送源码)
appium ios真机自动化环境搭建&运行(送源码) 原创: f i n 测试开发社区 6天前 Appium测试环境的搭建相对比较烦琐,不少初学者在此走过不少弯路 首先是熟悉Mac的使用 ...
- appium ios真机自动化环境搭建&运行(送源码)
appium ios真机自动化环境搭建&运行(送源码) 原创: f i n 测试开发社区 6天前 Appium测试环境的搭建相对比较烦琐,不少初学者在此走过不少弯路 首先是熟悉Mac的使用 ...
- 接口自动化 基于python实现的http+json协议接口自动化测试框架源码(实用改进版)
基于python实现的http+json协议接口自动化测试框架(实用改进版) by:授客 QQ:1033553122 欢迎加入软件性能测试交流QQ群:7156436 目录 1. ...
- Node.js结合Selenium做Web自动化测试
发现腾讯课堂上有个node.js结合Selenium做Web自动化测试的教学视频, 听来感觉不错,一来老师讲的还不错,二来node.js这门语言会越来越热,学会总没什么坏处,三来发现CukeTest这 ...
- asp.net web api的源码
从安装的NuGet packages逆向找回去 <package id="Microsoft.AspNet.WebApi.Core" version="5.2.7& ...
- 刷金币全自动脚本 | 让Python每天帮你薅一个早餐钱(送源码)
刷金币全自动脚本 | 让Python每天帮你薅一个早餐钱(送源码) 测试开发社区 6天前 文章转载自公众号 AirPython , 作者 星安果 阅读文本大概需要 12 分钟. 1 目 标 场 景 ...
- Python 基于python实现的http+json协议接口自动化测试框架源码(实用改进版)
目录 1. 写在前面 2. 开发环境 3. 大致流程 4. 框架简介 5. 运行结果展示 6. 文件与配置 7. 测试接口实例 n ...
- jmeter+ant+jenkins 接口自动化测试持续集成(送源码)
9.1 安装和介绍 JMeter 安装文件路径:https://pan.baidu.com/s/1kVJdnuv. JMeter 是轻量级的开源且稳定的自动化测试工具. 思路:在接口说明文档中整理 ...
- Selenium 4.0beta:读源码学习新功能
Selenium 4 源码分析 这一篇文章我们来分析Selenium 4 python版源码. 除非你对Selenium 3的源码烂熟于心,否则通过对比工具分析更容易看出Selenium 4更新了哪些 ...
随机推荐
- keras猫狗大战
先划分数据集程序训练集中猫狗各12500张现在提取1000张做为训练集,500张作为测试集,500张作为验证集: # -*- coding: utf-8 -*-import os, shutil or ...
- 国产手机早就异军突起,为何还是有很多人“迷恋”iPhone?
近几年,国产手机不论是从外观上还是设计上,以及销量上都比前有了长足的进步,手机的品质和售后也在不断提升.这也让中国手机厂商不断的推出了拥有自己品牌特色的产品.特别是2018年不少国产手机品牌的旗舰级产 ...
- [Algo] 625. Longest subarray contains only 1s
Given an array of integers that contains only 0s and 1s and a positive integer k, you can flip at mo ...
- gitlab安装教程
gitlab安装教程 安装教程 官网安装方法 https://about.gitlab.com/downloads/#centos7 1.准备 sudo yum install curl po ...
- Docker容器化【Dockerfile编写&&搭建与使用Docker私有仓库】
# Docker 学习目标: 掌握Docker基础知识,能够理解Docker镜像与容器的概念 完成Docker安装与启动 掌握Docker镜像与容器相关命令 掌握Tomcat Nginx 等软件的常用 ...
- Windows Server 2008 R2 安全加固
0x00 简介 安全加固是企业安全中及其重要的一环,其主要内容包括账号安全.认证授权.协议安全.审计安全四项,这篇博客简单整理一下Windows Server 2008 R2的安全加固方案. 0x01 ...
- AtCoder Grand Contest 033
为什么ABC那么多?建议Atcoder多出些ARC/AGC,好不容易才轮到AGC…… A 签到.就是以黑点为源点做多元最短路,由于边长是1直接bfs就好了,求最长路径. #include<bit ...
- 微信中的APP、公众号、小程序的openid及unionid介绍
微信中的APP.公众号.小程序的openid及unionid介绍 1.unionid 如果开发者拥有多个移动应用.网站应用.和公众帐号(包括小程序),可通过 UnionID 来区分用户的唯一性,因为只 ...
- OA项目-表结构
############### 新建APP并配置 ############### INSTALLED_APPS = [ ... 'apps.users.apps.UsersConfig', 'a ...
- set|lambda|reduce
#!/usr/bin/python a=set([i for i in range(4,8)]) b=set([i for i in range(5,12)]) c= sorted(a & b ...