Vbscript HP UFT(统一功能测试):结果视图:是否有方法捕获失败脚本的行、行号?

Vbscript HP UFT(统一功能测试):结果视图:是否有方法捕获失败脚本的行、行号?,vbscript,report,qtp,hp-uft,Vbscript,Report,Qtp,Hp Uft,我通常在通过或失败时报告事件,如: Reporter.ReportEvent micPass," Title of the passed Event", " Description of Passed Event" 及 在活动的标题或描述中硬编码行号是个好主意吗 Reporter.ReportEvent micFail," Test Failed at Line 432 ", " Please check line 432 " 回答问题的第二部分,硬编码不是一个好主意。如果您对行号进行硬编码

我通常在通过或失败时报告事件,如:

Reporter.ReportEvent micPass," Title of the passed Event", " Description of Passed Event"

在活动的标题或描述中硬编码行号是个好主意吗

Reporter.ReportEvent micFail," Test Failed at Line 432 ", " Please check line 432 "

回答问题的第二部分,硬编码不是一个好主意。如果您对行号进行硬编码,并且将来会在该行号上方的代码中添加几行,则整点硬编码将无效,因为报告现在将包含不正确的行号(硬编码)

对于第一部分,我可以理解你为什么要报告行号。但我不认为有任何“预定义”的方式来做这件事

但是,您可以使用自己的函数来获取行号。以下是您可以实施的一个想法:

  • 转到存储QTP测试的位置。获取文件script.mts的完整路径(您可以在Action1文件夹中找到它)。此外,如果您有良好的框架和适当的文件夹结构,则可以动态构建此路径

  • 获取路径后,您可以在只读模式下将该文件(script.mts)作为文本流(使用filesystemobject)打开。

  • 现在,您可以逐行遍历文件,搜索文本“Reporter.ReportEvent micPass”、“传递事件的标题”、“传递事件的描述”。找到行号后,可以很容易地从函数中获取行号并返回,以将其存储在某个变量中,以便在报告时使用


我自己没有尝试过这种方法,但如果我真的需要,我肯定会尝试一下。

回答你问题的第二部分,硬编码不是一个好主意。如果您对行号进行硬编码,并且将来会在该行号上方的代码中添加几行,则整点硬编码将无效,因为报告现在将包含不正确的行号(硬编码)

对于第一部分,我可以理解你为什么要报告行号。但我不认为有任何“预定义”的方式来做这件事

但是,您可以使用自己的函数来获取行号。以下是您可以实施的一个想法:

  • 转到存储QTP测试的位置。获取文件script.mts的完整路径(您可以在Action1文件夹中找到它)。此外,如果您有良好的框架和适当的文件夹结构,则可以动态构建此路径

  • 获取路径后,您可以在只读模式下将该文件(script.mts)作为文本流(使用filesystemobject)打开。

  • 现在,您可以逐行遍历文件,搜索文本“Reporter.ReportEvent micPass”、“传递事件的标题”、“传递事件的描述”。找到行号后,可以很容易地从函数中获取行号并返回,以将其存储在某个变量中,以便在报告时使用


我自己没有尝试过这种方法,但如果我真的需要,我肯定会尝试一下。

从最终用户的角度来看,硬编码不是一个好主意。如果它是一个回归套件,它可以被不知道如何调试代码或分析的测试人员使用。要通过报告(micPass/micFail)获得失败的根本原因,您可以进一步优化脚本

从最终用户的角度来看,硬编码不是一个好主意。如果它是一个回归套件,它可以被不知道如何调试代码或分析的测试人员使用。要通过报告(micPass/micFail)获得失败的根本原因,您可以进一步完善脚本

硬编码部分至少给出了错误发生的一些提示。我想我没有一个很好的框架。你的想法很好,我现在必须从ALM保存我的脚本…现在看来这似乎是个好主意。但是稍后当代码被维护/添加/删除时,您将不得不再次努力更新脚本中和所有脚本中的硬编码行号。只是我的意见。是的,看起来是这样的,但是如果它们与行号不匹配,它们可以充当CTRL+F的Id。我将研究更多的可能性。非常感谢你!基拉?您知道从QC下载脚本的好脚本吗?:)硬编码部分至少给出了错误发生的一些提示。我想我没有一个很好的框架。你的想法很好,我现在必须从ALM保存我的脚本…现在看来这似乎是个好主意。但是稍后当代码被维护/添加/删除时,您将不得不再次努力更新脚本中和所有脚本中的硬编码行号。只是我的意见。是的,看起来是这样的,但是如果它们与行号不匹配,它们可以充当CTRL+F的Id。我将研究更多的可能性。非常感谢你!基拉?您知道从QC下载脚本的好脚本吗?:)
Reporter.ReportEvent micFail," Test Failed at Line 432 ", " Please check line 432 "