Capybara - это веб- программное обеспечение для автоматизации тестирования, которое моделирует сценарии для пользовательских историй и автоматизирует тестирование веб-приложений для разработки программного обеспечения, управляемого поведением . Он написан на языке программирования Ruby .
Разработчики) | Томас Уолпол |
---|---|
Стабильный выпуск | 3.34.0 / 26 ноября 2020 г . [1] |
Репозиторий | |
Написано в | Рубин |
Операционная система | Кроссплатформенность |
Тип | Поведение разработки на основе рамки / инструмент Test |
Лицензия | Лицензия MIT |
Веб-сайт | teamcapybara |
Capybara может имитировать действия реальных пользователей, взаимодействующих с веб-приложениями. Он может получать страницы, анализировать HTML и отправлять формы . [2]
Предпосылки и мотивация
В процессе разработки программного обеспечения (особенно в средах гибкой разработки и разработки, управляемой тестированием ) по мере увеличения размера тестов становится трудно управлять тестами, которые являются сложными и немодульными. [2]
Распространяя удобочитаемый, управляемый поведением стиль разработки фреймворков, таких как Cucumber и RSpec, на сам код автоматизации, Capybara стремится разрабатывать простые автоматизированные веб-тесты. [3]
Анатомия капибары
Capybara - это библиотека Ruby (также называемая гемом ), которая используется с базовым веб-драйвером. Он состоит из удобного для пользователя DSL (предметно-ориентированного языка), который описывает действия, выполняемые базовым веб-драйвером. [4]
Когда страница загружается с использованием DSL (и базового веб-драйвера), Capybara попытается найти соответствующий элемент в DOM (объектной модели документа) и выполнить действие, такое как кнопка щелчка, ссылка и т. Д.
Драйверы
По умолчанию Capybara использует :rack_test
драйвер, который не поддерживает выполнение JavaScript . Драйверы можно переключать в блоках «До» и «После». Некоторые из веб-драйверов, поддерживаемых Capybara, упомянуты ниже.
RackTest
Написанный на Ruby драйвер Capybara по умолчанию RackTest не требует запуска сервера, поскольку он напрямую взаимодействует с интерфейсами Rack . Следовательно, его можно использовать только для стоечных приложений.
Селен
Selenium -webdriver, который в основном используется в веб-средах автоматизации, поддерживается Capybara. В отличие от драйвера Capybara по умолчанию, он поддерживает JavaScript, может получать доступ к HTTP-ресурсам вне приложения, а также может быть настроен для тестирования в автономном режиме, что особенно полезно для сценариев CI. [4]
Капибара-вебкит
Драйвер Capybara-webkit (жемчужина) используется для полноценного тестирования браузера без использования компьютера с поддержкой JavaScript. Он использует QtWebKit и значительно быстрее, чем Selenium, поскольку не загружает весь браузер.
Матчеры
Capybara находит элемент либо с помощью предметно-ориентированного языка, либо с помощью селекторов XPath / CSS . Частичные совпадения могут привести к неожиданным результатам. Два или более совпадений могут даже привести к сбою с ошибкой неоднозначного совпадения. Ниже приведены стратегии сопоставления, поддерживаемые Capybara: [4]
первый: выберите первый соответствующий элемент. Не рекомендуется использовать.
one: разрешить совпадение только одного элемента. Ошибка возникает, если найдено более одного совпадения.
smart: Если Capybara.exact истинно, он ведет себя как вариант выше ( один ). Если Capybara.exact имеет значение false, он сначала попытается найти точное совпадение. Неоднозначное исключение возникает, если найдено более одного совпадения. Если ни один элемент не найден, начинается новый поиск неточных совпадений. Опять же, если найдено более одного совпадения, возникает неоднозначное исключение.
предпочитают_exact: находит все совпадающие (точные и неточные ) элементы. Если найдено несколько совпадений, возвращается первый точно совпадающий элемент, отбрасывая другие совпадения.
Применение
Процесс регистрации пользователя
Вот пример того, как выполняется тест регистрации пользователя с использованием Capybara. Существует тест, чтобы увидеть, может ли пользователь продолжить процесс регистрации или есть ли у него какие-либо задержки. Если у него есть необходимые учетные данные, он будет зарегистрирован, а затем перенаправлен на страницу «Добро пожаловать».
< ref > {{ Cite web | название = Интеграция тестирование Разрабатывает с RSpec и Капибарой | url = http : // garyrafferty . ком / 2011 / 09 / 29 / Тестирование - Завещание - с - RSpec - и - водосвинки . html | сайт = garyrafferty . com | доступ - дата = 2016 - 02 - 16 | архив - url = https : // web . архив . org / web / 20160121204404 / http : // garyrafferty . ком / 2011 / 09 / 29 / Тестирование - Завещание - с - RSpec - и - водосвинки . html | архив - дата = 2016 - 01 - 21 | url - status = dead }} < / ref> describe 'UserRegistration' do it 'позволяет пользователю зарегистрироваться' do visit new_user_registration_path fill_in 'First name',: with => 'New' fill_in 'Last name',: with => 'User' fill_in 'Email ' ,: with => '[email protected]' fill_in 'Password ' ,: with => 'userpassword' fill_in 'Password Confirmation',: with => 'userpassword' click_button Страница «Регистрация» . should have_content "Добро пожаловать" конец конец
Капибара с огурцом
Пример функции капибары, используемой с огурцом:
Когда / ^ Я хочу , чтобы добавить / сделать FILL_IN 'а' , : с => 100 FILL_IN 'Ъ' , : с => 100 click_button 'Добавить' конец
Капибара с RSpec
Для использования Capybara с RSpec [4] [5] требуется небольшая интеграция.
описывают «перейти на главную страницу» сделать это «открывает домашнюю страницу» сделать визит ( get_homepage ) ожидать ( страницы ) . to have_content ( 'Добро пожаловать' ) конец конец
Подобные инструменты
Расширения
Смотрите также
- Приемочное тестирование
- Разработка через приемочные испытания
- Поведенческая разработка
- Автоматизация тестирования
- HtmlUnit
- Список инструментов веб-тестирования
- Регрессионное тестирование
- Дано-Когда-Тогда
Рекомендации
- ^ "Релизы - teamcapybara / capybara" . Проверено 19 января 2021 г. - через GitHub .
- ^ а б Инженерное программное обеспечение как услуга: гибкий подход с использованием облачных вычислений . ISBN 9780984881246.
- ^ Тестирование приложений с Capybara . ISBN 9781783281268.
- ^ а б в г «Основы капибары и улучшение ваших тестов» . SitePoint . Проверено 8 февраля 2016 .
- ^ Лисс, Джо. «Capybara (и Selenium) с RSpec & Rails 3: краткое руководство» . www.opinionatedprogrammer.com . Проверено 8 февраля 2016 .