在QTP UFT中打印VBScript变量

在QTP UFT中打印VBScript变量,vbscript,hp-uft,Vbscript,Hp Uft,使用QTP UFT时,如何在运行时检查变量的值? 我只想创建一个变量,执行逻辑并用数据填充它,在变量后面的行中设置一个断点,然后在某处检查或输出它的值 我试过: print variableName WScript.Echo variableName 第一个产生错误:打印函数类型不匹配 第二个生成错误:所需对象:WScript 我不确定问题出在哪里,因为我刚刚开始了解UFT和VBScript,主要是C和javascript,这里的一切都非常不同。有没有人能告诉我正确的解决方案,也许还可以向我解

使用QTP UFT时,如何在运行时检查变量的值? 我只想创建一个变量,执行逻辑并用数据填充它,在变量后面的行中设置一个断点,然后在某处检查或输出它的值

我试过:

print variableName
WScript.Echo variableName
第一个产生错误:打印函数类型不匹配 第二个生成错误:所需对象:WScript


我不确定问题出在哪里,因为我刚刚开始了解UFT和VBScript,主要是C和javascript,这里的一切都非常不同。有没有人能告诉我正确的解决方案,也许还可以向我解释这些错误?

如果您想查看所有变量,请使用QTP中的调试查看器

查看->调试查看器

在那里你可以列出所有你想看的变量。您应该能够在断点处看到它们


注意:确保已安装Windows脚本调试器以使用调试查看器。

如果要查看所有变量,请使用QTP中的调试查看器

查看->调试查看器

在那里你可以列出所有你想看的变量。您应该能够在断点处看到它们


注意:确保已安装Windows脚本调试器以使用调试查看器。

您还可以添加要监视的变量。。插入断点>>启动脚本,然后右键单击测试变量并将其添加到watchAdd to Watch。添加后,您将看到一个监视窗口,并显示变量的值

您还可以添加要监视的变量。。插入断点>>启动脚本,然后右键单击测试变量并将其添加到watchAdd to Watch。添加后,您将看到一个监视窗口,并显示变量的值

我对我的变量着迷。。。如此之多以至于我在我的代码中加入了打印语句。。。事实上,我将打印抽象到自己的UDF中,以便在需要时可以选择将日志添加到文件中

这是我的函数:它实际上是一个子函数,因为它不返回任何东西

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语句给出了一个错误,print实际上在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语句——我可以在代码执行过程中立即看到这一点,而不必等到最后显示结果。

我对变量非常着迷。。。如此之多以至于我在我的代码中加入了打印语句。。。事实上,我将打印抽象到自己的UDF中,以便在需要时可以选择将日志添加到文件中

这是我的函数:它实际上是一个子函数,因为它不返回任何东西

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语句给出了一个错误,print实际上在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语句——我可以在代码执行期间立即看到它,而不必等到最后显示结果。

Hmm我想在这种情况下就足够了,但是如果我想打印多个变量呢?我会收到每个变量的弹出窗口。很遗憾,这对我来说还不够。只是编辑了答案。我以为你想要一个与print相同的版本——VBScript的版本是msgbox。好的,谢谢,这给了我很多启示:我可以通过控制台操纵变量,然后检查手表上发生的事情,非常方便。但是,对象仅作为其值输出。您是否还知道如何检查对象的有效属性/方法从一个快速搜索得到这个,嗯,我想在这种情况下就足够了,但是如果我想打印多个变量呢?我会收到每个变量的弹出窗口。很遗憾,这对我来说还不够。只是编辑了答案。我以为你想要一个与print相同的版本——VBScript的版本是msgbox。好的,谢谢,这给了我很多启示:我可以通过控制台操纵变量,然后检查手表上发生的事情,非常方便。但是,对象仅作为其值输出。你可能也知道如何使用c语言吗
是否检查对象的有效属性/方法?:从快速搜索中获得此信息谢谢,这是一个好主意和好解决方案!我的打印导致错误的原因可能是因为我打印了一个对象而不是字符串/int。谢谢,这是一个好主意,也是一个很好的解决方案!我打印出错误的原因可能是因为我打印了一个对象而不是字符串/int。