1、什么是自动化?
自动化测试就是让被测试的软件自己运行起来,执行软件的功能;或者就是让其他的工具自己运行起来,去检查软件的内部和外部。 让机器自己动,就是自动。让机器按照人类的要求,把软件的所有功能遍历一遍,这是自动化。
2、自动化测试方案:
主流的自动化测试方案,无一例外,都有人机沟通的编程语言,加上机器操作的工具来组成。
VBScript + QTP(HP UFT),商用功能自动化测试方案 。
Python/PHP/Java/C#/JavaScprit/Ruby + Selenium/Appium + 单元测试框架,开源功能自动化测试方案,Selenium/Appium 本身不能算是测试工具,而只是机器用来操作浏览器的工具,工具外加指定的语言,可以让机器来操作浏览器,但是到此时还无法做到测试,于是才需要每个语言自己的单元测试框架,来一起完成这个功能自动化测试方案的构建。
3、自动化测试范围:
自动化测试覆盖了从 UI (功能测试)到契约(接口测试)以及底层代码方法(单元测试)的整个过程,要想很好的掌握自动化测试,那么的确需要以下三种领域的经验积累: 编程语言,面向对象编程优先,因为大量的开源技术方案,都是基于面向对象的编程方式。 第三方测试工具和测试框架,这些主要通过官网的文档学习。 测试的理念与设计,工具和语言,只是测试的手段,如何准备测试数据,如何设置测试的检查点与测试步骤,这些决定了测试的成败。
4、自动化测试的发展:
第一代的自动化测试大概在15年前开始,透过硬件的方式录制键盘的输入并播放,但缺少检查点(checkpoint)的功能,而且测试脚本很难维护。
第二代的自动化测试则大约在10年前开始的,这时已经由硬件转变成透过软件录制/播放(capture/playback)的方式产生测试脚本(), 并且也增加了检查点的功能,可以对软件做验证,测试的范围也比硬件方式的自动化方式大了许多。比较大的问题是测试脚本也是一种程序语言,所以测试人员也需 要懂程序语言,换句话说就是要会写程序。而且当软件有变动时,测试脚本也需要同步更新,这对测试人员来说是一大挑战,测试人员常常就是整个测试脚本再重新 录制一遍。
在2001年开始了第三代的自动化测试称为「测试框架(test framework)」,主要是把测试脚本给抽象化(abstraction)(注:如Keyword-Driven Test),让非技术人员(如系统分析师、使用者等)即使不懂测试脚本,不会写程序的情况下,也可以使用自动化测试工具建立自动化测试个案。
第四代Mercury Business Process Testing:专注于业务需求的自动化测试。随着测试仪器和测试技术的不断提高,自动化测试技术也经历了不断的完善、提高和发展的历程。
5、自动化发展趋势:
1)、测试任务复杂、工作量大,对侧试系统的功能、性能提出更高的要求。
2)、测试速度快、精度高,测量准确度高。
3)、长期进行定时或不间断测试。
4)、危险或测试人员难于进入的场地的测试。
5)、延长测试设备本身寿命。
6、自动化测试优点:
a) 节省人力,只要代码维护的好,不需要那么多人就可完成测试
b) 节省时间,测试脚本可以晚上或者是周末跑测试脚本
c) 优化资源分配,在运行测试脚本的同时,QA可以做其他事,比如设计新测试用例
d) 方便回归,极大提高效率
e) 增加软件的可信度,测试是机器执行的,排除了手工测试时因人为情绪而发生的随意性或疏忽性,测试结果更可信
f) 能完成手工不易控制的工作,比如采集系统cpu占有率信息,手工计算很复杂,还要进行数据比对,使用脚本更简单,更方便
7、自动化测试的缺点:
a) 脚本维护成本高,尤其是版本变动比较大,对项目来说,是潜在的风险
b) 不易发现新bug
对于很多想要学习自动化的小白而言,环境的搭建,一直以来都是很麻烦的事情,下面我们将基于Python语言来进行的自动化环境搭建,python+selenium自动化测试环境包括四个部分:python、selenium、chrome谷歌浏览器、chrome谷歌浏览器驱动。其中浏览器也可以是火狐,IE等。目前自动化的主流浏览器还是chrome谷歌浏览器
(1)python的安装
目前测试行业应用最广的编程语言当属Python为首。python现在主流是3.7的版本。安装很简单,在官网(官网地址:https://www.python.org)选择对应系统的版本直接下载,然后双击安装即可,安装路径可自定义,不是一定非要安装在C盘,但请尽可能避免中文路径。
python安装包后,需要配置环境变量,其实在3.7的安装过程中,第一个界面有一个“add python to path”的选项可以勾选(大概是这个名字)。勾选之后会自动将python添加到系统环境变量Path中。当然你也可以选择手动添加,添加方法如下:
我的电脑右键选择属性-->高级系统设置-->环境变量-->环境变量-->系统变量:找到path变量并修改,在Path路径的最前面加入:C:\Python37;C:\Python37\Scripts; (如果你的python安装在其他路径请做相应的改动,笔者这里是默认路径)
特别要注意:很多新手会把Path中原来的内容删除掉,笔者提醒一下这个绝对不能这样做,慎重!慎重!慎重!
安装之后,运行CMD窗口,输入python指令,用于校验python是否安装成功。如下图表示成功!
另附上python开发工具PyCharm的官方下载地址:
http://www.jetbrains.com/pycharm/download/
(2)selenium的安装
selenium可以通过pip命令进行安装,安装方法如下:
1. 打开cmd窗口
2. 输入:pip install selenium
3. 等待cmd窗口提示successful,则selenium安装成功,如中途中断了继续输入pip install selenium重新安装,不影响!
(3)chrome浏览器
目前网上谷歌浏览器下载的坑太多了,很多网站做得跟官网太像了。一不小心就会入坑,这里笔者提供Chrome官网的下载地址:
Chrome官网:
https://www.google.cn/chrome/
下载完成后双击会自动安装。等待安装完成即可。
(4)安装chrome浏览器驱动
为什么需要浏览器驱动呢?这还得从selenium的原理开始讲:
当Selenium提出了WebDriver的概念之后,它提供了利用浏览器原生的接口,封装成一套更加面向对象的Selenium WebDriver API,直接操作浏览器页面里的元素,甚至操作浏览器本身(截屏,窗口大小,启动,关闭,安装插件)。
由于使用的是浏览器原生的接口,速度大大提高,而且调用的稳定性交给了浏览器厂商本身,显然是更加科学。然而带来的一些副作用就是,不同的浏览器厂商,对Web元素的操作和呈现多少会有一些差异,这就直接导致了Selenium WebDriver要分浏览器厂商不同,而提供不同的实现。例如Firefox就有专门的geckoDriver驱动,Chrome就有专门的Chrome驱动等。
这里特别要注意:chrome浏览器驱动必须和安装的chrome浏览器版本对应。那么如何保证对应呢?
1.先检查chrome浏览器的版本:点击chrome浏览器右上角的三个点-->帮助-->关于Google Chrome,如下图所示:
2.chrome浏览器驱动下载地址:
Chromedriver驱动下载地址:
http://npm.taobao.org/mirrors/chromedriver/
找到和上图chrome版本最接近的版本:上图为:78.0.3904.108,所以这里驱动选择:
下载完成后:把chrome驱动包放入:C:\python37 目录下 (这个是必须的)
快去试试在Pycharm中输入如下代码,看看是否能自动打开chrome浏览器,如果能打开则说明python+selenium自动化测试环境已经大功靠成了!
from selenium import webdriver
driver = webdriver.Chrome()