自动化测试概述/自动化工具

自动化测试

◆自动化测试就是把手工测试转化成用机器、软件、程序来测试产品的过程。
在这里插入图片描述
很多时候自动化测试的用例是从功能测试里来的,是功能测试的一部分,更多时候是从冒烟测试来的,从冒烟测试生成测试脚本。

自动化测试使用代码代替一些手动的工作。

自动化测试的意义
1.缩短软件开发测试周期,可以让产品更快投放市场。 测试效率高,充分利用硬件资源。(自动化测试在敏捷里的意义是非凡的,能更快的完成软件测试,他可以在夜间进行自动化回归就可以完成测试)
2.节省人力资源,降低测试成本。
3.增强测试的稳定性和可靠性。(可能由于人的懈怠或者注意力不集中,测试不够稳定可靠)
4.提高软件测试的准确度和精确度,增加软件信任度。
5.软件测试工具使测试工作相对比较容易,但能产生更高质量的测试结果。

自动化测试应用场景分析
◆首先要考虑的是什么样的项目适合自动化?
◆决定项目是否采用自动化测试,通常要关注以下几个方面:

1.需求变更有计划性,并且频率不高。
需求变更不能太多,不然没时间去维护自动化测试
2.项目周期长, 资源丰富。
比如支付宝,功能点繁杂,适合自动化,但是如果这个项目只持续几天没必要自动化
3.脚本重复利用率。
4.代码规范。

◆考虑了什么样的项目可以使用自动化,接下来我们要了解的就是在一个项目中,我们也要区分哪些部分适合自动化
◆某种普遍存在的观点:
认为自动化测试更适合回归测试和API(接口)测试,手工测试更适合做验收测试和GUI测试。(大多数人认为带页面的用手工,带接口的用自动化,但是这个观点是不对的

◆正确的观点:
什么区分了手工测试和自动化测试,实际上与API还是GUI,回归还是功能都没有关系。应该从代码是业务逻辑相关还是基础性代码出发

业务逻辑代码对应终端用户使用的那些功能,是实际完成工作的。

◆基础性代码则确保业务逻辑代码运行在合适的环境中起支撑作用而彼此之间相对独立,并不存在业务关系的

以上两种代码都要测试,但是手工测试更适合测业务逻辑,因为这部分人来学习起来要比交给自动化容易。

理由:
基础性代码可能用自动化测试效率更好,比如通过余额宝买入买出,要依赖与银行和我们的对接,才知道账单到底有无到账,像这种偏向于对账的业务逻辑,比较适合手工测试。

场景分析:

做测试的时候。发现项目业务周期长,庞大 可以引入自动化测试,然后看项目的结构,一些功能性的基础东西比如登录下单,可以交给自动化,其余的繁杂的业务逻辑手动去测试

常见的WEB自动化测试工具:

在这里插入图片描述
主流自动化测试工具–QTP
◆QTP是一个侧重于功能的回归自动化测试工具;提供了很多插件。
◆QTP支持的脚本语言是 VBScript,这对于测试人员来说,感觉要舒服得多,VBScript毕竟是一种松散的、 非严格的、普及面很广的语言。

◆QTP的高可用性:
1.支持录制与回放
2.支持lower level模式(支持点击,像素点的点击)
3. QTP的编辑器支持两种视图: Keyword模式和Expert模式(有自己单独的编辑器,大多用的是keyword模式)

QTP支持C/S,也支持B/S,同时语句也相对简单

脚本录制过程:
在这里插入图片描述在这里插入图片描述在这里插入图片描述

在这里插入图片描述

Selenium(WebDriver)
用与QTP比较的方式来了解二者的特征和优劣。

价格:
selenium是开源的自动化测试工具,但是QTP是商业版的,而且价格不菲。

应用领域:
Selenium仅支持web页面的测试,而QTP不光支持web界面的测试,而且还支持Client方面的测试。

功能方面:
录制功能QTP支持的好。QTP的录制回放成功率很高,selenium的录制回放成功率非常的低。

脚本的编辑功能:
熟悉java、python等的人喜欢selenium,熟悉的是VBScript可能就会喜欢QTP。

框架处理的能力:
在数据驱动方面,QTP支持很灵活。可以通过简单的设置就可以
完成数据驱动的自动化脚本selenium要用编程来实现才可以。(se可以自己靠编程把这个框架搭的更好)

常见自动化测试工具–UFT(没什么新意)
◆UFT (Unified Functional Testing)
◆UFT是什么?
◆UFT是QTP的新名字,叫统一功能测试框架。新的功能如下:

  1. Insight智能图像识别
    图像识别一直是我们做自动化测试的阻碍之一。包含游戏自动化、flash动态的一些自动化。
    (只能做到基于图像去找一些元素然后去操作)
    2.多脚本调试
  2. PDF文本验证点
    现在UFT可以识别PDF文件并对他们直接进行比较,甚至可以插入文本验证点。(比较鸡肋)
    4.支持开源CI
    5.支持移动设备(但是移动自动化测试有自己的工具)

常见自动化测试工具–RFT
RFT (IBM Rational Functional Tester)
IBM的一款适合于功能测试、回归测试的自动化测试工具。针对于Java、.NET 的对象技术和基于Web应用程序的录制与回放。
◆因为录制与回放功能对于程序运行的环境依赖性太大。
◆因此更多使用该工具的测试团队采用了自己手动写脚本的方式来提高脚本的易读性以及可维护性

框架结构:有自己的分层架构
1.RFT的脚本可以分别被归类为AppObjects、Tasks 和Testcases
2. AppObjects: 定义页面上的元素。
3. Tasks: 定义可以单元化,可重用的任务,调用在AppObjects中定义的元素。
4. Testcases: 一个case写成一个脚本,每个测试场景,可以写成一个或多个脚本,每个脚本只调用在Tasks中定义的可重用的任务。

RFT结构运行图:
在这里插入图片描述
为什么RFT传播和使用范围都不大呢?
1.帮助文档和教程很少,很不系统。而提供的API接口只有说明文档,未提供如何使用该文档;提供的例子很少。
2.环境要求比较高,至少得1 G内存才能比较顺畅使用,512M内存时比较卡,速度慢
3.参数化只支持使用Xm|格式文件来存储测试数据。
4.回放速度极其慢。

常见自动化测试工具–WINRUNNER
老一代的自动化测试框架,是较早可以录制一-回放一修改的自动化测试模式。与QTP类似, 也会使用资源库方式存储控件,在06年以前,是测试行业使用最广的自动化测试工具。
2006年Mercury公司被**HP全权收购,如今Winrunner已从HP产品家族中消失。**除了HP自身推行QTP的原因外,它只支持C语言的模式既成就了它在当时的盛行,也阻碍了它自身的扩展性

新型思路的自动化测试工具: Sikuli
基于图像识别的测试工具
◆创新的图形化编程技术
Sikuli是由MIT(麻省理工)的研究团队发布的新型图形化编程技术。它以图像检索技术为基础,提供了一套基于Jython(python语言在java中的完整实现,像python一样又支持Java的一些代码)的脚本语言以及集成开发环境。(不管是b/s,c/s,我支持的是基于图像化)
使用者可利用屏幕截图直接弓|用GUI元素进行编程,完成交互操作。

◆Sikuli 脚本
Sikuli的脚本编写遵循Python语法规范,其本身提供了多种自定义类及方法。
Sikuli基于Jython,其核心代码由Java编写。
◆通过一个自动打开Firefox浏览器,并登录Gmail的简单实例来快速一览Sikuli脚本的独特之处

脚本中包含图像:
我在我的机器上截图,和别人机器上可能就不大一样
在这里插入图片描述

自动化测试工具选择要求

◆开源免费
◆使用灵活、简单
◆后期用例易于维护
◆支持多种语言
◆容易与单元测试框架结合
◆可支持多浏览器同时,支持远程启动其他服务器高度复用性
◆代码可自主掌控,对于搭建框架、平台等有不可替代的优势

发布了82 篇原创文章 · 获赞 7 · 访问量 4166

猜你喜欢

转载自blog.csdn.net/sunshine612/article/details/105452801