2017-02-21 12 views
2

Я хочу написать тестовые примеры для моего приложения для рельсов. Я уже написал много тестовых примеров в Rails встроенной структуре Minitest. Теперь я хочу проверить функциональность javascript моего веб-приложения. я наткнулся на эти два инструментаСравнение capybara-webkit vs selenium-webdriver

1: Селен веб-водитель

2: Капибара-WebKit

Я смущен, который один использовать. Я знаю несколько преимуществ и недостатки этих двух инструментов, как

  1. Capybara WebKit является обезглавленным в то время как селен веб-драйвер открыть браузер.
  2. Capybara быстрее, чем селен.
  3. Капибара не может открыть любое другое приложение, в то время как селен может взаимодействовать с приложениями сторонних разработчиков, таких как Facebook и LinkedIn

Может кто-нибудь сказать мне сравнение этих двух инструментов для тестирования?

ответ

5

Вы вводите в заблуждение несколько вещей здесь. Capybara - это тестовая платформа/DSL для Ruby, которая может использоваться с любыми рамами тестового бегуна (RSpec, Minitest и т. Д.). Он может использовать несколько разных драйверов для связи с тестируемым веб-приложением.

Драйвер по умолчанию - rack_test, который не поддерживает JS и не может подключаться к каким-либо адресам вне тестируемого приложения.

Второй вариант драйвера - selenium-webdriver, который может управлять несколькими различными браузерами реального времени firefox/chrome/safari/etc. для тестирования и может подключаться к любому действительному URL. Недостатком использования selenium-webdriver в качестве драйвера является то, что он открывает реальный браузер и поэтому обычно медленнее с большим объемом памяти.

Другой вариант драйвера - capybara-webkit, который безголовый, а также может подключаться к любому действительному URL. Это, как правило, быстрее, чем использование селена, однако, поскольку он построен на старой версии QtWebkit, он не поддерживает более новые веб-стандарты (ES2015 и т. Д.), Поэтому, как минимум, вам нужно убедиться, что все JS переписаны до максимального значения ES5.

Нет ничего, чтобы остановить использование разных драйверов для разных тестов, чтобы получить преимущества скорости для большинства тестов, а затем использовать настоящий браузер для тестов, требующих таких вещей, как WebRTC и т. Д. Capybara README подробно описывает, как это сделать используя различные испытательные направляющие (RSpec, Minitest и т. д.)