在 QTP UFT 中打印 VBScript 变量
Printing VBScript variables in QTP UFT
如何在使用 QTP UFT 时检查 运行 时间的变量值?
我只是想创建一个变量,执行逻辑并用数据填充它,在变量后面的行中设置一个断点,然后在某处检查或输出它的值。
我试过:
print variableName
WScript.Echo variableName
第一个产生错误:打印函数类型不匹配
第二个产生错误:需要对象:"WScript"
我不确定问题出在哪里,因为我刚刚开始接触 UFT 和 VBScript(主要是 C# 和 javascript,这里的一切都非常不同)。谁能告诉我正确的解决方案,或许还可以向我解释这些错误?
如果您想查看所有变量,请使用 QTP 中的调试查看器。
查看 -> 调试查看器
在那里你可以列出所有你想观察的变量。您应该能够在断点处看到它们。
注意:确保您已安装 Windows 脚本调试器以使用调试查看器。
您也可以将变量添加到观察..插入断点>>启动脚本然后右键单击被测变量并将其添加到观察(添加到观察)。添加后你会看到一个手表 window 并且会显示变量的值。
我对我的变量很着迷......以至于我在我的代码中加入了 print 语句......实际上,我将 print 抽象到我自己的 UDF 中(这样我可以根据需要选择将日志记录添加到文件中) ...
这是我的函数:(它实际上是一个子函数,因为它 return 什么都没有)
Sub say(textToSay)
If talkative Then 'note that if I set global var "talkative" to false, then the whole log is disabled
print textToSay
End If
End Sub
然后,我的所有代码通常如下所示...
say "click submit button"
Broswer("WebSite").Page("Search").WebButton("Submit").click
say "check for result"
if not Browser("WebSite").Page("Results").Exist then
say "results page didn't appear after exist timeout"
failtest
else
say "successfully found results page"
end if
老实说,我很震惊你的 "print variableName" 语句出错,打印实际上在 VBScript api 中可用,所以它应该工作。
我的所有输出都转到 UFT 中的“输出”窗格。我会用我的右臂找到一种方法来以编程方式清除 运行 之间的输出窗格,但似乎没有人知道该怎么做。
所有这些日志记录的好处是我可以查看我的代码 运行 并查看代码采用的每个分支,并且我可以添加语句来打印我的变量。
下面是一个示例,说明我将如何回答您的问题:
result = browser("WebSite").Page("Results").WebElement("Result").GetROProperty("innertext")
say "result:" & result
if result = "Approved" then
Reporter.ReportEvent micPass, "Check for approved", "Approved!"
else
Reporter.ReportEvent micFail, "Check for approved", "NOT Approved!"
End If
注意那里的 say 语句 - 我将能够在代码执行期间立即看到它,而无需等到最后显示结果。
如何在使用 QTP UFT 时检查 运行 时间的变量值? 我只是想创建一个变量,执行逻辑并用数据填充它,在变量后面的行中设置一个断点,然后在某处检查或输出它的值。
我试过:
print variableName
WScript.Echo variableName
第一个产生错误:打印函数类型不匹配
第二个产生错误:需要对象:"WScript"
我不确定问题出在哪里,因为我刚刚开始接触 UFT 和 VBScript(主要是 C# 和 javascript,这里的一切都非常不同)。谁能告诉我正确的解决方案,或许还可以向我解释这些错误?
如果您想查看所有变量,请使用 QTP 中的调试查看器。
查看 -> 调试查看器
在那里你可以列出所有你想观察的变量。您应该能够在断点处看到它们。
注意:确保您已安装 Windows 脚本调试器以使用调试查看器。
您也可以将变量添加到观察..插入断点>>启动脚本然后右键单击被测变量并将其添加到观察(添加到观察)。添加后你会看到一个手表 window 并且会显示变量的值。
我对我的变量很着迷......以至于我在我的代码中加入了 print 语句......实际上,我将 print 抽象到我自己的 UDF 中(这样我可以根据需要选择将日志记录添加到文件中) ...
这是我的函数:(它实际上是一个子函数,因为它 return 什么都没有)
Sub say(textToSay)
If talkative Then 'note that if I set global var "talkative" to false, then the whole log is disabled
print textToSay
End If
End Sub
然后,我的所有代码通常如下所示...
say "click submit button"
Broswer("WebSite").Page("Search").WebButton("Submit").click
say "check for result"
if not Browser("WebSite").Page("Results").Exist then
say "results page didn't appear after exist timeout"
failtest
else
say "successfully found results page"
end if
老实说,我很震惊你的 "print variableName" 语句出错,打印实际上在 VBScript api 中可用,所以它应该工作。
我的所有输出都转到 UFT 中的“输出”窗格。我会用我的右臂找到一种方法来以编程方式清除 运行 之间的输出窗格,但似乎没有人知道该怎么做。
所有这些日志记录的好处是我可以查看我的代码 运行 并查看代码采用的每个分支,并且我可以添加语句来打印我的变量。
下面是一个示例,说明我将如何回答您的问题:
result = browser("WebSite").Page("Results").WebElement("Result").GetROProperty("innertext")
say "result:" & result
if result = "Approved" then
Reporter.ReportEvent micPass, "Check for approved", "Approved!"
else
Reporter.ReportEvent micFail, "Check for approved", "NOT Approved!"
End If
注意那里的 say 语句 - 我将能够在代码执行期间立即看到它,而无需等到最后显示结果。