翻譯自:http://www.installationpage.com/selenium/how-to-run-selenium-headless-firefox-in-ubuntu/javascript
Selenium是一個web自動化測試框架。用它能夠實現web應用自動化測試。不過,我不僅是用它來作測試,我還用它從電子商務網站簽到頁面爬取javascript生成的或AJAX的內容。java
做爲程序員,我不知足於使用Selenium IDE來記錄和重放宏記錄。那樣很蹩腳,並且不適合部署到多臺服務器。這時,你須要Selenium WebDriver,它又靈活,並且經過Selenium headless,運行Selenium在服務器上不須要顯示設備。程序員
當你但願能在服務器上運行的健壯的自動化操做,而其操做又依賴於 27X7,同時還但願它是穩定的,這時,Selenium是你惟一的選擇。可是,Selenium須要運行在瀏覽器上。因此,你得騙Selenium,讓它以爲,它正跑在一臺帶有顯示器的機器上。這樣,你就能夠不間斷的跑自動化測試,同時又不失穩定性和擴展性。web
本教程的目標是在使用Mozilla Firefox做爲主瀏覽器的ubuntu上配置和運行selenium headless。ubuntu
確認你的ubuntu安裝的是最新版本的Firefox。我遇到過Selenium的版本和Firefox的版本不兼容問題。若是你沒有安裝Firefox或者使用的是老版本的Firefox,可按如下步驟升級Firefox:瀏覽器
在/etc/apt/sources.list加入:服務器
ppa:mozillateam/firefox-stable框架
運行如下命令升級或安裝Firefoxless
sudo apt-get update
sudo apt-get install firefox測試
運行成功後,ubuntu上就應該安裝好最新版本的Firefox了。
這個仿真框架使用虛擬內存能讓X-Server運行在沒有顯示設備的機器上。這樣,瀏覽器就能夠運行了。在ubuntu和Debian上安裝xvfb,只要運行:
sudo apt-get install xvfb
如今,能夠運行xvfb服務上一個帶有數字的顯示設備上,這樣是爲了防止你在下階段添加設備時引起衝突。本教程,咱們分配一個顯示設備 10.
sudo Xvfb :10 -ac
-ac
表明關閉xvfb的訪問控制。好了,服務器能夠運行了。
在你運行瀏覽器前,你首先要設置DISPLAY環境變量,以指定xvfb運行在哪一個顯示設備上。在加入環境變量前,咱們檢查一下全部的這些都如咱們所料:
export DISPLAY=:10 firefox
若是終端(terminal)沒有顯示錯誤,就說明你已經成功運行Firefox在無顯示設備的ubuntu上了。它會一直運行,直到你使用ctrl + C或其它相似方法來終止其運行。同時,它不會有任何輸出。
若是你能成功運行以上的步驟,那麼接下來的部分就是垂手可得了。如今,咱們能夠在ubuntu服務器上運行selenium,如同你在本地運行同樣。本教程的下一部分,我展現瞭如何運行一個獨立selenium服務器,同時使用PHP的selenium webdriver去鏈接。
好久之前,我也使用selenium作自動化的集成測試,使用HtmlUnit的webdriver,因此不須要顯示器。可是HtmlUnit的表現老是有些不如意。而最近在項目中發現這篇文章,解決我長久以來的問題:在沒有顯示器的服務器上運行Firefox的集成測試。
而本文,我更多嘗試的是意譯。有不對的地方,謝謝斧正!