一种高效的对象缓存机制在测试框架中的应用

发表于:2009-6-23 12:02

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

 作者:张捷,杨莉, 陈昱旻,    来源:IBM

  如果在 IBM Rational Functional Tester(RFT)项目中完全使用动态搜索的方式获得对象,那么有可能你将面临严重的性能问题,尤其是当你需要测试的应用中对象层次十分多而复杂时,比如 Microsoft Office 软件。Object Map 是一种选择,可 Object Map 常常不能满足你的要求,比如 ObjectMap 经常需要跟随测试的应用改变而更新,而且有很多对象无法使用 Object Map 获取等等。本文提供一种高效的对象缓存机制,不但可以对已经获取的对象进行有效的缓存,快速的提取,还可以在对象层次复杂时,极大的改善动态搜索对象的性能。

 使用 RFT 进行 GUI 测试自动化

  自动测试解决了传统手工测试中的很多问题,把测试人员从繁重而重复的测试工作中解脱出来,节省了很多人工时间。RFT 是一种非常有效,使用方便的测试自动化工具,在很多项目中得到应用。用户可以选择使用 RFT 进行录制播放的方法来进行自动化测试,也可以选择编写测试框架,并在框架的基础上编写脚本的方式实现。前者的缺点很明显,就是在测试的应用发生变化时需要重新进行录制,而当变更涉及到很多 case 时,这将带来很大的工作量,这也许比手工测试花费的时间还长。所以除非能避免这个问题,所有的项目都采用后者。在我们的项目中也是如此

 Object Map

  在 GUI 测试中,RFT 提供了两种获取对象的方法,一种是通过 ObjectMap,由 RFT 对需要测试的对象进行识别,用户可以根据需要选择把哪个对象引入测试脚本,RFT 自动生成 getter 方法供使用者调用。RFT 提供的录制播放功能也是采用 ObjectMap 来实现对象获取。此方法的优点是用户不用关心对象获取的细节。然而缺点与使用录制播放的方式类似,就是当测试的应用界面结构变化时,用户经常需要重新更新 ObjectMap,尽管 RFT 有搜索权重机制,一些微小的变化不会导致更新。而且用户经常会遇到无法使用 ObjectMap 获取的对象。

  有很多关于如何使用 ObjectMap 的文章和资源,这里只给出一个简单的例子。

  Microsoft word 2007 是一个非常适合做例子的应用。测试步骤共两步:

  1. 打开 word 2007;

  2. 在菜单栏中点击”View”,再点击”Home”。

点击查看大图

图 1. “View”和“Home”在 word 2007 的 ObjectMap 结构中的位置

  在 RFT 中新建一个脚本叫做”ObjectMap.java”,在自动生成的代码中,这个类继承自“ObjectMapHelper.java”。然后把 “View”和“Home”两个对象插入到这个脚本中。RFT 会自动为这两个对象生成 get 方法,并插入到 ObjectMapHelper.java 中。

点击查看大图

图2. ObjectMapHelper.java

  ObjectMap.java 中的代码非常简洁 :

  viewpageTab().click() 在菜单栏中点击”View”,homepageTab().click() 即点击”Home”对象。

点击查看大图

图 3. ObjectMap.java

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

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号