首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QTP如何检测错误?

QTP如何检测错误?
EN

Stack Overflow用户
提问于 2013-10-10 04:47:24
回答 2查看 2.9K关注 0票数 1

假设有一个正在执行的测试脚本,并且发生了一个错误,有人能解释QTP如何检测到它是一个错误吗?基本上,我想知道QTP如何检测到这个错误?也许是一些不断被监控的变量,以检查是否发生了错误。

我查看了Err.Number,但是在错误发生后对其进行了修改。QTP是如何知道Err.Number被修改的?

我只想批量运行测试脚本,当测试脚本失败时,我希望将错误描述和测试脚本名称写入文件,跳过当前的测试并执行下一个测试脚本。有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2013-10-10 16:36:50

由于我实际上是在说“编写您自己的测试执行引擎”,这对您可能用处有限,但它是完全可以实现的。只要从小开始,一点一点地构建功能,你就会有一些很酷的东西来满足你自己的独特需求。

虽然快速调用停止测试的错误可能是有用的(也许可以在不查看详细步骤的情况下进行快速故障诊断),但请不要忽略包含详细步骤的报告。当测试失败时,您需要知道哪里出了问题和原因,并记录了导致失败的操作。

然而,要满足您的要求,有一种方法:

  1. 使用您选择的支持语言使用QTP API编写测试驱动程序,并为每个测试在QTP中触发单独的运行。在调用RunResultsOptions Test.Run时,可以使用结构控制结果保存的位置。在您的测试中,只需将“在运行会话期间发生错误时”保留为“弹出消息框”,以便在发生错误时停止。如果您想要不同的行为,然后用"on / on error goto 0/ check Err.Number and Err.Description"-blocks逐案处理。永远不要把它切换到“下一步”。
  2. 运行完成后,检查由LastRunResults返回的Test.LastRunResults结构。LastRunResults.Status将告诉您运行的状态,因此让您决定是否继续执行步骤3来提取故障详细信息。
  3. 每次运行后,从结果文件夹解析results.xml。它将位于{results文件夹}\Report\results.xml。扫描XML中的所有失败步骤或仅仅是最后一个失败步骤是很简单的,因此您可以获取步骤详细信息并以您选择的格式将它们保存到另一个文件中。您将寻找带有属性NodeArgs元素的eType=User。然后,您可以找到步骤的状态和附近的步骤详细信息。如果除了QTP自动生成的日志记录之外,您还需要更多关于错误的信息,那么您需要在错误发生时捕获错误,并添加一些包含更多显着信息的Reporter.ReportEvent语句。
  4. 用你的结果摘要文件做点有趣的事..。

如果您希望使用QTP本身作为一批测试的驱动程序(即只按一次并运行所有测试),并因此捕获来自子测试或其他什么的错误消息,那么我只想说:除非您只是运行同一测试的多个迭代,否则不要这样做。使用QTP本身来运行您的所有测试在一个史诗式测试运行中是一个糟糕的方法来做事情有多种原因,但我不打算在这里写一篇文章!

票数 3
EN

Stack Overflow用户

发布于 2013-10-10 10:04:53

QTP报告在下列情况之一下测试执行失败

  • 不能标识应该执行操作的对象。
  • 在执行操作时,操作失败(例如,非法值)
  • 检查点失败,这意味着测试创建者指定了应用程序应该具有的状态,并且它实际上具有不同的值。
  • 测试显式地将错误写入日志(使用 object)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19287267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档