Вы находитесь на странице: 1из 2

3.

Стек автоматизации
3.1. Ruby
Ruby — интерпретируемый язык программирования высокого уровня. Обладает
независимой от операционной системы реализацией многопоточности, строгой
динамической типизацией, «сборщиком мусора» и многими другими возможностями,
поддерживающими много разных парадигм программирования, прежде всего
классово-объектную.
Достаточно легко освоить имея опыт программирования на других языках.
Авто тесты написаны на Ruby.
https://www.ruby-lang.org/ru/
3.2. Selenium Webdriver
Selenium Webdriver — инструмент для автоматизации действий веб-браузера.
По назначению Selenium WebDriver представляет собой драйвер браузера, то
есть программную библиотеку, которая позволяет разрабатывать программы,
управляющие поведением браузера.
По своей сущности Selenium WebDriver представляет собой:
 спецификацию программного интерфейса для управления браузером,
 реализации этого интерфейса для нескольких браузеров,
 набор клиентских библиотек для этого интерфейса на нескольких языках
программирования.
С его помощью выполняются все взаимодействия с браузером.
https://www.selenium.dev/
3.3. Cucumber
Сucumber —инструмент автоматизации тестирования для написания BDD тестов,
позволяющий писать тесты на человеческом языке. Для этого используется нотация
Gherkin, которая определяет структуру и правила написания сценариев. Он позволяет
описать поведение системы с позиции внешнего наблюдателя (читать как «заказчика,
конечного пользователя»). При этом описание дается на естественно языке, никаких
вам begin end.
Каждый вариант использования системы в огурце называется «фичей» (feature).
Все они лежат в одноименной папочке features с расширением файла *.feature. В
каждом файле описывается один или несколько «сценариев» (scenario),
характеризующих фичу. Сценарии состоят из ряда шагов, объявленных в файлах из
папки features/step_definitions/*_steps.rb.
Шаги бывают трех типов:
 Given (что-то данное, некоторое предварительное условие)
 When (что-то, что происходит, какие-то действия пользователя)
 Then (результат, реакция, отклик)
Через собачку (@) расставляются метки, позволяющие наложить
дополнительные условия на всю фичу или конкретный сценарий, а так же выборочно
выполнить тест. В принципе все читабельно. В идеале должно быть так, чтобы
заказчик взял этот файл, открыл простым текстовым редактором и не напрягаясь
прочел, все понял, осознал и подтвердил: «Оно!»
Что касается настройки огурца, то она проводится в сгенерированном файле
features/support/env.rb. Там добавляются необходимые строчки кода для
подключения всего, что необходимо для тестирования.
Огурец позволяет реализовать BDD подход.
https://cucumber.io/
https://github.com/cucumber
https://wellbehaved.readthedocs.io/Gherkin.html
https://habr.com/ru/post/423123/
3.4. Capybara
Capybara — гем, позволяющий искать/кликать/… по элементам браузера. Т.е.
представляет собой связующее звено между Cucumber шагами (steps) теста, и
webdriver-ом (экземпляр вызываемого браузера). Здесь можно глянуть методы этого
гема.
На Огурце мы пишет наши тесты простым языком, а сами шаги реализуем с
использованием Capybara. А Capybara уже взаимодействует с webdriver'ом
https://github.com/teamcapybara/capybara
3.5. SitePrism
SitePrism – гем, который предоставляет вам простой и чистый DSL для описания
страниц сайта с использованием шаблона Page Object.
С помощью этого гема релизован паттерн PageObject.
https://github.com/site-prism/site_prism
https://rdoc.info/gems/site_prism/frames
3.6. ParallelTests
ParallelTests – гем, который разбивает тесты на группы и запускает каждую
группу в отдельном потоке (процессе).
С помощью этого гема реализован параллельный запуск тестов.
https://github.com/grosser/parallel_tests