2017-02-21 70 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等)

相关问题