为了测试我们的桌面应用程序,我们有一个Master项目,它在不同的VM上运行Slave项目。 我们正在使用TeamCity开始我们的测试。在TestManagement机器(VM)上,我们有一个作为服务运行的构建代理。此Build Agent使用TestExecute启动Master项目。
此项目将RDP连接到不同的VM以运行我们的App的UI测试(Slave项目)。我们正在使用Network Suite并在主机(VM)上运行我们的测试,如下所示:使用Network Suite。
但是我们遇到了用于运行UI测试的屏幕分辨率问题。分辨率太低。 此页面通过RDP运行测试给出了解释:
"在参与分布式测试的远程计算机上运行测试时,TestComplete会创建远程桌面会话并自动在远程计算机上设置主计算机的屏幕分辨率。这样做是为了避免测试运行时可能出现的问题。"
因此TestExecute将使用主计算机的屏幕分辨率。 但是TeamCity Agent作为VM(TestManagement机器)上的服务运行,并且没有屏幕分辨率,因为它是无头机器,而不像真正的用户将RDP连接到此VM并启动Master Project。
我假设TestExecute将使用默认屏幕分辨率(类似于640x480)作为RDP连接的分辨率。但这太低了,不能运行我们的测试,有些对象不在屏幕上,我们有很多问题......
有没有办法更改TestExecute / TestComplete将创建的RDP连接使用的分辨率? 棘手的部分是Master项目是从无头机器上的服务开始的......
感谢您的回答,
卡米尔
答案 0 :(得分:0)
在过去,我们遇到了与您类似的问题,我们无法通过这种方式解决问题。作为解决方案(现在正在为我们工作),我们在测试环境中安装了TightVNC。这使我们忘记了屏幕连接(RDP问题),因为您第一次通过RDP配置屏幕分辨率,然后通过IP访问,登录,您将能够在不打开任何应用程序的情况下启动您想要的任何内容。 也许它不是最好的解决方案,但对于我们的测试环境,我们可以根据需要从Jenkins开始测试,而不会出现屏幕分辨率问题。