2012-10-25 18 views
1

我是測試的新手。在Linux中使用HtmlUnitDriver和使用Xvfb編寫無頭測試有什麼區別?

我正在使用Linux。 我正在閱讀關於無頭模式下的測試,並且遇到了兩件事。一個是X虛擬幀緩衝區,它在內存中執行圖形操作。所以,不顯示輸出。我在這個鏈接http://www.seleniumtests.com/2012/04/headless-tests-with-firefox-webdriver.html中找到了實現細節。

我遇到的另一個是HtmlUnitDriver。運行測試時,這也不會打開任何瀏覽器。我使用HtmlUnitDriver編寫了一個基本的示例代碼,並且這些斷言似乎工作正常。

據我所知,HtmlUnitDriver不能很好地用於JavaScript。但除此之外,是否有重大差異來選擇另一個?

我將測試一個Web應用程序,它確實有一些javascript。

我是這個領域的新手。所以,任何答案,建議等將不勝感激。 預先感謝您

回答

6

從我的經驗,這兩種方法:

  • 會的HtmlUnit在大多數實際情況是不是與xvfb的一個真正的瀏覽器速度更快 - 只是因爲它不花時間渲染頁面。 (數據點:17秒HtmlDriver與62秒對於我現在使用的特定測試套件,FirefoxDriver)。
  • 使用HtmlUnit可以更輕鬆地同時運行多個測試 - 它消耗的資源要少很多。如果您有大量測試並且需要它們快速完成(例如您想遵循10分鐘構建規則),這可能非常重要。如你所說,HtmlUnit有它自己的JavaScript和DOM的怪癖。沒有比任何其他瀏覽器(Firefox,Safari,IE,Chrome,... - 他們都有自己的怪癖)更好或更差,但是花費時間修復錯誤是非常值得懷疑的。我也發現這樣的錯誤很難診斷,但這可能只是我的無知。
  • 真正的瀏覽器+ xvfb的一個優點是您可以始終使用完全相同的測試,而無需使用xvfb並查看發生了什麼 - 甚至可能使用控制檯運行某些JavaScript來診斷問題。在使用HtmlUnit時,我有時會覺得很盲目,並且由於上述怪癖,您無法在兩種環境中始終使用相同的精確測試代碼。

總而言之,除非總的測試持續時間很重要,並且您準備花費一些時間來對抗HtmlUnit,否則使用常規瀏覽器+ xvfb更容易。

我也喜歡使用xvnc,它具有額外的好處,允許您連接到正在運行的測試的屏幕並查看正在發生的事情(不確定是否可以使用xvfb執行此操作)。

相關問題