自动化测试的概念比较广泛,一般说来能替代人工测试的方式都属于自动化测试,开发过程中由开发人员进行的单元测试(如:junit)就可以简单理解为测试的一种。
自动化测试出现的初衷是为了来代替人工测试,但从实际上来看,自动化在版本发行后,在版本的迭代中或者防护方面的作用有更好的显现,人工测试因其因人而异,具有很强的灵活性。而性能测试-
通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行的测试
。能依赖的东西比较多,比如
JMeter、
LR(
LoadRunner)等,而自动化测试的工具很多情况下不是很完善,比如selenium webdriver、Sahi等,需要自动化攻城狮花很多时间去使用代码编写用例,并且维护这些用例。对于编码语言掌握有限的同志,这个过程就有点痛苦了。
不过相比于人工测试而言,自动化测试人员则可以利用自己掌握的编码经验及编码语言很好的利用工具或者来创造工具,来处理应对日常的自动化测试需求,不断的将自动化测试的自动化程度向高层次推进。
自动化测试可分为:web自动化、APP自动化、接口自动化,包括有非常重要的自动化测试框架。
一、web自动化
在浏览器兼容性、安全,以及与Web技术相关的表单测试、链接测试等方面比较显著。
常见的Web自动化工具:
Selenium、sahi、QTP(UFT)、RFT、watir。
Selenium是一套完整的Web应用程序测试系统,它包含了测试的录制(Selenium IDE)、编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid)。Selenium的核心Selenium Core基于JsUnit,完全由JavaScript编写,因此可运行于任何支持JavaScript的浏览器上。Selenium Core由一种指定格式的HTML文件驱动,在一定程度上增强了测试套件(Test Suite)的可读性。Selenium Remote Control允许测试人员使用常见的语言(自然包括C#等.NET语言)编写测试代码,并支持不同操作系统下的各种主流浏览器。
Sahi是一个用于Web应用程序的自动测试工具。Sahi运行为一个代理服务器,必须把浏览器的代理设置为Sahi服务器。 然后Sahi注入javascript来访问Web页面中的元素。Sahi支持Http与Https并且独立于Web站点或Web应用程序。其他web测试化工具在下就不列举了。
二、APP自动化
手机app开发,要适应不同的设备,比如一个Android App要适应不同的版本,不仅是要支持最新的版本,旧的版本也需要支持。
常用的APP自动化测试的框架有以下几个
(摘自http://www.51testing.com/html/07/n-3719107.html)
1、Monkey Runner是AndroidSDK提供的测试工具。严格来讲Monkey Runner它其实就是一个Api工具包,它是比Monkey强大,用它是可以编写测试脚本来自定义数据、事件。唯一不足的是脚本用Python来写,对测试人员来说要求较高,它的学习成本也是比较高的。
2、Monkey是AndroidSDK自带的测试工具,它在测试过程中会向系统发送伪随机的用户事件流,比如一些按键输入、触摸屏输入、手势输入等),它可以实现对正在开发的应用程序进行一个压力的测试,同时也是有日志输出,实际上该工具只能做程序做一些压力测试,由于测试事件和数据都是随机的,并不能自己自己定义,这也是它的局限性所在。
3、Ui Automator这个工具也是Android提供的自动化测试框架,基本上支持所有的Android事件操作,对比Instrumentation它不需要测试人员了解代码实现细节(可以用Ui Automatorviewer抓去App页面上的控件属性而不看源码)。它是基于java,因此它的测试代码结构比较简单、编写也是比较容易、学习成本,可以是一次编译,所有设备或模拟器都能运行测试,能跨App。它的缺点是只支持SDK16(Android4.1)及以上,不支持HybirdApp、WebApp。
4、我们听说过的Espresso是Google的开源自动化测试框架。它是相对于Robotium和UIAutomator,它最主要的特点就是规模是更小、更加的简洁,并且API是更加的精确,编写的测试代码简单,由于是基于Instrumentation的,因此是不能跨App。
5、Appium Android自动化框架
这个框架是iOS,android自动化测试的一个框架。它是可以支持多种的语言:Java,C#,Ruby也是可以支持.并且是还可以去调用selenium的API,所以一般是可以利用selenium来测试在手机上面的网页应用。
这位大神介绍的很细致。
三、接口自动化
接口测试实施在多系统的平台架构下,有着极为高效的成本收益比(当然,单元测试收益更高,但实施单元测试的成本投入更大,技术要求更高,所以应该选择更适合自身的才是最好的方案)。
接口测试天生为高复杂性的平台带来高效的缺陷检测和质量监督能力,平台复杂,系统越庞大,接口测试的效果越明显。
四、自动化测试框架
(https://www.cnblogs.com/40406-jun/p/6642112.html)
这位大神写的比较清楚。