• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

用Rational Functional Tester创建随需应变的自动测试脚本

发布: 2008-6-18 10:47 | 作者: 不详 | 来源: ibm | 查看: 251次 | 进入软件测试论坛讨论

领测软件测试网


 button_search().click();
 httpWwwLotusCom_textVP().performTest();
}
 
Java语言的脚本有很好的可读性,稍有Java知识的人便能看懂这些操作的具体含义。

接下来我们试着回放这段脚本(注意:此时搜索结果页面尚未关闭)。点击工具栏上的按钮"运行Functional Tester脚本",开始回放。

整个回放过程大约需要1分钟,但回放日志中有2条警告信息:"对象识别较困难(在警告阈值以上)",并给出了识别分数和警告阈值。这是由于Rational Functional Tester所使用的ScriptAssure? 技术认为这两次识别是弱识别,可能存在问题。下面我们来看看具体原因:

ScriptAssure技术给各个界面元素赋予了一定的权重,再综合目标对象的各个属性得出一个量化的特征值,便于在对象之间进行比较,因此可以大大提高脚本对频繁变更的应用程序界面的弹性适应能力,ScriptAssure技术的原理并不难懂。打开脚本资源管理器中的对象"document_htmlDocument",可以看到这个对象在识别时,使用到3个属性:".class",".title"和".url",权重各有不同。


权重用来标识这个属性在识别过程中的重要程度,权重为100,表明这个属性非常关键,必须和原值完全一致;权重为0,表明这个属性是无关紧要的。识别分数就是在这些权重的基础上进行一定的运算而得到的。识别对象时,如果有一个权重100的属性值与原值不符,识别分数就要加上"权重×100",即10000分。在这个例子中,录制时使用的是空白的IE页面,而回放时使用的是录制遗留下的搜索结果页面,导致".title"和".url"这两项属性值不符,因此它的识别分数就是".title权重×100"再加上".url权重×100",一共是9000分+4000分=13000分,这就是警告信息里识别分数的由来。

至于警告信息里提到的"警告阈值",可以在Rational Functional Tester "首选项"的ScriptAssure高级选项里修改。缺省值是10000,表明有一个阈值为100的重要属性不匹配。"警告阈值"越小,则意味着识别过程越严格。


对于这一例子而言,使用空白页面和非空页面对结果都没有影响,只要操作对象是浏览器即可,因此我们可以把".title"和".url"这两项属性的权重设为0。修改之后,保存,再回放一次。同样使用刚才的结果页面,但在回放日志里不再有警告信息,而且回放过程也仅仅用了13秒,快速合格地完成了测试

在录制脚本中,除了有录制时浏览器页面的限制,还有一处隐藏的限制:脚本中没有打开浏览器的操作。如果没有在回放前打开一个浏览器页面,回放操作肯定会失败。幸好Rational Functional Tester的API提供了这样的功能,在所有Java脚本的公共父类com.rational.test.ft.script.RationalTestScript里,有一个方法startBrowser(java.lang.String url),可以用来启动浏览器,并打开某个URL。因此需要在脚本的第一行前加上"startBrowser("");"用来打开一个空白页面,然后再执行其他操作。

通过修改页面对象的识别属性和添加必要的Java代码,我们完成了对脚本内容和录制环境的解耦工作。


二 摆脱时间的束缚

回放时,Java脚本是由Java虚拟机解释执行,进行速度很快;而浏览器的打开,页面的装入则往往由于机器性能网络带宽、服务器负载而速度缓慢。如果被测程序的运行和脚本执行的时间差过大,极有可能导致测试的失败,因此等待时间是我们应该妥当设置的一个要素。可以在工具级和程序级这两个层次上进行设置。

1) 工具级设置

在Rational Functional Tester "首选项"的"回放"选项里,可以看到四项时间有关的回放设置。缺省的"尝试查找测试对象的最长时间"值为20秒。由于此处设置比较简单,而且是一个对所有项目和脚本都有效的全局设置,因此很难设定一个能满足所有脚本的值。建议接受默认设置,不在这一层上做时间定制,而是去程序级进行更为灵活的控制。


2) 程序级设置

我们可以在程序级上,对脚本做适量的加工。在某些关键操作后加上适当的等待,直到该操作完全执行完毕,再继续之后的操作。"步步为营"地执行脚本,确保每一步的前提都是正确的。

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网