51Testing独家连载:(四十二)精通QTP——自动化测试技术领航

发表于:2012-2-09 13:56

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

 作者:余杰 赵旭斌    来源:51Testing软件测试网

分享:

  QTP描述性编程脚本:

Services.StartTransaction "inputBefore"
For i=1 to 100
          Browser("Browser").Page("Page").WebEdit("name:=text_"+cstr(i)).Set "zzxxbb112"
Next
Services.EndTransaction "inputBefore"

  DOM操作脚本:

Services.StartTransaction "inputBefore"
For i=1 to 100
          Browser("Browser").Page("Page").Object._
          getElementsByName("text_" + cstr(i))(0).value =  " zzxxbb"
Next
Services.EndTransaction "inputBefore"

  第一个脚本是使用了QTP的描述性编程,并对text后的动态数字进行了参数化,这样QTP就能顺利地对每个文本对象进行set方法的操作。第二个脚本使用了page对象的object属性,也就是获得了DOM对象的引用,接着使用GetElementsByName方法,动态循环获取文本框并进行输入。其实相信读者在运行以上两段代码时就应该深有体会,为了让读者更清晰地看到两种操作对象方法的性能差距,这里特地使用了事务,并在结果报告中进行了时间输出。

  QTP描述性编程的结果,如图3-15所示。

图3-15

  DOM操作脚本的结果,如图3-16所示。

图3-16

  分析:

  由如上两张图可以看出,第一张图使用QTP描述性编程测试结果总消耗时间为20.4秒,而第二张图使用DOM操作脚本的结果图总消耗时间为5.7秒,经过对比分析后,可以得到的结论是,当需要输入100个文本框时,DOM对象的性能要比QTP描述性编程方式快2~4倍,这个差距其实是非常惊人的,此处读者也可以想象一下,现在是100个文本框,若是有500个或者1000个,它们之间的差距又会相差多少。如果有兴趣的读者可以尝试一下后两种情况甚至更多,最终的性能提升差距可能会更大。

3.2.4  总结

  本章节主要让读者了解了DOM在自动化测试过程中的优势,以及如何在QTP中使用、何时使用等。在实际项目应用过程中,只要是Web应用基本上都会有它的身影,而且它与测试对象的关系非常的紧密,可以脱离QTP操控Web对象元素的自身接口属性或者方法。因此,DOM也算是必会的一个知识点。很多时候它也能够解决QTP无法解决的问题。本章所提到的几个优势只是实际应用中的一部分,还有许多优势只有自己在接触真实项目之后才可将其挖掘出来。例如,当遇到日期控件,文本框是disable状态的,类似这样的情况可以使用DOM接口访问控件的value属性直接注入需要的值。只要把DOM的作用充分发挥出来并与QTP完美结合,相信大多数测试对象问题一定都能迎刃而解。

  知识点巩固和举一反三练习

  一、利用DOM使支付宝的密码框变为只读。

  步骤:

  1.打开www.alipay.com,找到密码框。

  2.利用DOM技术使其密码框状态变为Disable。

本文选自《51Testing软件测试作品系列》之九——《精通QTP——自动化测试技术领航》。

本站经人民邮电出版社和作者的授权,近期将进行部分章节的独家连载,敬请期待!

版权声明:51Testing软件测试网获人民邮电出版社和作者授权独家连载本书部分章节。

任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。

相关阅读:

查看本书介绍>>

查看本书更多试读章节连载>>

查看软件测试作品系列其他书籍>>

22/2<12
价值129的会员专享直播免费赠送,添加微信领取听课名额哦~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号