自动化测试一词也算是整个测试行业里面比较热门的一个词儿,工资高,前景好,有实力,有态度等等,很多企业的管理者也在不断的扩大自己的队伍和职能,这也是导致自动化测试比较流行的原因之一。但是很多企业做自动化测试并不能真正解决企业面临的问题或者说对自动化测试的理解并不够。虽然我从事自动化测试工作的年限也不是很久,但是仔细想想做的好的自动化测试的企业还真有一些,比如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家谱的更多相关文章

  1. 自动化测试-Selenium家谱介绍

    一.自动化测试定义 自动化测试是通工具录制或编写脚本的方式模拟手工测试的过程,通过回放或运行脚本来执行测试用例,从而代替人工对系统的功能进行验证. 二.什么样的项目适合做自动化测试 1.需求明确,不会 ...

  2. 《Selenium2自动化测试实战--基于Python语言》 --即将面市

    发展历程: <selenium_webdriver(python)第一版>   将本博客中的这个系列整理为pdf文档,免费. <selenium_webdriver(python)第 ...

  3. 自动化测试Java一:Selenium入门

    From: https://blog.csdn.net/u013258415/article/details/77750214 Selenium入门 欢迎阅读Selenium入门讲义,本讲义将会重点介 ...

  4. Selenium自动化测试Python一:Selenium入门

    Selenium入门 欢迎阅读Selenium入门讲义,本讲义将会重点介绍Selenium的入门知识以及Selenium的前置知识. 自动化测试的基础 在Selenium的课程以前,我们先回顾一下软件 ...

  5. Python爬虫小白入门(四)PhatomJS+Selenium第一篇

    一.前言 在上一篇博文中,我们的爬虫面临着一个问题,在爬取Unsplash网站的时候,由于网站是下拉刷新,并没有分页.所以不能够通过页码获取页面的url来分别发送网络请求.我也尝试了其他方式,比如下拉 ...

  6. Selenium的PO模式(Page Object Model)[python版]

     Page Object Model 简称POM  普通的测试用例代码: .... #测试用例 def test_login_mail(self): driver = self.driver driv ...

  7. selenium元素定位篇

    Selenium webdriver是完全模拟用户在对浏览器进行操作,所有用户都是在页面进行的单击.双击.输入.滚动等操作,而webdriver也是一样,所以需要我们指定元素让webdriver进行单 ...

  8. selenium自动化基础知识

    什么是自动化测试? 自动化测试分为:功能自动化和性能自动化 功能自动化即使用计算机通过编码的方式来替代手工测试,完成一些重复性比较高的测试,解放测试人员的测试压力.同时,如果系统有不份模块更改后,只要 ...

  9. 幼儿园的 selenium

    from selenium import webdriver     *固定开头     b=webdriver.Firefox()              *打开火狐浏览器    browser. ...

随机推荐

  1. 转 OpenFaaS 介绍

    来源: https://thenewstack.io/openfaas-put-serverless-function-container/?utm_source=tuicool&utm_me ...

  2. Windows 特殊文件夹

    收藏的XP的一些特殊文件夹,使用方法:在任意位置用以下文件名创建文件夹即可. 目前还有些可以在WIN7下正常使用,以此作为一个存档,便于日后查询.   回收站.{645ff040-5081-101b- ...

  3. IT售前经验谈

    在IT界,成功的完成一个项目需要销售人员.售前人员.项目实施人员(开发人员).售后服务人员等密切协作.本文从售前技术支持人员的角度,对售前技术支持工作的过程进行了描述,根据作者在售前的经验,提出了各环 ...

  4. Maven项目中突然找不到Build Path或maven dependencies library

    这两天发现有个maven项目抽风了,一个是右击项目找不到Build Path了,一个是依赖的lib库没了,maven引入的依赖包导不了.后来发现是eclipse搞的鬼,出问题的是项目下的.classp ...

  5. 题目1534:数组中第K小的数字 ——二分

    http://ac.jobdu.com/problem.php?pid=1534 给定两个整型数组A和B.我们将A和B中的元素两两相加可以得到数组C.譬如A为[1,2],B为[3,4].那么由A和B中 ...

  6. win7系统清除USBSTOR记录

    方法一 1.Win+R,出现运行窗口,如图所示: 2.在输入框中输入“regedit”,如图所示: 3.进入后,点击编辑-查找,查找输入框中输入“USBSTOR”(为了加快查找速度,可以只选择“项”) ...

  7. git diff的使用

    有时候可能睡觉时候忘记关电脑了,然后不小心触碰到键盘上某个神秘的按钮了,然后自己也不知道就提交了 就可能很悲剧 那么有时候不知道自己是否改变了哪些文件的内容 这时候就需要用到git diff git ...

  8. 1122 Hamiltonian Cycle

    题意:包含图中所有结点的简单环称为汉密尔顿环.给出无向图,然后给出k个查询,问每个查询是否是汉密尔顿环. 思路:根据题目可知,我们需要判断一下几个条件:(1).首先保证给定的环相邻两结点是连通的:(2 ...

  9. thinkphp中的验证码的实现

    1.php端生成验证码函数 public function verify(){ // 验证码 import("@.Util.Image"); Image::buildImageVe ...

  10. JCE无限制权限策略文件

    JCE无限制权限策略文件,里面是对应jdk6和jdk7的文件 官网下载地址是 JDK6:http://www.oracle.com/technetwork/java/javase/downloads/ ...