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