2011-07-06 25 views
1

我正在Windows VM中通過Selenium體系結構驅動的Web應用程序測試自動化,通過Windows遠程桌面進行連接。我知道,如果虛擬機窗口打開/顯示(全部很酷)以及窗口關閉(或甚至最小化),Flash/SWF和其他瀏覽器內部元素的行爲會有所不同。這意味着,如果沒有人觀看屏幕,那麼瀏覽器/插件會進行一些優化(我可能會錯誤 - 如果是這樣 - 請糾正我)。如何模擬某人正在「觀看」顯示器?

作爲(工作)解決方法,安裝VNC(在運行測試之前至少登錄一次)會有所幫助。從那時起,沒有人需要「觀看」顯示器。

我認爲(例如)在觀看電影期間取消屏幕保護程序的電影播放器​​會使用相同的功能/系統調用。

問題是,如果有任何特殊的守護進程是爲這些目的而編寫的,所以我不需要通過VNC連接到這些機器,而只需要運行守護進程。

更新:http://www.jddesign.co.uk/products/freeware/freeware_programs.htm - 同時發現此實用程序,檢查它是否會完成這項工作。建議仍然受到歡迎。

更新N2:效用上面並沒有做的工作

回答

0

你體驗什麼是標準的渲染優化:OS會忽略所有的渲染命令如果窗口是不可見的。

我的猜測是,只要沒有人連接,虛擬機工具「最小化」整個桌面以節省內存。

在Unix上,我會編寫一個小腳本,在測試開始時運行VNC查看器。

[編輯]你在找什麼是一種用於VNC連接的/ dev/null設備。

下面是可能工作的解決方案:下載TightVNC Java Viewer(許可證:GPL)的源代碼並刪除所有渲染代碼。

這應該允許你爲你的測試啓動一個無頭VNC客戶端。

+0

是的,這就是我所做的(但沒有腳本) - 我只是在測試機器上運行TightVNC服務器(從某處連接到TightVNC查看器)。我想知道的是一種簡單的軟件,它可以像連接客戶端的VNC服務器一樣「保存」測試機器(但顯然沒有VNC服務器,所以我可以通過Windows遠程桌面連接到它) 。 – BreakPhreak

+0

謝謝,我傾向於認爲你是對的,現在不會潛入java代碼中。接受答案。 – BreakPhreak

+0

話雖如此,有點奇怪的是,該工具不存在開箱即用(用於軟件檢查任務,持續集成等)。 – BreakPhreak