Капибара (программное обеспечение)
Разработчик(и) | Томас Уолпол |
---|---|
Стабильная версия | 3.40.0 [1]
/ 27 января 2024 г |
Репозиторий | |
Написано в | Руби |
Операционная система | Кросс-платформенный |
Тип | разработки, основанная на поведении Платформа / Инструмент тестирования |
Лицензия | МОЯ лицензия |
Веб-сайт | командакапибара |
Capybara — это веб-программное обеспечение для автоматизации тестирования , которое моделирует сценарии для пользовательских историй и автоматизирует веб-приложений тестирование для разработки программного обеспечения на основе поведения . Он написан на языке программирования Ruby .
Capybara может имитировать действия реальных пользователей, взаимодействующих с веб-приложениями. Он может получать страницы, анализировать HTML и отправлять формы . [2]
Предыстория и мотивация
[ редактировать ]В процессе разработки программного обеспечения (особенно в средах гибкой разработки и разработки через тестирование ), поскольку размер тестов увеличивается, становится сложнее управлять сложными и немодульными тестами. [2]
Расширяя удобочитаемый стиль разработки, основанный на поведении, таких фреймворков, как Cucumber и RSpec, в сам код автоматизации, Capybara стремится разрабатывать простые автоматизированные веб-тесты. [3]
Анатомия капибары
[ редактировать ]Capybara — это библиотека Ruby (также называемая драгоценным камнем ), которая используется с базовым веб-драйвером. Он состоит из удобного для пользователя DSL (языка, специфичного для предметной области), который описывает действия, выполняемые базовым веб-драйвером. [4]
Когда страница загружается с использованием DSL (и базового веб-драйвера), Capybara попытается найти соответствующий элемент в DOM (объектной модели документа) и выполнить такое действие, как нажатие кнопки, ссылки и т. д.
Драйверы
[ редактировать ]По умолчанию Капибара использует :rack_test
драйвер, который не поддерживает выполнение JavaScript . Драйверы можно переключать в блоках «До» и «После». Некоторые веб-драйверы, поддерживаемые Capybara, упомянуты ниже.
РэкТест
[ редактировать ]Написанный на Ruby драйвер Capybara RackTest по умолчанию не требует запуска сервера, поскольку он напрямую взаимодействует с Rack интерфейсами . Следовательно, его можно использовать только для стоечных приложений.
Селен
[ редактировать ]Selenium -webdriver, который в основном используется в веб-средах автоматизации, поддерживается Capybara. В отличие от драйвера Capybara по умолчанию, он поддерживает JavaScript, может получать доступ к HTTP-ресурсам вне приложения, а также может быть настроен для тестирования в автономном режиме, что особенно полезно для сценариев CI. [4]
Веб-кит капибары
[ редактировать ]Драйвер Capybara-webkit (драгоценный камень) используется для настоящего автономного тестирования браузера с поддержкой JavaScript. Он использует QtWebKit и значительно быстрее Selenium, поскольку не загружает весь браузер.
Матчи
[ редактировать ]Capybara находит элемент либо с помощью специфичного для предметной области языка , либо с помощью селекторов XPath / CSS . Частичные совпадения могут привести к неожиданным результатам. Два или более совпадений могут даже привести к сбою с ошибкой неоднозначного совпадения. Ниже приведены стратегии сопоставления, поддерживаемые Capybara: [4]
first: выберите первый элемент, который соответствует. Не желательно использовать.
one: разрешить совпадение только одного элемента. Ошибка возникает, если совпадений более одного.
умный: если Capybara.exact имеет значение true, он ведет себя так же, как указанный выше вариант ( one ). Если Capybara.exact имеет значение false, сначала будет предпринята попытка найти точное совпадение. Неоднозначное исключение возникает, если найдено более одного совпадения. Если ни один элемент не найден, начинается новый поиск неточных совпадений. Опять же, если найдено более одного совпадения, возникает неоднозначное исключение.
«prefer_exact»: находит все совпадающие (точные и неточные) элементы. Если обнаружено несколько совпадений, то возвращается первый точно совпадающий элемент, остальные совпадения отбрасываются.
Использование
[ редактировать ]Процесс регистрации пользователя
[ редактировать ]Вот пример того, как выполняется проверка регистрации пользователя с помощью Capybara. Существует проверка, позволяющая определить, может ли пользователь продолжить процесс регистрации или есть ли какие-либо задержки. Если у него есть необходимые учетные данные, он будет зарегистрирован, а затем перенаправлен на страницу «Добро пожаловать». [5]
describe 'UserRegistration' do
it 'allows a user to register' 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 'Register'
page.should have_content 'Welcome'
end
end
Капибара с огурцом
[ редактировать ]Пример функции Capybara, используемой с Cucumber:
When /^I want to add/ do
fill_in 'a', :with => 100
fill_in 'b', :with => 100
click_button 'Add'
end
Капибара с RSpec
[ редактировать ]Для использования Capybara с RSpec требуется некоторая минутная интеграция. [4] [6]
describe 'go to home page' do
it 'opens the home page' do
visit (get_homepage)
expect(page).to have_content('Welcome')
end
end
Похожие инструменты
[ редактировать ]См. также
[ редактировать ]- Приемочное тестирование
- Разработка через приемочное тестирование
- Развитие, основанное на поведении
- Автоматизация тестирования
- ХтмлЮнит
- Список инструментов веб-тестирования
- Регрессионное тестирование
- Учитывая-когда-то
Ссылки
[ редактировать ]- ^ «Выпуск 3.40.0» . 27 января 2024 г. Проверено 19 февраля 2024 г.
- ^ Перейти обратно: а б Фокс, Армандо; Паттерсон, Дэвид А. (2013). Инженерное программное обеспечение как услуга: гибкий подход с использованием облачных вычислений . ООО «Земляничный каньон». ISBN 9780984881246 .
- ^ Тестирование приложений с помощью Capybara . ISBN 9781783281268 .
- ^ Перейти обратно: а б с д «Основы капибары и улучшение ваших тестов» . СайтПоинт . 18 августа 2014 года . Проверено 8 февраля 2016 г.
- ^ «Интеграционное тестирование разработки с RSpec и Capybara» . garyrafferty.com . Архивировано из оригинала 21 января 2016 г. Проверено 16 февраля 2016 г.
- ^ Лисс, Джо. «Capybara (и Selenium) с RSpec и Rails 3: краткое руководство» . www.opinionatedprogrammer.com . Проверено 8 февраля 2016 г.
- Инструменты тестирования программного обеспечения
- Программное обеспечение, использующее лицензию MIT
- Тестирование графического пользовательского интерфейса
- Инструменты нагрузочного тестирования
- Фреймворки модульного тестирования
- Программное обеспечение для веб-разработки
- Парсинг веб-страниц
- Бесплатное программное обеспечение, написанное на Ruby.