有没有类似于Windows的xvfb或xnest的东西?

22

在驱动GUI的端到端测试项目中,由于GUI自动化驱动程序会干扰桌面,因此在开发人员的工作站上运行测试很麻烦。它会移动鼠标,从我们想使用的应用程序中夺取焦点,并且在测试运行期间切换到另一个应用程序时可能会开始在错误的应用程序中输入文本。

在Linux上,我们通过在虚拟X服务器(xvfb或xnest)上运行被测试的应用程序来解决此问题。 使用xnest,我们可以观看测试运行但仍然在不受干扰的情况下使用真实桌面。

Windows是否有类似的解决方案?

3个回答

8

您可以使用SysInternals软件包中的“桌面”应用程序。在一个桌面上运行UI测试,同时在另一个桌面上工作。


很遗憾,我不认为那会起作用。我的想法是从我的主桌面上运行的IDE中生成一个进程,并使该进程的窗口出现在一个离屏幕的桌面上。这似乎并不是“桌面”工作的方式。 - Nat
1
我曾经遇到过同样的问题,这个解决方案对我很有效。你可以直接从“隐藏”的桌面中启动进程并让它在那里工作,然后切换回主桌面,感谢Yauheni Sivukha提供的这个解决方案。 - sam
这真的解决了原始问题吗?其中一个问题是自动化驱动程序移动鼠标吗?那么不同桌面上必须有单独的鼠标指针/输入。 - Zitrax
这对于视觉需求很好。 但它没有单独的声源,所有声音都混合在一起同时播放! - Max Base

7
我发现了一个名为“RunProcess.exe”的免费软件程序,由Frank P. Westlake编写,可以运行绑定到非交互式(例如屏幕外)WindowStation的进程。然而,没有源代码。
因此,我使用Java和JNA实现了自己的版本(比Frank Westlake的更简单)。它在Window Licker存储库的工具模块中。该类名为com.objogate.wl.win32.RunOnDesktop。在某些时候,我可能会将其移植到C并将其变成普通的命令行.exe文件,或者将其转换为用于在屏幕外运行测试的Ant任务。

有人用过这个运气好吗? - Vasanth Nag K V
我正在尝试找到相同问题的解决方案。有其他人尝试过吗? - DamianS1987
@Nat,如何解决在屏幕外操作时的键盘和鼠标问题呢? - gumuruh
1
窗口小部件的链接已经失效。 - Hristo Vrigazov

-1

我刚刚在我的Windows 10机器上尝试了多个桌面的方法。我正在运行Selenium Javascript测试。我在另一个桌面上启动了测试,并等待它打开浏览器,然后切换回到我的主桌面。但是在Chrome浏览器成为活动窗口的同一时刻,现在它实际上强制我返回到那个桌面 :-(

我想我会尝试RunProcess.exe或Nat的解决方案。


2
我刚刚尝试了Sysinternals Desktops工具https://technet.microsoft.com/en-us/sysinternals/cc817881.aspx,它对我来说运行得很好。 当我在另一个桌面上启动测试时,与我的原始桌面没有交互 :) - LeeD

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接