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. ...
随机推荐
- Visual Studio Code教程:基础使用和自定义设置
一.界面介绍 1.1 界面介绍 1.2 文件夹和文件的打开 文件——>打开文件夹/打开文件 1.3 新建文件/文件夹 新建文件: a. 文件——>新建文件: b. 按Ctrl+n; c. ...
- 字符串(二)(PHP)
1.大段文本在PHP中应该如果表示? 答: <?php $str = <<<aaa hello word; fjasdflj fjslad aaa;date_sub() aaa ...
- GOF23设计模式之建造者模式(builder)
一.建造者模式概述 建造者模式的本质: 1.分离了对象子组件的单独构造(由Builder负责)和装配(由Director负责).从而可以构造出复杂的对象.这个模式适用于:某个对象的过程复杂的情况下使用 ...
- PhysicalDrive
由于"\"是C/C+中转义符, "\\\\.\\"就相当于\\.\ 在Windows中 \\.\ 前缀用于标识设备,其中的"."表示本地计算 ...
- java显示网格————————
总结:看图 +---+---+ | | | | | | +---+---+ */ package com.aaa; //在屏幕上显如下网格 public class adga { public sta ...
- web项目WebContent目录结构参考(WEB-INF)
WEB-INF目录是Java WEB应用的安全目录,客户端(浏览器等)无法访问,只有服务端可以访问.该目录主要用来存放配置文件,如web.xml等. 若是将jsp文件放在WEB-INF目录中,则必须通 ...
- 用python编写简单爬虫
需求:抓取百度百科python词条相关词条网页的标题和简介,并将数据输出在一个html表格中 入口页:python的百度词条页 https://baike.baidu.com/item/Python/ ...
- python中常用模块详解二
log模块的讲解 Python 使用logging模块记录日志涉及四个主要类,使用官方文档中的概括最为合适: logger提供了应用程序可以直接使用的接口API: handler将(logger创建的 ...
- js中的Generators函数
js中的Generators函数 generator一般操作 generator函数的作用就是函数体分段执行,yield表示分隔点 function *test() { console.log(1); ...
- JSP页面生成验证码功能
<%@ page language="java" contentType="text/html; charset=UTF-8" import=" ...