如何在無顯示器的ubuntu下跑前端測試
Selenium是一個web自動化測試框架。用它可以實現(xiàn)web應(yīng)用自動化測試。不過,我不只是用它來做測試,我還用它從電子商務(wù)網(wǎng)站簽到頁面爬取javascript生成的或AJAX的內(nèi)容。
作為程序員,我不滿足于使用Selenium IDE來記錄和重放宏記錄。那樣很蹩腳,而且不適合部署到多臺服務(wù)器。這時,你需要Selenium WebDriver,它又靈活,而且通過Selenium headless,運行Selenium在服務(wù)器上不需要顯示設(shè)備。
為什么要運行Headless Selenium 測試?
當(dāng)你希望能在服務(wù)器上運行的健壯的自動化操作,而其操作又依賴于 27X7,同時還希望它是穩(wěn)定的,這時,Selenium是你唯一的選擇。但是,Selenium需要運行在瀏覽器上。所以,你得騙Selenium,讓它覺得,它正跑在一臺帶有顯示器的機器上。這樣,你就可以不間斷的跑自動化測試,同時又不失穩(wěn)定性和擴展性。
如何在ubuntu上運行Selenium headless
本教程的目標是在使用Mozilla Firefox作為主瀏覽器的ubuntu上配置和運行selenium headless。
安裝Firefox headless
確認你的ubuntu安裝的是***版本的Firefox。我遇到過Selenium的版本和Firefox的版本不兼容問題。如果你沒有安裝Firefox或者使用的是老版本的Firefox,可按以下步驟升級Firefox:
在/etc/apt/sources.list加入:
ppa:mozillateam/firefox-stable
運行以下命令升級或安裝Firefox
sudo apt-get update
sudo apt-get install firefox
運行成功后,ubuntu上就應(yīng)該安裝好***版本的Firefox了。
安裝Xvfb——一個X虛擬框架
這個仿真框架使用虛擬內(nèi)存能讓X-Server運行在沒有顯示設(shè)備的機器上。這樣,瀏覽器就可以運行了。在ubuntu和Debian上安裝xvfb,只要運行:
- sudo apt-get install xvfb
現(xiàn)在,可以運行xvfb服務(wù)上一個帶有數(shù)字的顯示設(shè)備上,這樣是為了防止你在下階段添加設(shè)備時引發(fā)沖突。本教程,我們分配一個顯示設(shè)備 10..
- sudo Xvfb :10 -ac
-ac
代表關(guān)閉xvfb的訪問控制。好了,服務(wù)器可以運行了。
啟動瀏覽器
在你運行瀏覽器前,你首先要設(shè)置DISPLAY環(huán)境變量,以指定xvfb運行在哪個顯示設(shè)備上。在加入環(huán)境變量前,我們檢查一下所有的這些都如我們所料:
- export DISPLAY=:10
- firefox
如果終端(terminal)沒有顯示錯誤,就說明你已經(jīng)成功運行Firefox在無顯示設(shè)備的ubuntu上了。它會一直運行,直到你使用ctrl + C或其它類似方法來終止其運行。同時,它不會有任何輸出。
如果你能成功運行以上的步驟,那么接下來的部分就是輕而易舉了?,F(xiàn)在,我們可以在ubuntu服務(wù)器上運行selenium,如同你在本地運行一樣。本教程的下一部分,我展示了如何運行一個獨立selenium服務(wù)器,同時使用PHP的selenium webdriver去連接。
小結(jié)
很久以前,我也使用selenium做自動化的集成測試,使用HtmlUnit的webdriver,所以不需要顯示器。但是HtmlUnit的表現(xiàn)總是有些不如意。而最近在項目中發(fā)現(xiàn)這篇文章,解決我長久以來的問題:在沒有顯示器的服務(wù)器上運行Firefox的集成測試。
而本文,我更多嘗試的是意譯。有不對的地方,謝謝斧正!
英文原文:http://www.installationpage.com/selenium/how-to-run-selenium-headless-firefox-in-ubuntu/