0

我正在运行 编码 使用从VSTS中构建的Selenium进行的UI测试。 测试库建立在测试代理(托管和专用可用)上,并复制到运行Windows 10的虚拟机上。然后将测试代理部署到虚拟机,并执行任务“运行功能测试”。要执行的测试通过VSTS的测试管理器中的关联进行选择。为编码的UI测试指定屏幕分辨率

我想在不同的屏幕分辨率下运行这些UI测试(在Chrome中),但是当执行测试代理时,无头会话始终以默认分辨率1024x768运行。我需要运行高达4k分辨率的测试。如果在较高分辨率下使用相同的凭证进行当前会话,则会话将被“劫持”并且测试将以所需的分辨率运行。 但是我无法保证现有的会话,当这些构建是由时间表或其他事件触发的。 我已经遵循MSDN article如何在注册表中指定默认分辨率,但这不适用于Win10和Srv2012。

在测试/运行设置文件中是否存在指定此无头会话分辨率的参数/设置? 为了避免混淆:我知道如何设置浏览器的窗口大小,但限于最大屏幕分辨率,因此调整浏览器大小的Selenium特定命令并不能解决问题;)

任何提示表示赞赏!谢谢!

+1

您正在运行Coded UI测试,还是正在运行Selenium测试?他们是做同样事情的不同工具。 –

+0

道歉。我的印象是,编码的UI测试是一种通用的表达方式,因为使用代码来描述UI测试。 所以澄清:我使用硒。 谢谢,丹尼尔,指出了。 – Nessi

+0

恐怕你不能改变分辨率,除非保持会话,一个相关的线程:[提高测试代理上的屏幕分辨率](https://stackoverflow.com/questions/45829787/increase-the-screen-resolution-测试代理) –

回答

0

如果您不是被迫使用Windows环境,基于docker的方法可能是您的使用案例的可能解决方案。例如,您可以看看我们的“docker-headless-vnc-container”https://github.com/ConSol/docker-headless-vnc-container。在那里你有一个优点,就是洞UI被封装在一个单独的容器环境中,与主机系统无关。在那里你可以运行一个真正的桌面UI和浏览器,或者像你的例子一样使用Selenium测试。在容器运行期间,您可以通过VNC查看容器。

您找到一个例子如何使用Selenium这里设置它:https://github.com/ConSol/sakuli-examples/blob/master/java-selenium-example/Dockerfile

要更改VNC的解决方案,以一个固定的值,你可以在下面一行 添加到您的具体Dockerfile:

ENV VNC_RESOLUTION=4096x2160 

要测试你的目标环境如何看起来像你可以运行

docker run -it -p 6901:6901 -p 5901:5901 --env VNC_RESOLUTION=4096x2160 consol/ubuntu-xfce-vnc 

并通过URL连接:http://localhost:6901/?password=vncpassword

+0

最后,这听起来像是一个评估的途径,但为此我需要为.net core创建测试,否则它不会在Ubuntu容器中运行。为了将当前的.NET Framework 4.5.1解决方案转移到核心,需要由微软开发更多的东西(例如一个适当的TestContext实现)。 – Nessi

+0

好吧,我对.NET不太熟悉,所以要确保你的构建/测试必须在Linux上运行: - / – toschneck