Разделы портала

Онлайн-тренинги

.
Утки становятся умнее — система управления тестами QuAck
15.01.2020 00:00

Оригинальная публикация

Автор: Азиз Намазов

Всем привет. Представляю выжимку-перевод из нескольких статей о системе управления тесткейсами QuAck. В кратком обзоре расскажу о новых возможностях, которые появились в последних релизах.

image



Пожалуй, из наиболее значимых изменений — возможность импортировать автотесты и результаты их выполнения, плагины, позволяющие запускать тесты где угодно, подсистема A-B тестирования интерфейсов, окружения и фильтр нестабильных тестов.

Но обо всём — по-порядку.


Импорт/Экспорт

Т.к. QuAck полностью построен на REST-API, имплементировать импорты не так уж и сложно. Не далее как пару недель назад вышел Import Maven Plugin github.com/greatbit/import-maven-plugin, который позволяет импортировать junit-тесты проекта в QuAck. Так же он умеет импортировать результаты junit-тестов в виде Test Launch. Немаловажный аспект — для импорта тестов не требуется модификация кода. Достаточно просто добавить плагин в свою сборку. Аналогично и с импортом результатов.

Launchers


image



QuAck позволяет запускать тесты где и как угодно. Для этого в нём есть понятие Launcher. Launcher-ы — это плагины, которые можно добавлять в систему, конфигурировать и использовать для делегирования запуска внешней системе. Например, непосредственно из QuAck можно запустить Launch, который автоматически уйдём на Jenkins или Bamboo, или любую другую систему выполнения. Любой может достаточно легко написать такой плагин под свою систему. Для этого нужно просто имплементировать 2 класса и включить их в сборку.

Для того, чтобы получить назад результаты выполнения, внешняя система должна уметь их импортировать в QuAck. Это не является уже большой проблемой, т.к. для этого начали появляться внешние тулы. Например, тот же Import Maven Plugin github.com/greatbit/import-maven-plugin.

Из коробки QuAck поставляется с CURL (просто послать запрос наружу) и Liken (далее — подробнее) ланчерами. Разработчики обещают бум разных ланчеров в ближайшем будущем, но ничто не мешает реализовать свой. Это, всё-таки, Open Source.

Liken


image



Любой тестер, который когда-либо проверял регрессию web ui знаком с такой процедурой. Открываем 2 вкладки в браузере, в одной вбиваем тестируемую бету, во второй — продакшн как эталон. Щёлкаем между вкладками и смотрим — где отличается. Достаточно монотонный, но эффективный способ моментально выявить регрессию.

Liken — небольшой сервис, который позволяет сэкономить немало времени и нервов на вышеописанной процедуре. В него можно загрузить пачку тестов, а Liken позволит переходить между ними в один клик, переключая продакшн(эталон) и тестовый стенд одной кнопочкой (или space bar-ом). Отпадает необходимость держать 2 вкладки, вводить в каждой из них ссылки, держать список тесткейсов где-то в стороне. Особенно этот сервис полезен для тестирования WEB-UI на мобильных устройствах, т.к. вбивать ссылки в тачскрин — то ещё удовольствие.

image



Из коробки в QuAck есть Liken Launcher. Он позволяет запускать тесты в Liken-е. В тестах должны быть описаны url-ы, которые будут использоваться. В ланчере конфигурируются параметры подмены хостов для тестинга и эталона (можно создать дефолтную настройку на уровне проекта).
Liken же, в свою очередь, в реальном времени возвращает результаты в Launch в QuAck-е.

Нестабильные тесты


image



Большую боль доставляют нестабильные или сломанные автотесты. Они маячат в отчётах красным цветом, раздражая тестировщиков попуще красной тряпки матадора для быка. Тесты приходится перепроверять вручную, а среди них легко может затеряться реальный баг.

QuAck предоставляет различные механизмы анализа тестов. Один из них — Heat Map тесткейсов. Фильтруем запуски, например, за пару месяцев, и смотрим Heat Map — какие тесты падают чаще всего и портят всю малину. Тут же эти тесты можно отключить, пометив сломанными. В последующих запусках такие тесты будут помечаться как Skipped. Автоматизаторы же, в свою очередь, могут отфильтровать сломанные тесты, починить и снова включить.

image



Тестовые окружения

Часто нужно пускать дин и тот же набор тестов в разных окружениях. Например, веб сервис в разных браузерах или десктопное приложение на системах с разными языковыми схемами. Делать отдельный запуск для каждого окружение — задача для терпеливых и очень уравновешенных людей. Т.к. в мире таких — единицы, QuAck предоставляет механизм Окружения для решения данной задачи.

При запуске тестов можно перечислить окружения, на которых нужно запустить тесты. Будет создано соответствующее количество запусков, объединённых в группу. Дефолтные окружения можно указать в настройках проекта, чтобы не вводить каждый раз весь список заново.

Инструмент здорово эволюционировал с момента моего предыдущего аналогичного поста. По словам разработчиков, впереди нас ждут ещё более крутые и полезные фишки. Так что, не вижу смысла не внедряться. Тем более, что QuAck — open source и абсолютно бесплатный.

Оригиналы статей
QuAck Launchers
Liken — UI AB-testing made easy
Unlucky to be Flaky

Обсудить в форуме