6

我有一个安装了 Mercury Quick Test Professional 9.2 的虚拟机 (VMware)。我有一个脚本来测试应用程序,使用 Infragistics 库在 VB.NET 中编写。

如果我使用笔记本电脑(使用远程桌面)访问此虚拟机,一切正常,脚本完成没有问题。我的笔记本电脑运行 XP,带有 Windows 经典主题。

如果我使用另一台机器(使用远程桌面)访问此虚拟机,脚本启动正常,但中途停止,没有来自 QTP 的错误消息,什么都没有。本机运行 XP,带有 Windows Classic 主题。

两种设置之间的一个区别是屏幕尺寸,笔记本电脑为 1920x1280,其他机器为 1280x1024。

脚本停止的步骤涉及检查 UltraWinGrid 中的复选框。复选框本身会显示,在两种情况下都在屏幕上。

以前有没有人遇到过这个问题,或者知道为什么两台机器的行为不同?

谢谢。

4

5 回答 5

5

好的。我发现了问题。事实上,脚本在默默地失败了,因为这是编写脚本的人告诉它要做的。它无法验证屏幕外的内容,因此脚本失败。

问题在于 QTP 对“屏幕外”的定义。我的笔记本电脑上有两个屏幕,笔记本电脑本身的屏幕(1920x1200)和另一个屏幕(1280x1024)。我使用远程桌面连接到 QTP 的 VM,它使用笔记本电脑的屏幕设置。这意味着当我启动我的 QTP 脚本并将其移动到另一个屏幕时,它不适合,因此屏幕不再最大化,并且对象部分不在屏幕上,因此无法找到。

修复很简单:在远程桌面中,使用显示选项卡,将屏幕尺寸设置为 1280x1024,QTP 就没有任何问题了。

瞧。

于 2008-10-15T14:29:38.193 回答
1

如果您没有使用专家模式,和/或允许 QTP 完成大部分工作来创建您的存储库对象,那么是的,它是按像素引用所有内容。

我手动创建了所有存储库对象,查看源代码(在自动化 Web 应用程序测试的情况下)并在需要时使用 Object Spy 寻求帮助。我指出没有任何定位信息作为我的对象定义的一部分,这正是您遇到的原因。

对于我的 Web 应用程序中与 Windows 交互的部分(打开要上传的文件等),Object Spy 对于创建用于创建存储库对象的唯一标识符所必需的反复试验至关重要。但这是可以完成的。

Ex1: File Browse Dialog
text = "Choose file"
nativeclass = #32770(显然是一些用于文件打开对话框的 Windows VooDoo?)

Ex2:浏览对话框中的文件名文本框:
nativeclass =“编辑”
附加文本“文件和名称:”(更多Windows VooDoo?没有“&”对我不起作用)

Ex3:在对话框中打开按钮:
text = "&Open"
object class = "Button"

祝你好运!

于 2008-09-18T21:44:02.320 回答
1

澄清点:您提到 QTP 停止时没有错误消息。这是否也意味着测试结果日志文件也没有错误消息?如果日志有任何信息,这可能有助于诊断问题。您能否分享脚本失败时的代码行?

此外,远程桌面将调整远程计算机上的桌面大小。尽管 QTP 脚本本身不是基于坐标的,但单个语句可以相对于对象基于坐标。在这方面,该决议可能是一个问题。例如,假设您在更高分辨率的机器上记录了 Button.Click(5, 150) 之类的行。但是,如果您尝试在较低分辨率的机器上播放它,并且 150 超出了较低分辨率的对象范围,则可能会导致问题。

于 2008-09-25T18:44:14.163 回答
0

QTP 不使用屏幕坐标,除非作为最后的手段,如果对象被识别为高级对象(SwfTable在这种情况下)你应该没问题,但是如果 QTP 不能识别它回退到的对象WinObject和屏幕坐标。

如果您使用的是 Infragistics,那么您应该知道他们通过他们的TestAdvantage产品扩展了 QTP 的支持,这可能会解决您的问题。


编辑: @MatthieuF

其实我们使用QTP的Infragistics插件,还是有问题

你能给我一个失败的例子吗?

于 2008-09-24T06:47:03.680 回答
0

一些东西:

您应该能够轻松地在 VM 上进行调试 - 只需等待它停止,进入您的对象存储库,看看它是否可以识别对象。如果不是,则使用 object spy 来找出操作系统之间的哪些属性不同。如果存在差异,那么您始终可以将该属性设置为正则表达式并让它检查两种可能性。

假设这不是我们在远程窗口关闭或最小化时使用 QTP 使用远程桌面时遇到的问题。对我们来说,这是一个在 RDP 窗口不可见时无法更改剪贴板的问题,但以这种方式使用 QTP 可能会出现其他意外情况。

于 2008-09-24T18:15:58.000 回答