版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、自动化测试介绍,易往信息技术有限公司,陈明,2015-5-8,2,1,自动化测试的标准与目标,2,自动化测试框架与工具,3,自动化测试实施,4,自动化测试执行与维护,1.1 什么是自动化测试 自动化测试是用程序模拟人的操作的一种测试方法,它主要分为基于UI的自动化测试与接口,单元的自动化测试。例如利用Junit 进行的单元测试也可归入自动化测试。,1.2 自动化测试的准入标准 准入标准解决的是能不能做,适不适合做的问题。主要有以下几方面: 技术上可实现,页面元素,对象等可以被工具识别。 自动化测试的收益,冒烟,回归测试的频率高,某些功能用例繁多。要测试的接口数量多,手工操作工作量大。,1 自动
2、化测试的标准与目标,功能整体稳定,至少经过一轮的系统测试,基本功能通畅。 维护量不应过大,需求变更不应过于频繁和剧烈。 测试数据可重复使用或可恢复。,1.3 什么时候执行自动化测试 自动化测试可以用在冒烟测试和回归测试中。对于一些复杂或量多的单元测试,接口测试也可以考虑使用自动化测试,1 自动化测试的标准与目标,1.4 自动化测试的目标 通俗的说,自动化测试就是把功能测试用例 的脚本化,然后执行脚本,产生一份自动化测试的报告。主要有以下的目标: 覆盖率目标:一般而言覆盖项目功能点或手工测试用例的55-60%。 节省人力成本的目标:对人力资源投入有一定程度的节省。 保证基本功能的正确性。 自动化
3、测试过程可跟踪。,1 自动化测试的标准与目标,人力成本,功能正确,可跟踪,覆盖率,目标,2.1 自动化测试的框架 自动化测试框架是为了管理自动化测试,使得测试更高效的一种架构。它将用例,脚本,数据,报告,LOG有机的结合到一起。 自动化测试的框架工作情况如下面的图来表示,2 自动化测试框架与工具,自动化测试框架,功能点管理,脚本管理,执行管理,用例,数据,测试报告,测试log,结果,一一对应,使用,产生,调用,用例管理 自动化测试的过程中,执行的一个循环就相当于执行一个测试用例。测试用例 描述了本次执行的主要操作,验证点,预期结果。 用例管理模块提供将同一项目的不能模块的各个功能点的测试用例组
4、织到一起的功能。 数据管理 自动化测试执行的过程中要用到测试数据(如输入的用户名,密码等)。对于不同模块下的功能点对应的测试数据,数据管理提供一个管理这些数据的体系结构。 脚本管理 脚本管理方案对于脚本的质量至关重要。一套结构层次清晰,脚本堆满的机制能够减少脚本的维护成本,降低脚本错误的机率。一般而言,不同功能点的对应的脚本独立管理。,2 自动化测试框架与工具,功能点管理 对于一个项目中要进行自动化测试的所有功能点,进行统一管理。功能点归属特定的模块,测试执行以功能点为单位。用例与数据跟功能点一一对应,可以选择性对功能点进行自动化测试执行。 执行管理 负责控制自动化测试执行的策略,如定时执行,
5、执行过程控制等。 测试结果管理 测试结果就是自动化测试用例的执行结果,即成功还是失败,在执行过程中,框架会将这个结果记录到指定的位置(如XML文件或者是测试用例中)。此模块提供写测试结果的函数。在测试执行时调用该函数。,2 自动化测试框架与工具,测试报告管理 在一个项目的软件版本的所有要执行的自动化测试用例执行完成后,会产生一个自动化测试报告。展示本次测试的一些基本情况。如通过率,各模块的用例执行报告。各模块的通过率,失败用例分布等。以柱状图,饼图等形式展示。此模块负责对测试结果产生的数据进行统计 并自动产生测试报告。 测试LOG及截图管理 为了跟踪自动化测试的过程,定位测试过程中发现的问题。
6、框架需要提供测试log与截图的机制,在关键的验证点或者是容易出现错误的地方,加上写log信息及截图函数即可产生log和截图到指定目录下的文件中。这些函数由些模块提供。,2 自动化测试框架与工具,2.2 自动化测试的框架分类 自动化测试框架主要可以分为数据驱动和关键字驱动两类框架。 所谓数据驱动框架主要是以测试数据的结构以及脚本来驱动自动化执行的一种框架结构。 关键字驱动框架,将测试脚本分解成对象+数据+操作方法的形式,对象即为关键字。然后将这一系列对象+方法+数据的组合形成测试用例。最终由框架程序 将这些测试用例转化为可以执行的测试脚本。 这两种类型的框架都包含用例管理,数据管理,脚本管理,测
7、试结果管理,测试报告管理,Log和截图管理等功能。,2 自动化测试框架与工具,2.2.1 数据驱动测试框架 在测试某一功能点(如登录)时,会尝试用不同的测试数据来执行测试。这些不同的测试数据的组合就是一个个的测试用例。测试脚本执行时读取这些测试数据就可以完成对自动化测试的有效实现。 下图所求为测试数据举例,2 自动化测试框架与工具,测试脚本根据测试模块,验证类型,ID和验证字段来执行测试。同时根据ID模块名称与测试用例中的用例进行关联。并将测试结果写入正确的位置。然后根据测试结果产生出一份自动化测试报告。,2 自动化测试框架与工具,2.2.2 关键字驱动测试框架 无论是利用QTP还是Selen
8、ium作为自动化测试的工具,我们都可以将测试脚本分解为对象+方法+测试数据的形式。将页面元素抽象成为对象存储到一个容器中,同时在方法中封装好可能的逻辑判断。在编写 测试用例时,选取要操作的对象加上操作方法和测试数据即组成了一条操作,多个这样的操作序列组成了一个功能点的测试用例,然后通过框架程序将这些用例解析为工具能识别的代码。这样就免去了大量的编写脚本的工作。降低测试脚本的维护量。 下图为测试用例 示例,2 自动化测试框架与工具,为了体现对象的层次结构,将对象存储到XML文件中。在框架程序中将对象层次结构解析出来。测试数据也会存储到对应模块的相应位置中(可以是EXCEL或者是数据库),编写用于
9、产生测试结果与测试报告的函数,将测试结果写入XML,产生测试报告时,解析该XML文件,最终生成一个HTML文件的测试报告。,2 自动化测试框架与工具,2.2.3 两种类型框架的对比 数据驱动框架的结构简单,理论上能实现任何复杂逻辑的测试脚本。因为它是纯脚本的框架,所以脚本的维护量很大,它适合能力较强、规模小的自动化测试团队。 关键字驱动框架结构复杂,对于一些复杂的测试逻辑比较难以实现(除非编写专用的函数),它可极大的减少脚本的维护量,上手容易,适合较大规模的测试团队。 它们的对比如下表所示:,对比维度,数据驱动框架,关键字驱动框架,2 自动化测试框架与工具,2.3 自动化测试工具 自动化测试工
10、具有很多,如QTP,Selenium,RFT,Monkey Test,Jmeter等。五花八门,有开源的也有商业的,但主流的测试工具还是QTP和Selenium,由于Selenium的开源和强大的浏览器兼容性和跨平台性,正在被越来越多的人使用。而QTP与RFT作为商业工具的代表,以其易学易用和广泛的软件支持在市场上占据一席之地。下面主要介绍QTP和Selenium。 2.3.1 QTP工具 QTP是由HP公司提供的一款商业工具,它提供了强大的帮助文档,用户可以从文档中查询到关于工具以及VBS的帮助信息。 工作原理 QTP将要操作的界面元素(输入框,单选框,按钮等)抽象成对象。在脚本编写 时,使
11、用录制或者添加对象的方法将对象采集到对象库中,QTP在执行脚本时,,关键字驱动框架,2 自动化测试框架与工具,会从对象库读取对象取得对象名称与对象属性,与页面元素做比对,如果匹配则执行该脚本,否则抛出对象不识别的错误。 对象识别根据对象识别的规则来进行,即先对比强制属性,如果强制属性能唯一识别对象,那么对象识别停止,否则再进行辅助属性的比对,接着是智能属性和顺序属性。 常用的功能 Object spy 是QTP中一个重要的工具,它用于识别界面上操作的元素,如果能补object spy识别的元素就可以对它做自动化测试。 对象库用于管理对象,录制或者添加的对象会存储到这里,一个好的方法就是将不同的
12、模块对应的对象分别放在不同的action对应的对象库中。 Datatable用于管理测试数据,可以将测试数据先存入到EXCEL文件,在测试执行时,将数据从EXCEL导入到Datatable供测试脚本引用 。,2 自动化测试框架与工具,场景恢复功能用在测试执行过程中出现异常情况时要采取的策略。比如在测试执行的过程中,出现了页面404错误时,就可以利用场景恢复将浏览器重新启动然后将脚本执行转到下一条用例 。 Action用于管理脚本,可以将不同模块的脚本放在不同的action中来独立的管理,这使得脚本的结构更清晰。,2 自动化测试框架与工具,2.3.2 Selenium Selenium是Thou
13、ghtWorks公司开发的一款开源自动化测试工具,用于对web应用 程序的测试。可以支持目前几乎所有主流的浏览器。它工作在浏览器上,具有 执行速度快,稳定 性好的优点。 工作原理 Selenium将页面的HTML元素对应的XPATH,标签,名称,id等抽象成为工具可以识别的元素。脚本执行时,selenium server将代码转化为javascript程序并将其装载到浏览器中,由浏览器直接执行转化后的JS代码,从而达到操作页面元素的目的。 目前最常用的是Selenium2.0,即webdriver。以java+eclipse 为例 ,将需要的两个jar包加入到工程中,就可开始进行脚本的编写了。
14、为了便 于管理可以结合Junit或者是TestNG来进行自动化的脚本编写 。,关键字驱动框架,2 自动化测试框架与工具,Selenium 测试直接在浏览器中运行,就像真实用户所做的一样。Selenium 测试可以在 Windows、Linux 和 Macintosh上的 Internet Explorer、Mozilla 和 Firefox 中运行。其他测试工具都不能覆盖如此多的平台。使用 Selenium 和在浏览器中运行测试还有很多其他好处。 通过编写模仿用户操作的 Selenium 测试脚本,可以从终端用户的角度来测试应用程序。通过在不同浏览器中运行测试,更容易发现浏览器的不兼容性。Se
15、lenium 的核心,也称browser bot,是用 JavaScript 编写的。这使得测试脚本可以在受支持的浏览器中运行。browser bot 负责执行从测试脚本接收到的命令,测试脚本或者是用 HTML 的表布局编写的,或者是使用一种受支持的编程语言编写的。编程语言可以实现复杂的逻辑,从而实现一些较复杂的测试任务。,关键字驱动框架,2 自动化测试框架与工具,2.3.3 QTP与Selenium的对比 QTP的优点是简单易用,可测试对象广泛以及强大的帮助支持文档库。缺点是不稳定,执行效率不高,不能分布式和跨平台执行。支持的浏览器以及编程语言不多。 Selenium的优点是执行速度快,可分
16、布式跨平台执行,稳定性好且开源免费。缺点是掌握难度大,对测试人员要求高,不能对非Web应用程序进行测试。对于浏览器上的对话框等元素的识别能力有限。,2 自动化测试框架与工具,3.1 自动化实施的基本流程 自动化实施就是将一个项目的测试进行自动化测试实现的过程。一般要经过如下的流程:,3.1.1 项目自动化实施技术预研 在做自动化测试之前要对项目做一个比较全面的分析,主要依据自动化测试的准入标准来确定项目是否适合做自动化测试,3 自动化测试实施,技术预研,需求分析,编写方案与计划,搭建测试框架,脚本,用例,数据编写,脚本调试,3.1.2 项目需求分析 对项目的需求进行分析,决定哪些功能点要进行自
17、动化实施,哪些功能点不要做自动化实施。一般而言,技术上能实现的基本功能的功能点都要进行自动化实现,另外一些常测试的验证,异常流也要进行自动化的实现。 3.1.3 实施方案与计划的编写 方案用于解决怎么做自动化实施的问题,可以将前期技术预研的结果写入到方案中,主要内容包括使用的框架,工具,平台,编程语言等。计划中包括各个任务的分工及资源情况,以及各个关键的节点对应的时间节点。 3.1.4 搭建自动化测试框架 根据团队规模,人员能力,项目复杂度等 因素来决定例用数据驱动还是关键字驱动的框架。然后编写框架的代码,设计框架的结构,编写公共函数等。,3 自动化测试实施,3.1.5 测试脚本,用例,数据的
18、编写 这是关键的一步,测试脚本的质量决定了自动化测试的执行效率,执行质量及脚本的维护量。测试脚本要求要结构清晰,可读性强。 3.1.6 脚本调试 编写好的测试脚本,肯定或多或少有错误,需要经过不断的脚本调试以及对测试用例及测试数据的修改,达到脚本运行稳定,测试执行过程符合预期的目的。,3 自动化测试实施,4.1 自动化测试的执行 测试脚本,测试用例,测试数据编写完成并经过调试通过后,就可以配合项目的测试了。一般而言,自动化测试用于代替一部分的手工回归测试和大部分的冒烟测试。因此,自动化测试执行应该是在冒烟测试及回归测试阶段。 冒烟测试阶段 在系统测试的一个轮次的测试开始前,一般要进行冒烟测试。如果是基于UI的自动化测试,准备冒烟测试的自动化测试脚本可能会有一些困难,因为测试之前,版本没有发布,无法取得页面元素,这就需要与开发人员进行沟通,可以在开发自己
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030儿童玩具市场前景分析及投资策略与风险管理研究报告
- 2025-2030主持召开非洲茶叶种植产业商业机会分析能力改善市场效益分析分析研究分析分析报告
- 2025-2030日用化工市场品牌品类延伸与生物科技创新驱动市场审核投资价值规划报告
- 2025-2030无锡电子设备行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030无线充电技术圈供需价值分析及投资领域规划
- 2025-2030无人机物流配送行业市场深度调研及发展趋势与投资前景研究报告
- 2025-2030无人机应用技术发展分析及物流配送行业革命性策略报告
- 2025-2030新能源船舶动力系统行业市场分析及发展趋势研究中
- 2025-2030新能源电池回收利用与资源循环利用研究
- 物流企业信息化建设方案探索
- 攀枝花市旺城旅游发展有限责任公司2025年公开招聘工作人员笔试历年参考题库附带答案详解
- 生态环境保护课件
- 常德职业技术学院单招《语文》考试复习题库(含答案)
- 地产住宅项目精装修施工图审图要点
- 2026年中考数学解密之尺规作图
- 流域排涝泵站建设工程可行性研究报告
- 电动两轮车整车性能测试与优化方案
- 《艺术插花的造型与数学》教学大纲
- SF-36健康调查量表(含excel版)
- 超星尔雅学习通《高校实验室安全基础课(实验室准入教育)》章节测试含答案
- 酒店餐饮宴会服务流程规定
评论
0/150
提交评论