ru:https://highload.today/blogs/kak-allure-framework-pomogaet-mne-analizirovat-prohozhdenie-avtotestov/ ua:https://highload.today/uk/blogs/yak-allure-framework-dopomagaye-meni-analizuvati-prohodzhennya-avtotestiv/
logo
Автоматизация      19/09/2023

Как Allure Framework помогает мне анализировать прохождение автотестов

Вікторія Кирилова BLOG

QA Automation Engineer в NIX

Тестировщику-автоматизатору недостаточно настроить тесты. Не менее важно уметь их анализировать. И здесь пригодится Allure Framework. В этой статье я расскажу, почему это действительно хороший инструмент для анализа прохождения автотестов и на примерах объясню особенности его использования.

Что такое Allure Framework

Это достаточно гибкий инструмент для создания отчетов. Он дает много информации о прохождении тестов, чем упрощает анализ их результатов.

Allure Framework имеет несколько преимуществ:

  • Подробные сценарии выполнения тестов. Это позволяет создавать тесты, соответствующие особенностям проекта.
  • Агрегация тестов на основе тегов. Такой функционал упрощает работу по аналитике и поиск нужной информации.
  • Широкие возможности интеграции. Allure Framework можно объединять с тестовыми фреймворками и использовать с разными языками программирования.
  • Автоматическое распределение дефектов тестов и продукта. Это позволяет уменьшить жизненный цикл багов.
  • Вариативность настроек. Предоставляет много средств для настройки под свои предпочтения.
  • Бесплатный фреймворк. Это, пожалуй, одно из самых главных достоинств на фоне многих платных фреймворков и других инструментов по подписке.

Allure универсален — он поддерживает работу с Jasmine, JUnit, Spock, TestNG и другими фреймворками, список которых постоянно пополняется. Но в рамках статьи я ограничусь примерами из JUnit 4, как одного из самых популярных.

Курс-професія "Motion Designer" від Skvot.
55 занять, щоб освоїти софти After Effects, Cinema 4D та Octane Render — і почати створювати 2D- та 3D-анімації.А після — стартувати в будь-якій індустрії: від ТБ та кіно — до ІТ.
Детальніше про навчання

В чем польза использования Allure

Работа с фреймворком начинается практически после формирования отчета. После его подготовки вы получите понятный HTML-документ, которым при необходимости можно поделиться с коллегами. Этот файл дает четкую общую картину того, какие функции уже охвачены, сколько тестов упало.

При этом вы можете исследовать другие детали: историю выполнения тестов, их распределение по категориям, информацию об окружающих, использованные инструменты и т.д.

У Allure доступен широкий выбор графиков. Например, можно скачать статус прохождения теста, чтобы узнать процент удачно выполненных тестов и соотношение фейлов или дефектов кода. Или другой пример – распределять тесты по категориям, скажем, на дефекты продукта и дефекты теста. Относительно последнего прописывать что-то дополнительно не нужно — Allure все сделает сам.

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

Как запустить Allure Framework

Для начала подключаем нужные зависимости и настраиваем плагин:

Следующий шаг – делаем прогон тестов, после которого в папке target появится папка allure-results. В ней будут размещаться созданные файлы с результатами тестов. А далее для получения отчета достаточно использовать команды allure:report:

Психологічний профорієнтаційний тест для IT-фахівців від Hillel IT School.
Пройдіть психологічний профорієнтаційний тест для IT-фахівців щоб дізнатися ваші сильні сторони, вподобання і інтереси і з'ясувати, яка IT-спеціальність вам підходить.
Пройти тест

Отчет можно сделать более простым и понятным или «апгрейдить» по своему вкусу. Для этого используйте инструкции:

  • Step – для выделения отдельных методов, как шагов. Это должно быть атомарное действие или проверка.
  • Attachment – ​​дополняет основную аннотацию и предоставляет дополнительную информацию. Если метод что-то возвращает, вы получите, например, скрин или возвращаемый текст. Поэтому не нужно проверять код или разбираться, где и что лежит на сайте. Все отобразится в отчете.
  • DisplayName и Description помогают делать тесты более уникальными. Согласитесь, не удобно, когда у тестов схожие названия каждого метода. С помощью инструкции DisplayName можно предоставить каждому тесту удобное и понятное имя. А Description позволит кратко описать тест: что вы ожидаете в результате, какие данные вводятся.
  • Story и Feature – разделяют тесты по функционалу или пользователю страницы.

Как настроить Allure

Для подключения фреймворка используются соответствующие зависимости.

В этом примере мне также понадобился отдельно настроенный плагин, чтобы не приходилось загружать дополнительные файлы. Это можно сделать в Maven.

Онлайн-курс "SMM-спеціаліст" від Laba.
Від аналізу аудиторії та створення живого контенту — до побудови комʼюніті навколо бренду в соцмережах.Під менторством Senior SMM Specialist в Uklon.
Дізнатись більше

На этом шаге у меня произошла любопытная ошибка. Maven не видел Allure, которое я загружала в проект. Вместо него сборщик загружал другой, указанный по дефолту. Так могло быть из-за неправильно добавленных зависимостей. Но у меня ситуация иная, потому я и нашла довольно оригинальное решение.

Благодаря этому плагин видит нужную версию и источник загрузки. Как вы можете увидеть на иллюстрации ниже, в структуре проекта нет Allure. Но после запуска allure:report он сам его загрузит и сформирует отчет:

Переходим к аннотациям. DisplayName, расположенная перед классом, будет указывать на название отдельного сьюта. Это поможет быстрее сформулировать класс или сгруппировать классы по одному сьюту. Аннотация Feature сформирует его по отдельному функционалу:

Также есть аннотация DisplayName для отдельного тестового метода, благодаря которой все тесты будут носить уникальное название. Это дополняет описание того, что мы хотим или не хотим видеть и группировка по User Story.

Существуют и другие аннотации в методах, которые что-либо проверяют или возвращают. Например, я использовала Step и Attachment. Первая инструкция необходима для разделения шагов, выполняющих тест, и фиксации этого в отчете. Вторая — применяется там, где я что-то возвращаю. В приведенном примере возвращается текст в отчете:

Курс QA Manual (Тестування ПЗ мануальне) від Powercode academy.
Навчіться знаходити помилки та контролювати якість сайтів та додатків.
Записатися на курс

После такой подготовки можно запустить процесс.

Однако хочу акцентировать внимание на другом. Здесь есть папка allure-results , где находятся результаты прохождения тестов и отдельные файлы, в которые мы вернули необходимые данные.

Сразу после прохождения тестов можно не заметить папки из Allure. Поэтому нужно скачать его с помощью команды allure:report.

Поначалу Maven пытается найти Allure, но после неудачной попытки переходит к загрузке.

Англійська для початківців від Englishdom.
Для тих, хто тільки починає вивчати англійську і хоче вміти використовувати базову лексику і граматику.
Реєстрація на курс

В результате появляется папка с необходимой именно нам версией фреймворка.

Далее — переходим в папку site, в которой находится нужный файл:

Формируем отчет в Allure Report

Открываем файл и видим общую информацию: о наличии трех тест-кейсов; о том, что они прошли хорошо, что есть разделение по сьюту.

Также здесь можно узнать наличие степов. К примеру, если в нашем тесте был один Step, то он один и будет отображаться. Видим и Attachment, который мы получили в этом тесте.

Онлайн-курс "HR-менеджер" від Laba.
Оновитіть HR-стратегію, оптимізуйте HR-процеси та прокачайте бренд роботодавця.Досвід та особистий фідбек від експертів HR-сфери.Курс схвалено HRCI, містить 80% практики.
Детальніше про навчання

Также есть графики, которые показывают, что все прошло хорошо. Критичность тестов нормальна:

Кроме этого, можно узнать, сколько времени потрачено на прохождение теста. В нашем случае два теста прошли примерно через секунду.

Один тест длился три секунды.

То же можно увидеть на вкладке Timeline. Тесты запускались последовательно, потому это оформлено как прямая линия. Но если бы был параллельный запуск, вид графика был бы иным. Как видите, первый тест длился дольше всего.

А два других прошли быстрее.

Онлайн-курс "Ціноутворення для виробників та ритейлу" від Laba.
Масштабуйте бізнес, незалежно від конкурентів, завдяки оптимізації стратегії ціноутворення.Досвід та фідбек від Senior Product Manager Pricing Platform у Zalando.
Детальніше про курс

В разделе Behaviors есть разделения по Feature и User Story. Я указывала отдельно одну строчку на два теста и другую строчку на третью — чтобы наглядно показать, как фреймворк их разделяет. Но если бы я указывала другой класс с той же Feature Annotation , здесь был бы еще один класс, но с другой User Story.

Обратите внимание: в блоке Trend – пусто. Это логично на данном этапе. Сам по себе Trend показывает график выполнения тестов, их историю. Для заполнения блока и формирования тренда нужно пройти несколько шагов. Для автоматизации этого процесса я разработала небольшой скрипт, о котором расскажу немного позже.

Общая же идея проста: в target формируется папка site, открывающая отчеты. А в ней располагается папка history, которая и будет основой для Trend.

Для того чтобы сформировать тренд не пустым, нужно пересобрать отчет. Он формируется на основе allure-results. Как можно увидеть на иллюстрации, здесь нет ни одной history, потому и Trend пуст.

Следует просто перенести сюда нужную папку.

Практичний інтенсивний курс з дизайну - Design Booster від Powercode academy.
Навчіться дизайну з нуля за 3 місяці і заробляйте перші $1000, навіть якщо ви не маєте креативного мислення, смаку або вміння малювати. Отримайте практичні навички, необхідні для успішної кар'єри в дизайні.
Зарееструватися

Она будет сохраняться, а мы сможем сформировать отчет заново.

И получим заполненный Trend.

Как Allure работает с ошибками в тестах

Но давайте честно: наш отчет неинтересен! Все зеленое, ничего не сломалось, информации мало. Надо что-нибудь сломать. При этом для демонстрации распределения по категориям я создала бы сразу две проблемы. К примеру, один тест будет искать текст, которого нет на странице:

Другой тест попытается обратиться к неправильному локатору:

Как отмечалось выше, можете автоматизировать создание трендов. Для этого я написала скрипт. Когда тесты пройдут и появится сообщение о проблемах, этот скрипт автоматически перенесет history папку в нужное место.

Курс Python розробки від Mate academy.
Вже через 7 місяців ви можете заробляти як Python-спеціаліст. Курс допоможе вам отримати усі необхідні навички, щоб стати профі, якого чекають на ринку праці. Після його завершення ми допомагаємо з працевлаштуванням. .
Отримати деталі про курс

Теперь при обнаружении ошибок в отчете уже гораздо интереснее:

В общей информации сообщается о трех тест-кейсах и трех различных результатах. Один тест упал, один — прошел нормально, последний — сломан.

Много изменений во вкладке Trend. Здесь показано разделение с количеством запусков и графиком падения тестов.

Разделение по сьютам также сигнализирует о проблемах. Здесь говорится о сломанном тесте — том, который не смог найти нужный элемент.

Онлайн-курс "Advanced Excel" від Laba.
22 практичних заняття про просунуті інструменти обробки даних.Автоматизуйте, оптимізуйте — та звільніть час для пріоритетних завдань.
Детальніше про курс

Есть также тест, который упал, потому что не нашел соответствующего текста.

Больше информации теперь имеется и в графиках:

Видим распределение по категориям. Как видно дальше, в одном тесте был дефект продукта, в другом — дефект самого теста.

Также есть тренд со временем прохождения всех тестов, а не каждого в отдельности. Из этого можно заключить: первый запуск длился чуть более 6 секунд, а второй — почти 6 секунд.

Критичность является нормальной, потому что не было указано дополнительной информации.

Курс Project Manager від Powercode academy.
Онлайн-курс Project Manager. З нуля за 3,5 місяці до нової позиції Без знання коду, англійської та стресу.
Зарееструватися

В таймлайне указано, что один запуск состоялся 5 минут назад, а другой — только что. Теперь можно узнавать, когда именно что-то пошло не так.

Чтобы сравнение было максимально полным, можно починить все проблемы и заново запустить тесты. Теперь в отчете все прошло хорошо. При этом на графиках видно, что в одном запуске все сломалось, но в последнем снова все в норме.

Также можно обратиться к истории отдельных тестов, где показаны все изменения: нормальное прохождение тестов, выявление проблемы и снова все ОК.

Аналогичные данные есть и о перезапусках, и их результатах.

Такая же картинка и в другом блоке: прохождение, падение, снова прохождение. Видим еще и уровень успеваемости тестов: 3 из 4. И это всего лишь часть возможностей Allure. Вы можете гибко настраивать инструмент под себя и добавлять больше аннотаций, чтобы получать нужную вам информацию.

Как интегрировать Allure с Jenkins

После интеграции этих инструментов в меню Jenkins появится кнопку Allure Report. Она вызывает именно тот отчет, который показан выше.

Allure реализован как плагин: достаточно найти его, скачать и установить:

Далее в конфигурациях Jenkins отрегулируйте Commandline. При желании можете указать, откуда должен загружаться Commandline. Хотя и так все должно работать корректно.

После этого в проекте в Post Build Actions нужно настроить и собрать Allure Report.

Тогда увидите Trend и кнопку Allure Report для открытия отчета.

И, наконец, результаты тестов можно получать непосредственно в Jenkins.

Когда откроете отчет, там будет собрана вся нужная вам информация:

При работе с Allure Framework внимательно следите за соответствием версий. У меня с этим было много проблем. Если какая-либо версия плагина не сочетается с Allure, ничего не будет работать. Поэтому при возникновении проблем попробуйте, прежде всего, обновить или откатить назад версию плагина.

В случае любых вопросов по работе Allure Framework советую обращаться к двум основным источникам:

  • Официальная документация
  • Репозиторий на Github. Здесь вы можете пообщаться с разработчиками фреймворка или читать как другие пользователи решали те или иные проблемы. Уверена, с Allure Framework вы всегда найдете оптимальное решение.

If you have found a spelling error, please, notify us by selecting that text and pressing Ctrl+Enter.

Онлайн-курс "Web Scraping" від robot_dreams.
Навчіться парсити дані з будь-якого вебресурсу, не зважаючи на блокери та обмеження інформації — за 11 занять з ментором, який має 7+ років досвіду у Web Scraping.
Детальніше про курс

Этот материал – не редакционный, это – личное мнение его автора. Редакция может не разделять это мнение.

Ваша жалоба отправлена модератору

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: