testing - 如何确定浏览器是否已从 HP UFT 12 挂起

标签 testing vbscript automation qtp hp-uft

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

示例:所以我有这个测试脚本。它检查对象并在浏览器窗口上做一些工作。麻烦的是,如果浏览器上的某个项目不存在,它可能不是完全失败,只是无法执行该项目的操作。所以简单地检查对象是否存在不是答案,除了简单地检查对象是否存在并不能保证它可能存在但被隐藏或移出屏幕。 (任何在 QTP/UFT 中编写过一段时间代码的人都知道)

想象一下我正在运行这个测试。在执行测试时,我控制了它正在驱动的浏览器并输入 URL:www.crashie8.com,这会立即使浏览器崩溃,模拟挂起。现在是事情变得有趣的时候了。

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

我可以在每个函数/测试脚本的开头添加“On Error Resume Next”行,但这会立即挂起 UFT,然后一切都挂起,这只是我桌面上的一个大 ole-traffic 堆积!

执行诸如“On Error ExitAction”或“On Error ExitTest”或“On Error ExitActionIteration”或“On Error ExitGlobalIteration”之类的任何操作都会产生编译时错误“无效语法”

也许我遗漏了一些我在检查点或恢复场景中不知道或不了解的功能?

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

不能完全工作。虽然“停止运行”选项确实会停止运行,但即使对象被错误识别,它也会停止运行,但是,当发生这样一个简单的错误时,脚本应该能够继续。所以将选项设置为“Continue with next step”会解决继续出现小错误的问题,但浏览器挂起时仍然会挂起UFT/QTP。选项“继续下一个操作迭代”也有同样的问题。所以似乎没有中间立场,也没有任何代码可以解决这个问题。

我想目前唯一可能的解决方案是“停止运行”选项,尽管它会一直踢出去很烦人,而且根本无法以任何方式继续,其他所有继续选项同样失败,并且没有编码解决方案。因为 On Error ExitAction 甚至不让你保存,这要归功于一个甚至不应该是错误的语法错误?!任何人开发的任何其他选项?

编辑:我想“停止运行”也不是每次都有效。必须有更好的解决方案!有人吗?

发现 UFT/QTP 崩溃的可能原因是因为 IE 插件。但不能禁用 IE 插件,因为没有它,UFT/QTP 将无法针对 IE 进行测试。所以我们又一次陷入困境!说真的,惠普没有人考虑过这个问题吗?!

最佳答案

解决方案:进入脚本设置->运行并设置选项:“运行 session 期间发生错误时:停止运行”。运行结果将显示错误,表明识别浏览器失败。如果 iexplorer.exe 进程树被终止,则 UFT 将恢复。因此,这是唯一的解决方案,虽然不是一个很好的解决方案,但它实际上更像是一种解决方案,而不是真正的解决方案。

“上面的选项是当UFT提示一些错误但在崩溃时它没有提示任何错误”

关于testing - 如何确定浏览器是否已从 HP UFT 12 挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23634556/

相关文章:

pandas - 如何使长文本适合text_frame? Python-pptx

java - 在单元测试中反射(reflection)以检查代码覆盖率

testing - 使用 Selenium,xpath 找不到 'text' 元素

asp.net - 如何测试支持多个域的 Multi-Tenancy 应用程序

javascript - 克服旧网站的多浏览器支持问题的最佳方法是什么

javascript - 转换任意字符串以在 JavaScript 中使用的函数

deployment - 以编程方式提升用户权限

java - 如何使用 Junit 在 Java 中测试打印方法

java - 在多台计算机上运行 Sikuli 脚本

linux - 让 bash 脚本回答交互式提示