我正在HP UFT 12中编写一系列测试集自动化套件。问题是我们需要知道何时/是否挂起了浏览器,以防止UFT也挂起或抛出错误消息并等待用户响应。问题在于,如果运行测试,那么直到早晨,没有人能够响应它。我们希望记录该错误,并在可能的情况下继续进行下一个测试迭代。问题在于似乎无法检测到浏览器是否已挂起。

示例:所以我有这个测试脚本。它检查对象并在浏览器窗口上进行某些工作。问题在于,如果浏览器上的某个项目不存在,则可能并非完全失败,只是无法对该项目执行操作。因此,简单地检查对象是否存在并不是解决问题的方法,除了简单地检查对象是否存在并不能保证其可能存在而是被隐藏或移出屏幕。 (对于一直使用QTP / UFT编写代码的任何人都会知道)

因此,想象一下我正在运行此测试。在执行测试的过程中,我控制了正在运行的浏览器,并输入URL:www.crashie8.com,该URL立即崩溃,从而模拟了挂起的浏览器。现在是事情变得有趣的时候了。

QTP / UFT应该能够处理这个问题。如果我保留代码不变,那么UFT最终将抛出错误消息,如上所述,该消息对我没有帮助。

我可以在每个函数/测试脚本的开头添加“ On Error Resume Next”行,但是这会立即挂起UFT,然后所有内容都被挂起,这只是我桌面上的一大麻烦!

诸如执行“ On Error ExitAction”或“ On Error ExitTest”或“ On Error ExitActionIteration”或“ On Error ExitGlobalIteration”之类的操作均会导致编译时错误“无效语法”

也许我缺少一些我在Check Point或Recovery Scenerios中不了解或不了解的功能?

编辑:解决方案:进入“脚本设置”->“运行”并设置选项:“在运行会话中发生错误时:停止运行”。运行结果将显示错误,指示识别浏览器失败。

无法充分发挥作用。尽管选项“停止运行”确实会停止运行,但即使对象被错误标识,它也会停止运行,但是,当发生这种简单错误时,脚本应该能够继续运行。因此,将选项设置为“继续下一步”将解决继续出现小错误的问题,但在浏览器挂起时仍会挂起UFT / QTP。此外,选项“继续进行下一个动作迭代”具有相同的问题。因此,似乎没有中间立场,也似乎没有任何代码可以解决此问题。

我想目前唯一可能的解决方案是选项“停止运行”,尽管它很烦人,它会一路踢出去,根本无法继续进行下去,所有其他继续选项同样会失败,并且没有编码解决方案。因为出现错误,ExitAction甚至不让您保存,因为语法错误根本不应该是错误?有人开发了其他选择吗?

编辑:我猜“停止运行”甚至都不每次都起作用。必须有一个更好的解决方案!有人吗

弄清楚UFT / QTP崩溃的可能原因是IE插件引起的。但是不能禁用IE插件,因为没有它,UFT / QTP将无法针对IE进行测试。因此,我们再次陷入困境!认真地说,惠普公司的所有人都没有考虑过这些东西吗?

最佳答案

解决方案:进入“脚本设置”->“运行”并设置选项:“在运行会话中发生错误时:停止运行”。运行结果将显示错误,指示识别浏览器失败。如果iexplorer.exe进程树被杀死,则UFT将恢复。因此,这是唯一的解决方案,尽管它不是一个很好的解决方案,但实际上是真正的解决方案。

“以上选项是当UFT提示某些错误,但在崩溃时它不提示任何错误”

08-07 12:24