Помогите с выбором инструмента для “разжевывания” сценариев для автоматизации.
Стоит задача парсить сценарии из тест-трекера, т.е. грубо говоря есть сценарий вида:
Шаги / результат
Пользователь авторизовывается / открывается главная страница
Нажимает на кнопку Меню / открывается меню, есть такие-то элементы
Выбирает такой-то элемент / Выполняется такое-то действие
или
Шаги / результат
Отправляется запрос getA / получен ответ с параметрами, есть все параметры, параметр A1 = false
Отправляется запрос getB, в котором B0 = A1 / получен ответ с параметрами, есть все параметры B1 = true
Первое что приходит в голову cucumber, ранее был опыт использование, но очень давно, и в целом, сейчас читаю разные мнения, и они протеречивы. Как вариант, использовать другие инструменты BDD - JBehave, RobotFramework.
Что выбрать? Тесты пишутся на java. Первоочередная задача покрыть тестами API.
Удобство. Трудно оценить. Достаточно удобно. Ну знаю в чём мерять.
Скорость чего? Как обычно никаких, каких-то тормозов связанных с ним не замечено.
Костыли. Мы расширили немного классы для работы с табличными данными. Типа удаление колонок, парсинг из стрингового типа в нужный и так далее. Сам framework не допиливали. Хотя нет! Наш разработчик поднимал pull request на github для добавления множества классов World. Ещё в 2014 году.
Тест-трекера у нас нет. Храним вместе с кодом в гите.
Я в своей команде использую BDD, (в Python) для создания длительных интеграционных/функциональных тестов (от 30 до 4-х часов). Сейчас используем lettuce (последние 3 года), но планируем либо писать свое, либо переходить на aloe/behave, хотя у нас есть к ним вопросы. Мы за пару лет написали уже кучу степов и чаще всего, написание нового тест кейса (feature файла) занимает 20 минут на общение с разработчиком и 20 минут на накидывание степов в файл. Тестируем мы достаточно сложное клиент-серверное приложение.
Я бы рекомендовал саму BDD методологию на достаточно сложные вещи, которую надо показывать кому-то, кто не смыслит в коде. К тому же, по моему опыту, он совсем не подходит на тестирование unit функционала, т.к. описывать что сделать, дольше, чем писать unit теста