当前位置:主页 > 电脑基础 >

怎么样提高QTP运行速度

  前几篇文章我们讲到了QTP CreateObject("InternetExplorer.Application")找不到指定文件的解决方法以及QTP循环输出从数据库查询出的数据集的方法。如果你的QTP是默认的配置信息,你有没有发现运行脚本的时候很慢?我就是用QTP10版本编写了一个功能脚本,发现运行实在太慢了,每次往输入框中输入文字大约需要5秒钟的时间。于是搜集了一些资料,原来QTP的配置信息对于QTP的运行也有很大的影响。下面,就来看看优化QTP配置信息,提高QTP运行速度的10种方法。

  1、减少脚本中Wait语句的使用

  Wait语句的意思是一直等到超时时间后才继续执行脚本,等待的时间是固定的,这样就会造成时间浪费,导致脚本运行缓慢。

  解决方法:使用Exist,Sync,WaitProperty等方法来代替wait。关于默认等待时间的设置,请继续往下看。

  2、如非必要,请关闭智能识别选项

  QTP在识别对象的过程中如果对象的强制属性和辅助属性都不能唯一识别对象,会激活智能识别模式,由于智能识别的算法复杂,会消耗一定的资源开销,所以导致脚本运行缓慢。

  解决方法:全局关闭(File-->Settings-->Run)或者部分关闭智能识别(Tools-->Object Identification根据对象类型)

  3、调低默认同步时间

  在QTP的运行设置中默认对象同步超时时间是20秒,如果是测Web程序的话还有60秒导航超时时间。

  解决方法:在File-->Settings选项中调低默认的超时时间。

  4、设置QTP的运行模式为Fast

  QTP的运行模式分为Normal和Fast,Nomal模式允许在每一步运行完后都有延迟时间,而Fast模式则没有延迟时间。Normal可以设置运行步骤间隔时间且会有当前运行步骤提示,Fast不能设置步骤运行时间间隔也没有步骤运行提示。当从QC运行测试脚本时,即使选择了Normal,也会自动设为Fast模式。

  解决方法:在Tools-->Options-->Run中设置运行模式为Fast

  5、减少脚本中ChildObjects方法的使用

  ChildObjects方法一般都是采用循环遍历,无疑会加重系统资源开销,如果再加上网页的元素很复杂的话,那么势必会影响脚本的性能。

  解决方法:尽量避免使用子对象的方法去操作对象,可以用DOM的方式代替

  6、设置恢复场景的激活方式

  恢复场景的触发方式有三种:On every step,On error和Never,On every step的意思在每一步运行完后激活恢复场景,去探测场景设置中的trigger有没有触发,这种做法同样也会降低脚本的性能。

  解决方法:激活方式选用On error(可能会Miss一些场景)、手工激活恢复场景(Recovery对象),在File-->Settings中可以设置,默认值就是On error。

  7、避免脚本的循环体中不必要的冗余循环

  有时我们会在一个循环体中再增加一些条件分支语句,用于满足特定的测试需求,如果循环次数少的话那还好,但要是循环次数非常多的话就会大大降低脚本性能。

  解决方法:在循环体的选择分支语句中根据测试需求适当增加Exit For,Exit Function之类的语句

  8、合理设置自动截图功能

  分析:自动截图功能对于脚本的出错调试提供了很大的方便,能使我们以更直观的方式去分析和定位错误,但同时在一定程度上也会使我们的脚本运行缓慢。

  解决方法:在Tools-->Options-->Run选项中禁用自动截图功能,如果确实需要此功能那么可以选择"For errors"或者"For errors and warnings"。

  9、合理设置视频录制功能

  和截图一样,视频录制功能同样可以使我们更方便地回溯脚本运行的整个过程,但是其代价也是牺牲性能。

  解决方法:在Tools-->Options-->Run选项中禁用视频录制功能

  10、合理设置系统实时监控

  系统实时监控是为了在运行自动化测试的同时,获取一些系统的性能数据,比如内存占用率,CPU占用率,硬盘读写速度等等,通常是用来满足性能测试的需要。如果设置的监控时间太频繁的话,也会对脚本的性能造成一定影响。

  解决方法:在File-->Settings-->Local System Monitor选项中禁用系统实时监控,或者将监控的间隔时间设置得长一些。

  以上就是本文介绍的优化QTP配置信息,提高QTP运行速度的10种方法,是在QTP11版本设置的,截图是QTP11的中文汉化版。以上各方法请根据自己的实际需求酌情设置。注意,此设置是对于单个TestCase来说的,如果更换了其他的TestCase则需要对当前的TestCase重新设置。

  • 关注微信

猜你喜欢

微信公众号