如何在無顯示器的ubuntu下跑前端測試

翻譯自: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在服務器上不須要顯示設備。程序員

爲何要運行Headless Selenium 測試?

當你但願能在服務器上運行的健壯的自動化操做,而其操做又依賴於 27X7,同時還但願它是穩定的,這時,Selenium是你惟一的選擇。可是,Selenium須要運行在瀏覽器上。因此,你得騙Selenium,讓它以爲,它正跑在一臺帶有顯示器的機器上。這樣,你就能夠不間斷的跑自動化測試,同時又不失穩定性和擴展性。web

如何在ubuntu上運行Selenium headless

本教程的目標是在使用Mozilla Firefox做爲主瀏覽器的ubuntu上配置和運行selenium headless。ubuntu

安裝Firefox headless

確認你的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了。

安裝Xvfb——一個X虛擬框架

這個仿真框架使用虛擬內存能讓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的集成測試。

而本文,我更多嘗試的是意譯。有不對的地方,謝謝斧正!

相關文章
相關標籤/搜索