2017-02-21 68 views
2

我想爲我的rails應用程序編寫測試用例。我已經在Rails內置框架Minitest中編寫了很多測試用例。 現在我想測試我的web應用程序的javascript功能。 我碰到這兩個工具水豚-webkit vs selenium-webdriver的比較

1:硒網絡驅動

2:水豚,WebKit的

我很困惑要使用哪一個。我知道這兩個工具少的優點和缺點一樣

  1. 水豚WebKit是無頭的,而硒的網絡驅動器打開一個瀏覽器。
  2. 水豚比硒快。
  3. 水豚無法打開任何其他應用程序,而硒能與第三方應用程序,如Facebook和LinkedIn

誰能告訴我這兩個工具進行測試比較互動?

回答

5

你在這裏混淆了一些東西。 Capybara是一個用於Ruby的測試框架/ DSL,可以與任何測試運行器框架(RSpec,Minitest等)一起使用。它可以使用多個不同的驅動程序與正在測試的Web應用程序進行通信。

默認的驅動程序是rack_test,它不支持任何JS,並且無法連接到被測試應用程序之外的任何地址。

第二個驅動程序選項是selenium-webdriver,它可以控制多個不同的真實瀏覽器firefox/chrome/safari /等。進行測試,並可以連接到任何有效的URL。使用selenium-webdriver作爲驅動程序的不利之處在於它打開了一個真正的瀏覽器,因此通常使用更大的內存佔用更慢。

另一個驅動程序選項是capybara-webkit,它是無頭的,也可以連接到任何有效的URL。它通常比使用硒更快,但是因爲它建立在QtWebkit的舊版本上,所以它不支持更新的Web標準(ES2015等),所以至少需要確保所有JS都被最終轉換爲ES5。

沒有什麼可以阻止你使用不同的驅動程序進行不同的測試,以獲得大多數測試的速度優勢,然後使用真正的瀏覽器進行需要諸如WebRTC等測試的測試。Capybara README詳細說明了如何做到這一點使用不同的測試跑步者(RSpec,Minitest等)

相關問題