3

使用 TestComplete 8,我们有一个脚本,计划在每天早上 06:00 开始,这行代码:

"C:\Program Files\Automated QA\TestComplete 8\Bin\TestComplete.exe" "C:\Attracs\TestComplete\Attracs\AttracsTEST\AttracsTESTProject.mds" /r /e /SilentMode

问题是这经常失败。日志备注说:调用“TcxCustomInnerTextEdit”对象的“Keys”方法或属性时发生错误。该对象或其父对象之一不存在。

如果我使用远程桌面连接到计算机并手动运行脚本,它就可以正常工作。没有屏幕保护程序处于活动状态,并且电源方案设置为永不休眠。

我注意到 Testcomplete 需要 GUI 句柄(屏幕可见)或脚本出现此类错误。会不会是它在启动时没有对 GUI 组件的句柄,因为它们不可见?

从帮助通过远程桌面运行测试

但是,如果您最小化远程桌面窗口(显示远程计算机桌面的窗口),操作系统会将远程会话切换到无 GUI 模式并且不显示窗口和控件。因此,TestComplete(或 TestExecute)无法与被测应用程序的 GUI 交互,因为在这种情况下 GUI 实际上并不存在并且您的自动化 GUI 测试失败。

为避免此问题,您可以在测试运行期间保持远程桌面窗口可见,但这可能不方便,因为它占据了部分甚至整个屏幕,并且为您运行本地应用程序留下的空间更少。

有什么解决办法吗?

4

3 回答 3

1

有一种方法可以让 Windows 中的控制台连接始终处于活动状态,这允许 TestComplete 在不实际连接 RDP 的情况下工作。

来自:在最小化的远程桌面 Windows 中运行测试

登录到您连接到远程计算机的计算机。

关闭所有打开的远程桌面会话。

启动注册表编辑器 (Regedit.exe)。

如果您有 32 位操作系统:

如果您只想更改当前用户的连接设置,请找到 HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\ 注册表项。

- 或者 -

如果要更改所有用户的连接设置,请找到 HKEY_LOCAL_MACHINE\Software\Microsoft\Terminal Server Client\ 注册表项。

在此项中创建一个新的 DWORD 值并将其命名为 RemoteDesktop_SuppressWhenMinimized。

指定 2 作为值数据。

如果您有 64 位操作系统:

如果您只想更改当前用户的连接设置,请找到 HKEY_CURRENT_USER\Software\Wow6432Node\Microsoft\Terminal Server Client\ 注册表项。

- 或者 -

如果要更改所有用户的连接设置,请找到 HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Terminal Server Client\ 注册表项。

将 RemoteDesktop_SuppressWhenMinimized 值添加到键中。

于 2011-02-23T18:27:41.670 回答
0

我发现这个页面 http://www.automatedqa.com/support/viewarticle/12567/viewarticle.aspx?aid=12567

似乎解决方案可能是在虚拟机中运行 TestComplete。

/罗兰

于 2011-01-29T16:53:40.043 回答
0

要运行任何 UI 测试,UI 需要可用。因此,机器应该被解锁,以便 TestComplete 可以执行用户操作,如鼠标单击、按键等才能工作。

但是,如果您有非 UI 测试,例如运行 Web 服务,那么它会起作用。

于 2013-05-03T16:25:35.677 回答