【问题标题】:Running tests on VM does not work unless window is open除非打开窗口,否则无法在 VM 上运行测试
【发布时间】:2017-11-22 22:16:08
【问题描述】:

我们正在尝试远程进行测试,因此我们设置了一些虚拟机来运行我们的 GUI 测试并释放我们的本地计算机。我们希望的是让测试像在物理机器上一样运行,但是它们似乎需要激活的远程桌面连接才能正常运行。这些测试是使用 LeanFT 编写的,它是一个 Windows 应用程序,所以这不是移动 GUI 测试。

是否有某种方法可以配置此 VM 以正确设置它以进行不需要活动远程桌面连接的自动化 GUI 测试?好像它共享我们物理机上的控件..

或者我在这里完全错了.. 远程机器与虚拟机有什么不同?谢谢!

【问题讨论】:

  • “远程机器”仅表示不是您当前操作系统的计算机。 “虚拟机”是在另一个操作系统中运行的计算机。您可以将远程桌面连接到同一机器上的虚拟机中。
  • 您的远程桌面是否配置为在会话结束时自动注销?如果它注销,那么任何应用程序(包括您的测试)都会终止,只有服务仍在运行。应该有一种方法可以将远程桌面配置为在断开连接时不执行任何操作,或者在断开连接时最多锁定计算机,而不是注销。
  • @MikeNakis,这是真的,但是 - 即使窗口被最小化,我们也会遇到问题,因为找不到元素。虚拟机确实需要显示才能正常工作

标签: automation virtual-machine remote-desktop leanft


【解决方案1】:

可以在没有活动远程桌面连接的情况下运行 GUI 测试

我通过以下两个步骤使用leaft 实现了这一点:

  1. 配置执行测试的方式

无论您是通过 Jenkins 从属还是通过另一种“侦听器”(可能是 ssh 或竹子等)运行,您都需要将此侦听器配置为在特定用户登录后启动。

在我的例子中,我是通过 Jenkins 从站运行的,所以我已将从站的启动配置为在用户登录后立即启动。

  1. 在计算机启动时告诉 windows 登录用户。您可以通过以下注册表来实现:

    Windows Registry Editor Version 5.00
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
    "DefaultDomainName"="DOMAIN"
    "DefaultUserName"="USERNAME"
    "AutoAdminLogon"="1"
    "DefaultPassword"="PASSWORD"
    

【讨论】:

    【解决方案2】:

    核心要求是您需要有一个活动会话(无论您是使用 Jenkins、TeamCity、Grid 还是其他工具来启动测试)。

    对于您的虚拟机,您需要能够访问控制台。对于 VMWare vSphere,有一个本机客户端或网站。对于 VMWare Workstation 或 VirtualBox,这些会自动显示。

    使用控制台访问,登录系统并将其设置为永不注销、休眠或休眠。这是您可以查找的各种操作系统设置。

    基本上,这些框需要始终登录。通过此设置,您需要确保对这些系统的访问受到控制,这样您就不会让随机的人登录/或注销。

    【讨论】:

      猜你喜欢
      • 2021-06-13
      • 2018-12-07
      • 2019-05-28
      • 2013-12-16
      • 1970-01-01
      • 2020-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多