Capybara (программное обеспечение) - Capybara (software)

Капибара
Разработчики)Томас Уолпол
Стабильный выпуск
3.29.0 / 2 сентября 2019 г.; 14 месяцев назад (2019-09-02)[1]
Репозиторий Отредактируйте это в Викиданных
Написано вРубин
Операционная системаКроссплатформенность
ТипПоведенческая разработка рамки / Инструмент тестирования
ЛицензияЛицензия MIT
Интернет сайткоманда.github.io/Капибара/

Капибара это веб- автоматизация тестирования программное обеспечение, моделирующее сценарии для пользовательские истории и автоматизирует веб приложение тестирование на управляемый поведением разработка программного обеспечения. Это написано в Язык программирования Ruby.

Capybara может имитировать действия реальных пользователей, взаимодействующих с веб-приложениями. Он может получать страницы, разбирать HTML и представить формы.[2]

Предпосылки и мотивация

В процессе разработки программного обеспечения (особенно в Гибкий и Разработка через тестирование средах), поскольку размер тестов увеличивается, становится трудно управлять тестами, которые являются сложными и немодульными.[2]

Расширяя удобочитаемую поведенческая разработка стиль фреймворков, таких как Огурец и RSpec В код автоматизации Capybara стремится разработать простые автоматизированные веб-тесты.[3]

Анатомия капибары

Capybara - это библиотека Ruby (также называемая самоцвет ), который используется с базовым веб-драйвером. Он состоит из удобного DSL (Domain Specific Language), которые описывают действия, выполняемые базовым веб-драйвером.[4]

Когда страница загружается с использованием DSL (и базового веб-драйвера), Capybara попытается найти соответствующий элемент в ДОМ (Объектная модель документа) и выполните такое действие, как кнопка щелчка, ссылка и т. Д.

Драйверы

По умолчанию Capybara использует : rack_test драйвер, который не поддерживает выполнение JavaScript. Драйверы можно переключать в блоках до и после. Некоторые из веб-драйверов, поддерживаемых Capybara, упомянуты ниже.

RackTest

Написанный на Ruby драйвер Capybara по умолчанию RackTest не требует запуска сервера, поскольку он напрямую взаимодействует с Стойка интерфейсы. Следовательно, его можно использовать только для приложений Rack.

Селен

Селен -webdriver, который в основном используется в веб-средах автоматизации, поддерживается Capybara. В отличие от драйвера Capybara по умолчанию, он поддерживает JavaScript, может обращаться к HTTP-ресурсам вне приложения, а также может быть настроен для тестирования в автономном режиме, что особенно полезно для сценариев CI.[4]

Капибара-вебкит

Драйвер Capybara-webkit (жемчужина) используется для истины безголовый браузер тестирование с поддержкой JavaScript. Оно использует QtWebKit и он значительно быстрее, чем Selenium, так как не загружает весь браузер.

Матчеры

Capybara находит элемент либо с помощью Доменный язык или же XPath /Селекторы CSS. Частичные совпадения могут привести к неожиданным результатам. Два или более совпадений могут даже привести к сбою с ошибкой неоднозначного совпадения. Ниже приведены стратегии соответствия, поддерживаемые Capybara:[4]

первый: Выберите первый подходящий элемент. Не рекомендуется использовать.

один: Разрешить совпадение только одного элемента. Ошибка возникает при наличии нескольких совпадений.

умная: Если Capybara.exact истинен, он ведет себя как указанная выше опция (один). Если Capybara.exact имеет значение false, он сначала попытается найти точное совпадение. Неоднозначное исключение возникает, если найдено более одного совпадения. Если элемент не найден, начинается новый поиск неточных совпадений. И снова возникает неоднозначное исключение, если найдено более одного совпадения.

предпочитать_exact: Находит все совпадающие (точные и неточные) элементы. Если найдено несколько совпадений, возвращается первый точно совпадающий элемент, отбрасывая другие совпадения.

использование

Процесс регистрации пользователя[5]

Вот пример того, как тест регистрации пользователя выполняется с помощью Capybara. Существует тест, чтобы увидеть, может ли пользователь продолжить процесс регистрации или есть ли у него какие-либо задержки. Если у него есть необходимые учетные данные, он будет зарегистрирован, а затем перенаправлен на страницу приветствия.

  описывать 'Регистрация пользователя' делать    Это 'позволяет пользователю зарегистрироваться' делать      посещение new_user_registration_path      заполните 'Имя',  => 'Новый'      заполните 'Фамилия',  => 'Пользователь'      заполните 'Электронное письмо',  => '[email protected]'      заполните 'Пароль',  => 'пользовательский пароль'      заполните 'Подтверждение пароля',  => 'пользовательский пароль'      click_button 'Регистр'      страница.должен have_content 'Добро пожаловать'    конец  конец

Капибара с огурцом

Пример функции капибары, используемой с огурцом:

Когда / ^ Я хочу добавить / делать    заполните 'а',  => 100    заполните 'b',  => 100    click_button 'Добавлять'конец

Капибара с RSpec

Чтобы использовать Capybara с RSpec[4][6]

описывать 'перейдите на домашнюю страницу' делать  Это 'открывает домашнюю страницу' делать    посещение (get_homepage)    ожидать(страница).к have_content('Добро пожаловать')  конецконец

Подобные инструменты

Расширения

Смотрите также

Рекомендации

  1. ^ «Релизы - teamcapybara / capybara». Получено 7 октября 2019 - через GitHub.
  2. ^ а б Инженерное программное обеспечение как услуга: гибкий подход с использованием облачных вычислений. ISBN  9780984881246.
  3. ^ Тестирование приложений с Capybara. ISBN  9781783281268.
  4. ^ а б c d «Основы капибары и улучшение ваших тестов». SitePoint. Получено 2016-02-08.
  5. ^ «Устройство для тестирования интеграции с RSpec и Capybara». garyrafferty.com. Архивировано из оригинал на 2016-01-21. Получено 2016-02-16.
  6. ^ Лисс, Джо. «Capybara (и Selenium) с RSpec & Rails 3: краткое руководство». www.opinionatedprogrammer.com. Получено 2016-02-08.