51Testing软件测试论坛

标题: 有没有方法使action出错时自动重新运行action [打印本页]

作者: zero0223    时间: 2009-9-18 14:29
标题: 有没有方法使action出错时自动重新运行action
RT
作者: zero0223    时间: 2009-9-18 14:33
设置里只有这四个选项
错误弹出框、停止运行、继续下一步语句、继续下一次action循环
作者: 羊肉泡馍    时间: 2009-9-18 17:00
楼主,这是不可能的事情。如果几万个action,一次都出错,如何处理?出错类别如何定义?够你费脑筋的。。。实际上,根本不需要啊
作者: ls_721521    时间: 2009-9-18 18:26
几万个action...
哪能有那么多。。。

另外楼主应该考虑当报告为错误时重新执行。
作者: zero0223    时间: 2009-9-19 08:43
3L的,我只需要出错的action重新执行,不知道你是如何理解出几万个来的
作者: chooseyou123    时间: 2009-9-19 12:26
出现QTP内部错误时,如:找不到对象。可以跳过直接运行以下步骤的方法:
在file->settings->run 中 When error occurs during run session 设置为procced to next step
或者使用全局错误处理机制:代码中加上 on error resume next
至于重新运行的话,目前我不知道有这个设置,
你可以用脚本实现,
If onerror  Then
  msgbox "aa"
        Call Rerun()
End If


Function Rerun()
        projectPath = Environment("TestDir") & "PracticeError"
       
        Dim qtApp
        Dim qtTest
        Dim qtResultsOpt
       
        Set qtApp = CreateObject("QuickTest.Application")
        qtApp.Launch
        qtApp.Visible = True
        qtApp.Open projectPath, TRUE, TRUE
        Set qtTest = qtApp.Test
       
                Set qtResultsOpt = CreateObject("QuickTest.RunResultsOptions")
                qtResultsOpt.ResultsLocation = projectPath&"\result"
                qtTest.Run qtResultsOpt, True   
End Function
作者: chooseyou123    时间: 2009-9-19 13:30
上面那个好像不行,我随便调试了下,因为QTP是已打开的。

刚想了下,其实我们想复杂了,这个很简单,。不要任何设置
On error resume next
'出错了的语句
If Err<>0  Then
RunAction "Action1",oneIteration  ' 出错后,运行到这一句,就直接又跑到脚本第一行重新执行了。调试通过
End If




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2