自动化测试项目开发流程说明
作者:网络转载 发布时间:[ 2015/1/12 15:01:20 ] 推荐标签:软件测试技术 自动化测试
1.9. 设计公共对象库
1.9.1. 概念说明
对象库顾名思义即用来管理测试对象。自动化测试为核心的技术即对象的识别技术,不管哪个自动化测试工具,对象识别越厉害,吸引的使用群体越多,市场占有率也越大。所以说,对象识别既是自动化测试的基础,也是难点。QTP中对象库采用了树状文件式的管理方法,分为本地对象和公共对象。本地对象只提供给当前依附的脚本使用,不提供给外部的脚本使用,反之,公共对象,即一个独立的库文件,脚本需要加载它使用,与之带来的好处,即全部的脚本对象管理仅需要维护一份对象库文件。
1.9.2. 论对象识别机制
QTP工具在管理对象库方面是成功的,对象管理的结构很清晰,也很简单,对于开发人员来讲易于管理和使用,例如:对象的关联方法、对象的定义、对象的识别处理机制。个人觉得这些都是QTP工具上的亮点。以前,网上论坛常有人在争论描述性识别对象方法和对象库识别对象方法的优劣之分,其实,在我看来,二者本无优劣之分,仅有在特定的情况下,那种方法更适用,更方便脚本的开发。此处,我总结下我的看法:
1) 描述性对象识别方法:使用简单、体现直观、易于理解、处理灵活,在小规模项目和简单的对象识别上可以考虑使用,但是前提是对象在后期不会变更,否则随之带来的是大量的维护任务。
2) 对象库识别方法,科学管理、识别机制更强大、适用于大型的自动化项目开发,多人协作模式,以及项目对象频繁变更的场景下。一般是推荐使用对象库来管理识别对象,更有利于整个项目的管理。
上述二者之关系,好比一个是摩托车(描述性方法),一个是轿车(对象库管理),都可以用来处理对象识别,因为他们都是用发动机引擎,不过发动机的引擎规格不同,决定了它们的性能不同。摩托车固然灵活轻巧,容易驾驶上手,但是安全性不足,上了高速容易出事故,抛头颅,洒热血!而轿车呢,成本高,得先考驾照吧,即掌握使用方法,然而,相比摩托车,其速度更快、安全性更高(安全气囊)、行程更远。
另外,引用上述比喻,轿车也非,跑高速路上很,但是走山路呢?这里想说明一个问题,对于产品的web对象可识别度不高、开发人员无法给与支持配合的情况下,对象库的使用也容易出现不灵光的现象,毕竟QTP对象库提供的识别技术有限。解决办法?请挽起袖子自己造轮子吧!这也是定义对象库文件【XXX_Object.vbs】的目的之一,对于识别难的对象(包括识别不到和识别速度慢),可以采用DOM方法封装函数对象的方式处理。这个方法目前在多个项目中被使用,效果比较好,因为这样即利用了对象库的优点,也提高了对象识别的灵活度。
1.9.3. 公共对象库的管理方法
对于新手,往往对对象库管理比较不感冒,使用过程也常头疼,觉得写个脚本中间还隔着个对象库,不论编写或维护脚本都比较麻烦。但是随着学习的深入以及经验的积累,对于QTP对象库会更为准确的认识。
本人在这三年来积累的一些相关认识记录下来供大家参考:
1) 使用对象库,必须先掌握对象识别机制,否则一定管理不好对象库。例如测试对象中的Web控件类别、每一类对象常用到几种定位属性、对象识别的优先顺序和策略等。
2) 对象库的目录树需要合理规划,正常情况下可以按照页面的功能排布来划分,如果存在特殊的对象,如上传弹窗,页面弹窗等,也可以根据对象的类别独立出来管理。良好的对象库目录树分类有助于脚本的编写和对象库的维护。
3) 对象命名的方式也需要统一准确,避免和其他模块的对象名称相混淆。对于集合类的对象需要做出特征标示,标示该对象属于集合对象、可以通过定义属性来定义对象。其次,良好的命名风格,可以使对象在目录树中分门别类清晰排布,如果随意命名,对象显示会呈现散乱不易管理。
4) 对象添加到对象库后,需要对特征属性进行重新确认并编辑,因为QTP默认识别到的对象属性不一定是优方案,需要根据项目的对象特点采用为稳定的特征属性。另外,对于使用定位属性(Index、Location、CreateTime)这类的对象,一定要慎重!多考虑在不同场景下,对象的定位是否准确。
5) 对象库中的定位属性,并不是越多越好,也不是越少也好,而是应该从稳定和识别速度上来取舍。
6) 通过对象库工具添加对象不一定能定位到属性,此时,可以使用FireBug这类工具来查看对象代码,通过分析代码抓取有效的特征值。
7) 灵活运用对象定位属性值的正则匹配方法,对于某些特征值,虽然不固定,但是有一定的规律,此时可以使用正则表达式来匹配,往往会有惊喜!
1.10. 设计脚本批量执行
1.10.1. 概念说明:
脚本批量执行是根据给定对配置,调用执行工具对多个脚本进行遍历执行,并将执行对结果保存到指定对位置以供分析。
1.10.2. 批量执行方法
我们对执行工具是QTP,自然是要调用QTP的对象接口,通过定义对象接口,加载执行信息,让QTP按照我们的指示执行脚本,目前,我们对执行平台为Excel,基本可以满足批量执行对要求。基本的原理是通过VBA函数调用驱动文件【Action驱动.vbs】,驱动文件再加载Excel中的脚本执行路径信息和配置信息,通过调用QTP对象实现执行批量。
添加执行脚本的方法如下图,中对应的列【二级路径】和【Action】添加路径和脚本名,然后中【执行】列选择打钩。这样成功添加了一条执行记录。
下图为执行对配置信息,脚本执行时会使用此处对配置信息,因此中执行脚本前,务必要检查一下配置信息是否正确。
1.11. 查看测试报告
1.11.1. 概念说明
测试报告承载了整个自动化过程的心血,我们需要通过测试报告分析脚本缺陷、产品缺陷、用例覆盖率等。拥有良好的测试报告展示效果对于一个自动化框架而言尤为重要。测试报告的载体多样化、常见的如:文本、Excel、XML、HTML。
1.11.2. 报告包含信息和功能
1) 执行的过程信息:执行时间、执行信息。
2) 检查点判断信息:执行时间、执行判断结果、执行信息。
3) 排错辅助信息:截图、录像、驱动数据。
4) 报告的排序、过滤、搜索等功能。
1.11.3. 测试报告输出类型:
1) 日常调试日志输出:存放在项目路径【输出数据用例测试报告日志】下。
2) 脚本执行过程日志输出:存放在项目路径【输出数据用例测试报告日志debug】下。
3) 批量执行Excel报告:存在在项目路径【输出数据】下的测试报告.xlsm。
4) 批量执行Web报告:存放在http://auto.35test.cn/readqtp下。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11