Selenium家谱
自动化测试一词也算是整个测试行业里面比较热门的一个词儿,工资高,前景好,有实力,有态度等等,很多企业的管理者也在不断的扩大自己的队伍和职能,这也是导致自动化测试比较流行的原因之一。但是很多企业做自动化测试并不能真正解决企业面临的问题或者说对自动化测试的理解并不够。虽然我从事自动化测试工作的年限也不是很久,但是仔细想想做的好的自动化测试的企业还真有一些,比如BAT,但是很多小型互联网公司做自动化测试就不一定有意义了,在我看来,他们是为了自动化测试而自动化测试。因为UI层的自动化测试不是单一做战,而是和server层,unit层协同作战!
自动化测试在做之前需要进行严格的考虑,不管是系统的稳定性还是人力配备都是参考点。不能把所有的责任都放到UI层测试,每一个阶段(单元层/接口层)都要做好自动化测试,这样做自动化测试的结果才有意义。而恰恰相反的是现在是很多公司不做单元测试和接口测试,直接做UI层的自动化测试,我坚信这样产生的结果一定是是劳民伤财而且意义很少的。
根据自己对自动化测试的多年实战经验和做过的测试项目获取的经验总结,在此,对自动化测试进行了一些阐述,不喜勿喷。
写的比较简洁,而且这些点确实是任何一个管理者在招聘时应该考量的点(本篇文章面向有测试经验的同学了解)
今天我们从以下几个方面来聊一聊自动化测试。
一、自动化测试定义
二、什么样的项目适合做自动化测试
三、自动化测试对比手工测试的优缺点
四、市场上主流的自动化测试工具介绍
五、Selenium家谱及工具介绍
六、Selenium自动化测试环境搭建
一、自动化测试定义
自动化测试是通工具录制或编写脚本的方式模拟手工测试的过程,通过回放或运行脚本来执行测试用例,从而代替人工对系统的功能进行验证.
二、什么样的项目适合做自动化测试
.需求明确,不会频繁变更
.系统界面稳定
.项目周期长
.自动化测试脚本可重复利用
.人员规模
.频繁的回归测试
.可自动化率30%-%
三、自动化测试对比手工测试的优缺点
自动化测试特点:
.提高软件质量
.提高测试效率
.测试具有一致性和重复性
.准确可靠、避免人的主观性
.24h* 任何时间 任何地点 无疲劳
.增加软件信任度
.增进测试人员和开发之间的合作关系
手工测试特点:
.较好的异常处理能力、比较灵活
.测试具有一定的跳跃性
.人工测试步步追踪,细致定位
.主要用于发现软件缺陷
四、市场上主流的自动化测试工具介绍
.QTP(UTF) :提供录制、回放、支持C/S ,B/S两种架构系统,收费,需要破解,只支持ie浏览器(ie9以下)
.Robot Framework : 支持关键字驱动,Python语言编写的一款自动化测试框架,支持数据库测试,移动端测试,接口测试
.RFT :(和Qtpl类似),支持录制和回放,支持C/S B/S两种架构的系统,收费,需要破解,支持Java .net vbscript语言
.Watri : 也是一款Web应用程序的自动化测试工具,使用Ruby语言开发的一款自动化测试工具(Ruby是日本编程语言)
.Selenium(目前最火) :
a.支持多语言:Java Python C C++ C# php Javascript Ruby (后端开发语言)
b.支持多浏览器:Chrome Firefox Ie Safari Edge(windows10自带) Opera(原名欧朋 现被360收购)
c.支持多平台:Linux Windows Mac OS
d.简单API : 很多操作浏览器的方法(webdriver api ) 比如最大化浏览器 等待 操作下拉框等等 ......
e.支持并行执行测试用例:可以在windows下面谷歌浏览器做自动化测试同时也可以在Liunx火狐浏览器做自动化测试
f.开源、免费、支持二次开发(可以对selenium的源码进行改造)
五、Selenium家谱及工具介绍
Selenium是什么?
Selenium是一个自动化测试工具集。包含Selenium1. Selenium2. selenium3.,其中Selenium1.0包含Selenium ide
Selenium grid selenium rc Selenium2.0包含Selenim1. + Webdriver Selenium1.0的构成 : selenium ide + selenium grid + selenium rc
ide :提供录制和回放的一个工具(火狐浏览器自带的一个插件)
grid:支持并行执行测试用例
rc:可以简单理解为控制浏览器行为的一个远程服务器 Selenium2.0的构成:Selenium1. + Webdriver Webdriver:它是一套操作浏览器的api(接口规范) 包含了控制浏览器行为的一些操作方法(比如最大化浏览器 等待 操作下拉框等等 ......) 补充一点:firefox46版本以下的驱动是自动集成在浏览器本身的。
Selenium3.0的构成(2016年7月末出现第一个beat版本):
Selenium3.=Selenium ide + Selenium grid + Sebdriver
.去掉了RC,全面支持webdriver
.支持Java8以上的开发环境
.Firefox的驱动和selenium分离。只支持firefox47版本以上的浏览器,另外需要单独配置驱动。

浏览器驱动是什么?
每一种浏览器都有自己的原生浏览器驱动,驱动是一个.exe文件 比如谷歌的驱动 chromedriver.exe 需要单独下载驱动(网上下载)做自动化测试需要调用浏览器的驱动来完成!
RC和webdriver区别是什么?
RC:是通过外部一大堆JS函数来调用浏览器做自动化测试
Webdriver:是通过原生浏览器驱动来调用浏览器做自动化测试
Webdriver和浏览器的紧密结合度比RC更好,所以在selenium中主推webdriver,在selenium2.0当中主推的是webdriver
因为RC最开始有一部分用户为了保持向下兼容,所以RC没有完全去掉。
Selenium2.0 和Selenium3.0区别不是很大,具体看Selenium3.0的构成! 目前市场上说selenium或者是招聘网上说的selenium无特殊指明,均为selenium2.0或者3.0 来。我们看一张图。

六、Selenium2.0 自动化测试环境搭建
.cmd ---> pip install selenium==2.53. (如果selenium后面不跟==表示默认安装最新版本) . pip show selenium 查看selenium安装的版本号(该操作在cmd->windows下面查看)
(注意:.pip 是什么? pip是python2..9版本以后自动集成到python中的一个包管理工具,方便下载和python有关的包或者模块) .验证环境是否安装成功python交互模式下--->输入from selenium import webdriver -->运行无报错(安装成功) .配置浏览器驱动,这里我们教学使用的chrome浏览器,目前最新的版本是63.0.3239.(正式版本) .直接将chromedriver.exe (chromedriver.exe原封不动复制到C:\Python27目录下面) .在idle编辑器里面敲一段代码:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.baidu.com') 运行无报错,说明安装成功!
Selenium家谱的更多相关文章
- 自动化测试-Selenium家谱介绍
一.自动化测试定义 自动化测试是通工具录制或编写脚本的方式模拟手工测试的过程,通过回放或运行脚本来执行测试用例,从而代替人工对系统的功能进行验证. 二.什么样的项目适合做自动化测试 1.需求明确,不会 ...
- 《Selenium2自动化测试实战--基于Python语言》 --即将面市
发展历程: <selenium_webdriver(python)第一版> 将本博客中的这个系列整理为pdf文档,免费. <selenium_webdriver(python)第 ...
- 自动化测试Java一:Selenium入门
From: https://blog.csdn.net/u013258415/article/details/77750214 Selenium入门 欢迎阅读Selenium入门讲义,本讲义将会重点介 ...
- Selenium自动化测试Python一:Selenium入门
Selenium入门 欢迎阅读Selenium入门讲义,本讲义将会重点介绍Selenium的入门知识以及Selenium的前置知识. 自动化测试的基础 在Selenium的课程以前,我们先回顾一下软件 ...
- Python爬虫小白入门(四)PhatomJS+Selenium第一篇
一.前言 在上一篇博文中,我们的爬虫面临着一个问题,在爬取Unsplash网站的时候,由于网站是下拉刷新,并没有分页.所以不能够通过页码获取页面的url来分别发送网络请求.我也尝试了其他方式,比如下拉 ...
- Selenium的PO模式(Page Object Model)[python版]
Page Object Model 简称POM 普通的测试用例代码: .... #测试用例 def test_login_mail(self): driver = self.driver driv ...
- selenium元素定位篇
Selenium webdriver是完全模拟用户在对浏览器进行操作,所有用户都是在页面进行的单击.双击.输入.滚动等操作,而webdriver也是一样,所以需要我们指定元素让webdriver进行单 ...
- selenium自动化基础知识
什么是自动化测试? 自动化测试分为:功能自动化和性能自动化 功能自动化即使用计算机通过编码的方式来替代手工测试,完成一些重复性比较高的测试,解放测试人员的测试压力.同时,如果系统有不份模块更改后,只要 ...
- 幼儿园的 selenium
from selenium import webdriver *固定开头 b=webdriver.Firefox() *打开火狐浏览器 browser. ...
随机推荐
- Android Studio 打包及引用 AAR(可能是史上最详细的 )
https://www.jianshu.com/p/1777a634db5e Android Library(AAR) 的好处 Android 库在结构上与 Android 应用模块相同.它可以提供构 ...
- Android 比对APK的签名信息
https://www.jianshu.com/p/8583f6a966e2 在做App的时候经常会有验证apk是否为正版的需求,比如一些接入第三方支付的app,接入微信sdk也是需要apk签名信息的 ...
- redis的安装和类型及基本命令
一.memcached和redis区别 1. redis 可以存储,memcached用来缓存, 2. 数据类型,memcached只有string:redis有string,链表,哈希结构,集合,有 ...
- BroadcastReceiver用法
动态注册广播接收器 1.创建一个Receiver继承BroadcastReceiver,并重写onReceiver() 2.在Activity的OnCreate()中添加广播接收器想要接收的actio ...
- java代码求输入数的平均值~~~~
总结:1.谢谢程老师,一个很好的老师,人很普通,但是浑浊的世界里,那一份真实感动到底~~~~很感谢他 2.这里注意两个方面,也是我最大的弱点:循环和数组的length属性.前者运用不灵活,后者自己总是 ...
- python学习(十) 自带电池
10.1 模块 >>> import math >>> math.sin(0) 0.0 10.1.1 模块是程序 假设自己写的hello.py放在c:\python ...
- Angular2快速入门-2.创建一个新闻列表
背景: 我们想通过一个例子,展示下Angular2 怎么绑定页面,怎么创建Component, 例子:我们创建一个新闻列表,当点击新闻列表中某一条新闻的时候,展示出该条新闻的详细信息, 在详细信息中可 ...
- WebSocket实战之JavaScript例子
一.详细代码案例 详细解读一个简单html5 WebSocket的Js实例教程,附带完整的javascript websocket实例源码,以及实例代码效果演示页面,并对本实例的核心代码进行了深入解读 ...
- 关于学习ios开发的一些笔记
关于方法前的 + - 符号 前置加号(+)的方法为类方法,这类方法是可以直接用类名来调用的,它的作用主要是创建一个实例.相当于是静态的方法. 前置减号(-)的方法为实例方法,必须使用类的实例才可以调用 ...
- python's twenty-fifth day for me 模块
模块: py文件就是模块. python之所以好用,因为模块多. 内置模块:python安装的时候自带的. 扩展模块:别人写好的,需要安装后可直接使用. 自定义模块:自己写的模块. 序列化模块: 能存 ...