GUI自动化测试原理剖析—JAVA测试篇

发表于:2011-6-03 10:09

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:散步的SUN    来源:51Testing软件测试博客

  序言:接触过自动化测试工具的测试人员,例如,Rational fuction teste,QTP等,一定对“录制—回放”这种机制不陌生吧,但是又有多少人能够了解其内部大概的运行机制呢?更又有多少人能从代码级别及其框架去分析其运作原理呢?

  我一直觉得,你不理解它,你就无法用好它,更别说去拓展它成一个框架或者平台了。

  它,在录制时,是怎么获取对象的?可以不通过录制的方式获得对象吗?

  它,在回放时,是采用调用什么方式进行回放的?可以通过API或者自己编写代码使其录制的脚本进行回放吗?

  自己如何去编写一个简单的“录制—回放”工具呢?

  那么,今天就大概根据自己的简单介绍一下这种机制,希望能够帮助大家一起真正走入一个自动化测试的“大门”。

  一、工具如何实现录制和回放

  首先大概介绍一下自动化测试工具实现录制和回放的两种方法,其重点是对象的识别。

  1、静态映射:当录制时,通过ObjectMap,将需要识别的JAVA应用程序的组件对象映射进对象库,然后,回放时,RFT首先根据正在运行的JAVA程序到对象库去查找相应的对象,若匹配到对应属性阈值适合的对象,则调用其脚本中的方法对对象执行操作。

  一般的工具在工具与AUT之间都有一个代理,这个代理就是包裹着实际要测试的界面的控件,而ObjectMap是脚本层面的东西,它们之间存在一个映射关系。RFT通过代理与AUT进行交互。

  需要明白的是,由于swing组件的树形结构关系,因此,ObjectMap中的映射出来的对象也是采用这种形式,虽然RFT中可以通过自己设置识别阈值的方式,但是对界面更改的适应能力还是不高。

  2、动态搜索:应用动态搜索就可以不需要采用录制的方式了,而且也不需要对象库的方式,它是直接通过调用工作库中的API来定制相应的组件属性进行查找即可;回放时,自动化测试工具会获取正在运行的JAVA程序的各个组件属性,然后进行属性匹配,若是能够匹配到相应符合的属性,则会进行脚本规定的方法操作;

  所以,应用动态搜索的方式,虽然在识别效率上降低了,但是其识别能力大大提高,界面如何变化,只要属性值不变,就没有太大问题,这也是为什么需要开发在开发JAVA程序的时候,尽量在属性值里添加一个唯一的识别属性ID了,这样做的目的可以使自动化测试更好的开展,这也可以作为以后各位的一个DFT需求了。

  二、录制和回放的原理

  经过了第一环节的介绍,大家对自动化测试工作实现录制和回放的两种方式大概有所了解,但是深层次是怎么样的呢?

  借用关于JAVA的事件生命周期的一幅图片来说明:

21/212>
《2023软件测试行业现状调查报告》独家发布~

精彩评论

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号