2011-09-14 87 views
5

我正在尝试在使用TestComplete的ESXi虚拟机中设置自动GUI测试。据我所知,这个问题是,当没有远程桌面连接到ESXi虚拟机时,TestComplete无法执行屏幕截图并因此自动进行GUI测试。据我了解,这是由于Windows在没有人查看时不会生成任何用户界面。如何在远程无头ESXi虚拟机上运行自动GUI测试?

我相信其他人都会遇到这个问题。你是如何解决它的?您是否使用第三方计算机在运行测试之前自动启动远程桌面连接?

是否有可能从无头虚拟机启动远程桌面到另一虚拟机来伪造某人查看?

我还没有想过的其他更智能的解决方案?

回答

6

您应该能够登录到Windows使用vSphere客户端,然后关闭的vSphere虚拟机的控制台上,而Windows仍然会认为用户正在查看控制台。就那么简单。 :)

因此,不应该需要涉及远程桌面的混合。

只要你的测试以登录的Windows用户身份运行,你应该没问题。

对于某些依赖于交互式桌面的Watir,Selenium和MS UI自动化测试,此技术对我来说一直很有用。

如果您需要在测试之前/期间自动重新启动虚拟机,而不是在vSphere Client中手动登录,则可以让Windows以任意用户身份自动登录 - 检查“control userpasswords2”命令,或者可以使用Sysinternals的应用“自动登录”:

http://technet.microsoft.com/en-us/sysinternals/bb963905

用这种方法唯一的缺点是,你需要能够推出你的测试,而不是在虚拟机上查看控制台,但它听起来就像你已经照顾到了吗?

如果您需要远程启动测试的解决方案,我强烈建议使用Jenkins或Hudson启动测试/从VM收集结果。詹金斯在这方面改变了我的生活。

+0

这些都是很棒的提示,它看起来会完全解决我的问题。谢谢! – jonjbar

1

您可以考虑使用TestComplete的网络功能套房: http://smartbear.com/support/viewarticle/16849/

它可以在自家的远程PC,控制测试打开远程桌面连接,并将日志拉回到“主”项目。此功能旨在用于分布式测试,看起来就像您需要的一样。至于将RDP开放给无头虚拟机,它不应该成为一个问题 - Windows需要“思考”这个问题。您只需打开RDP,即使没有连接到远程PC/VM的显示器,它也可以工作。

我希望这有助于 亚历

+0

虽然比尔的回答对我的需求会更容易/更便宜,但这有帮助。谢谢。 – jonjbar

0

断开浏览器时,您始终可以使用VNC检查“无所事事”选项。这样你会欺骗窗口来生成图像。

相关问题