QTP场景恢复运用讲解(转)

上一篇 / 下一篇  2011-08-03 17:54:32

QTP场景恢复将我们在批量运行测试脚本时产生的异常进行处理(这里以QTP9.0+quality9.0为例),对于我们在批量运行时产生的异常能及时处理掉,从而不影响其他后续脚本的执行,进一步达到我们进行自动化测试的目的。目前,网络上这类文章是不少,当时讲解的不够详细,大部人看估计还是不是很明白,而且在批量运行测试脚本时,到底场景恢复的功能体现在哪里,估计还是有一部分人没有感受到,呵呵!
    希望本文起到抛砖引玉的作用,不足之处希望大家一起讨论学习^_^
    这里在讲方法之前,还是先说下场景恢复的一些概念。
    “场景恢复可以用于应对测试脚本在运行的过程中出现的异常,在预估可能出现的异常状况下,添加对应的场景恢复,可以使脚本运行的更加通畅。”。
    场景恢复机制提供了四种类型的触发事件,分别用来识别:弹出对话框、对象的特殊属性值、运行错误、应用程序失败。
    好了,废话不说了,直接切入正题。
    本例目的在于对在批量运行中产生的对象不能识别的问题,进行处理,执行两种场景恢复操作:(1)终止QTP运行。(2)终止应用程序,再次还是以QTP自带的flight4a.exe为例。再次强调:因为是批量运行,所以要终止运行的flight4a.exe程序,终止QTP进程,以便下一个QTP脚本的顺利运行。
    quality center 中testset 中,需要执行4个脚本如图:

     用例 notfound_object01 在运行时会产生一个Run Error的错误,原因为对象不存在。这也就是我为什么要用到场景恢复的功能来处理的原因(因为用例help_test还要执行,如果不处理notfound_object01 产生的异常,help_test在执行会出错)。
    2、这里我们设置场景处理的方式。首先,这里产生的异常的原因“对象不存在”使我们已知的,这里只是抛砖引玉,讲述出方法,具体的根据实际情况设置处理。
    首先我们打开QTP在打开 Resouces--Recovery Scenario Manager窗口。如图:

点击按钮,打开窗口后,点击“下一步”进入Select Trigger Event 选项,如图:

这里我们选择Test run error,因为对象找不到是属于Test run error中的错误类型。然后,点击下一步
进入Select Test Run Error 界面,如图:

在Error下拉列表中我们选择“Object not found”。点击“下一步”,出现Recovery Operations 界面,这里我们点击“下一步”,出现Recovery Opertion操作界面。如图:

这里选择“Close application process”这里我们我们要执行关闭应用程序进程操作。点击“下一步”,出现Recovery Operation--close processes窗口,如图:

这里我们需要关闭2个进程,如图:flight4a.exe、QTPro.exe,添加要关闭的进程后,点击“下一步”,进入Recovery Operations 界面,可以看到我们添加的要执行的操作类型。如图:

这里去掉Add another recovery operation前边的对钩,点击“下一步”,进入Post-Recovery Test Run Operation页面,如图:

这里选择“Proceed to next action or component iteration”,这是选择目的是:当出现异常时,执行下一个脚本操作,因为我们还有1个test_help脚本要执行。然后点击“下一步”,进入Name And Description 中我们给本场景命名,然后点击“下一步”,进入Completing the Scenario Recovery Wizard 界面,点击“完成”,返回到Recovery Scenario Manager窗口,我们可以在Scenarios中看到刚才添加的场景Run error recovery01,如图:

点击"close"按钮,系统会提示是否要保存,将场景保存至quality center项目的目录下。
     至此我们的场景设置算是完成了,下来就是要将场景和脚本关联起来。
     我在QTP中打开quality center 中的脚本后,单击QTP工具栏 File-Settings-Recovery,将刚才创建的场景恢复文件添加进去,如图:

Activate recovery scenario选择“On error”,点击“确定”。执行关联完成,保存。
然后我们在quality center中运行测试集,运行结果如图:

我们发现notfound_object01用例执行失败了,但是不影响help_test 用例的执行,help_test 用例运行成功。如果过你不用场景恢复,你看看什么结果,呵呵!


TAG:

 

评分:0

我来说两句

Open Toolbar