我正在 HP UFT 12 中编写一系列测试集自动化套件。问题是我们需要知道浏览器何时/是否挂起,以防止 UFT 也挂起或抛出错误消息并等待用户响应。问题是,如果测试运行,那么直到早上没有人能够响应它。如果可能,我们希望记录错误并继续下一次测试迭代。问题是似乎无法检测浏览器是否已挂起。
示例:所以我有这个测试脚本。它检查对象并在浏览器窗口上做一些工作。问题是,如果浏览器上的某个项目不存在,它可能不会完全失败,只是无法执行该项目的操作。因此,简单地检查对象是否存在并不是答案,而且除了简单地检查对象是否存在之外,并不能保证它可能存在但被隐藏或移出屏幕。(任何在 QTP/UFT 中写代码的人都会知道)
所以想象一下我正在运行这个测试。在执行测试时,我控制它正在驱动的浏览器并输入 URL:www.crashie8.com,它会立即使浏览器崩溃,模拟挂起。现在是事情变得有趣的时候了。
QTP/UFT 应该能够处理这个问题。如果我保持代码不变,UFT 最终会抛出一条错误消息,如上所述,这对我没有帮助。
我可以在每个函数/测试脚本的开头添加“On Error Resume Next”行,但这会立即挂起 UFT,然后一切都挂起,这只是我桌面上的一大堆流量!
执行诸如“On Error ExitAction”或“On Error ExitTest”或“On Error ExitActionIteration”或“On Error ExitGlobalIteration”之类的任何事情都会产生编译时错误“无效语法”
也许我错过了一些我在检查点或恢复场景中不知道或不了解的功能?
编辑:解决方案:进入脚本设置-> 运行并设置选项:“运行会话期间发生错误时:停止运行”。运行结果将显示错误,表明识别浏览器失败。
不能完全工作。虽然“停止运行”选项确实会停止运行,但即使对象被错误识别,它也会停止运行,但是,当发生这样一个简单的错误时,脚本应该能够继续。因此将选项设置为“继续下一步”将解决继续出现小错误的问题,但在浏览器挂起时仍会挂起 UFT/QTP。选项“继续下一个动作迭代”也有同样的问题。所以似乎没有中间立场,也没有任何代码可以解决这个问题。
我想目前唯一可能的解决方案是“停止运行”选项,尽管它会一直踢出去并且根本无法以任何方式继续,并且所有其他继续选项同样失败,这很烦人,并且没有编码解决方案。因为 On Error ExitAction 甚至不让你保存由于语法错误甚至不应该是一个错误?!任何人开发的任何其他选择?
编辑:我猜“停止运行”甚至每次都不起作用。必须有更好的解决方案!有人吗?
发现 UFT/QTP 崩溃的可能原因是 IE 插件。但不能禁用 IE 插件,因为没有它,UFT/QTP 将无法针对 IE 进行测试。所以我们又一次陷入了困境!说真的,惠普没有人考虑过这些东西吗?!