之前我们有做过QT、AR、Robot、Winrunner四大自动化测试工具的详细对比,今天我们在来着重整理一下AR和QTP两大自动化测试工具的对比。主要是从原理出发如下。

QTP测试原理:

(1)封装被测对象到对象库;

(2)对比对象库里的对象属性和运行时的真实被测对象的属性;

(3)对比一致后找到相应的对象,按照脚本驱动对象;

QTP重点关注的是流程驱动,使用RIDE、jmeter等工具进行自动化测试时,也多是流程驱动,但是流程驱动的话,有优点就有缺点。使用固定的合法数据进行数据驱动,可以保证整个流程不会出错或者报错,但是对于功能点的测试则可能会造成流失,所以在一些bug修改或者是功能优化后,对于自动化脚本的维护成本较高。

AR测试原理:

(1)录制脚本时,抓取页面对象的属性值,记录于对象库,可通过设置属性权重判断该对象在回放时是否校验该属性;

(2)通过对被测系统界面进行操作,工具自动记录脚本;或者之间通过增加对象的方式获取对象,通过对于视图对象的拖拽直接生成脚本;

(3)工具脚本是BeanShell,支持JAVA扩展,也就是用户用JAVA语言封装函数,工具可以识别;

(4)对于页面非Windows的标准控件,工具可强制获取对象信息,最差情况可通过坐标位置获取;

AR的优势在于功能全面、执行高效、运行可靠。

从测试经验来看,如果想将重复的功能通过自动化测试工具进行自动化处理,重要的是功能细分、数据独立、流程封装这几个方面。