我想为rails应用程序编写测试用例。我已经在Rails内置框架Minitest中编写了很多测试用例。 现在我想测试我的网络应用程序的javascript功能。 我遇到了这两个工具
1:Selenium网络驱动程序
2:Capybara-webkit
我很困惑使用哪一个。我知道这两个工具的优点和缺点很少,如
- Capybara webkit无头,而selenium web-driver打开浏览器。
- 水豚比硒快。
- Capybara无法打开任何其他应用程序,而selenium可以与Facebook和LinkedIn等第三方应用程序进行交互
醇>
有人能告诉我这两种测试工具的比较吗?
答案 0 :(得分:16)
你在这里混淆了一些事情。 Capybara
是Ruby的测试框架/ DSL,可以与任何测试运行器框架(RSpec,Minitest等)一起使用。它可以使用多种不同的驱动程序与正在测试的Web应用程序进行通信。
默认驱动程序是rack_test,它不支持任何JS,也无法连接到被测应用程序外的任何地址。
第二个驱动程序选项是selenium-webdriver
,它可以控制多个不同的真实浏览器firefox / chrome / safari / etc.用于测试,并可以连接到任何有效的URL。使用selenium-webdriver作为驱动程序的缺点是它打开了一个真正的浏览器,因此通常较慢,内存占用较大。
另一个驱动程序选项是capybara-webkit
,它是无头的,也可以连接到任何有效的URL。它通常比使用硒更快,因为它是基于旧版本的QtWebkit构建的,它不支持更新的Web标准(ES2015等),因此至少需要确保所有JS都被转换为ES5最大值。
没有什么可以阻止你使用不同的驱动程序进行不同的测试,以获得大多数测试的速度优势,然后使用真正的浏览器进行需要WebRTC等测试的测试.Capybara README详细说明了如何使用它不同的测试跑步者(RSpec,Minitest等)