Сравнение capybara-webkit и selenium-webdriver

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

1: веб-драйвер Selenium

2: Capybara-webkit

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

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

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


person Zia Qamar    schedule 21.02.2017    source источник


Ответы (1)


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

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

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

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

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

person Thomas Walpole    schedule 23.02.2017