-
Notifications
You must be signed in to change notification settings - Fork 72
7. Allure Reports
Allure Framework — гибкий многоязычный инструмент для формирования отчетов о тестировании, который не только показывает результаты тестов, но и позволяет членам команды взаимодействовать с отчетами и получать из них необходимую информацию.
Ссылки:
Ссылки:
Сперва в gradle-файле необходимо перейти в раздел plugins
и указать следующее:
plugins {
id "io.qameta.allure" version "2.9.6"
}
Далее в том же gradle-файле указываем настройки и конфигурацию плагина следующим образом:
allure {
report {
version.set("2.17.3") //версия Allure Report (https://github.com/allure-framework/allure2)
}
adapter {
aspectjWeaver.set(true) // обработка аннотации @Step
frameworks {
junit5 {
adapterVersion.set("2.17.3") //версия Allure JUnit5 (https://github.com/allure-framework/allure-java)
}
}
}
}
- Нажимаем на вкладку Gradle в правом углу IDEA.
- Далее переходим по папкам следующим образом
Tasks → other → downloadAllure
- После переходим в
Tasks → verification → allureServe
- И в браузере откроется следующая страница с отчетами
Теперь на странице генерируются отчеты, но они не самые информативные и понятны. Поэтому сделаем их более организованными.
Для этого в gradle-файле перейдем в раздел dependencies
и добавим строку io.qameta.allure:allure-selenide:2.17.3
. А в теле теста добавим строку SelenideLogger.addListener("allure", new AllureSelenide());
. После этого запускаем тест, нажимаем на allureServe
и на странице теста увидим пошаговое выполнение кода, скриншоты и снапшоты страницы.
Мы можем более подробно и красиво оформить отчет с помощью «лямбда степов». Для этого надо каждый шаг теста завернуть в следующую конструкцию:
@Test
public void testName() {
SelenideLogger.addListener("allure", new AllureSelenide());
step("Открываем главную страницу", () -> {
open("https://github.com");
});
}
Проделав это с каждым шагом теста и снова сгенерировав тест, получим следующий результат:
Кроме «лямбда степов» существует подход написания кода в виде степов с аннотациями. В это случае каждый шаг теста оформляется в виде отдельного метода с аннотацией @Step
и отдельно вызывается в главном методе.
В отдельном классе создадим методы-шаги теста
public class WebSteps {
@Step("Открываем главную страницу")
public void openMainPage() {
open("https://github.com");
}
...
...
}
Далее в другом классе вызовем эти методы
@Test
public void testGithubIssue() {
SelenideLogger.addListener("allure", new AllureSelenide());
WebSteps steps = new WebSteps();
steps.openMainPage();
...
...
}
В итоге получим идентичный результат:
К шагу выполнения теста можно добавить аттачмент в виде снапшота страницы. Для этого необходимо добавить следующий код к телу шага теста.
Allure.getLifecycle().addAttachment(
"Исходники страницы",
"text/html",
"html",
WebDriverRunner.getWebDriver().getPageSource().getBytes(StandardCharsets.UTF_8)
);
В итоге получим следующий результат:
Можно добавлять не только снапшоты шагов, но и скриншоты. Реализовать это можно с помощью степов с аннотациями. Для этого в классе с методами-шагами надо создать еще один метод, который будет делать скриншот:
@Attachment(value = "Мой любимый скриншот", type = "image/png", fileExtension = "png")
public byte[] attachScreenshot() {
return ((TakesScreenshot)WebDriverRunner.getWebDriver()).getScreenshotAs(OutputType.BYTES);
}
Далее в этом же классе на необходимом шаге надо вызвать метод скриншота:
@Step("Проверяем что существует Issue с номером {number}")
public void shouldSeeIssueWithNumber(int number) {
$(withText("#" + number)).should(Condition.visible);
attachScreenshot();
}
И в отчете появится скриншот:
✔️ Сайт
✔️ Чат в Telegram
✔️ Канал в Telegarm
Содержание
Командная строка
Кодировка UTF-8 в Java
Список полезных книг для автоматизаторов тестирования на языке Java
Список полезных книг для автоматизаторов тестирования на языке Python
Структура проекта
Github README.md
Java:
1. Вводное занятие. Сразу к практике.
2. Git. GitHub. Погружаемся.
3. Погружаемся в инструментарий и библиотеки
4. Основы Java
5. Продолжаем разрабатывать автотесты. PageObjects
6. JUnit 5
7. Allure Reports
8. Работа с файлами
9. Selenide #1
10. Jenkins. Создаем первую задачу
11. Управляем параметрами в коде и в Jenkins
12. Отправляем уведомления о результатах прохождения автотестов
13. Учимся быстро разрабатывать проекты для тестовых заданий
14. Selenoid
15. Библиотека Owner
16. REST API. Пишем автотесты с Rest assured
17. REST API. Декомпозируем UI тесты. Подключаем отчетность
18. REST API. Продолжаем изучать
19. Мобильная автоматизация #1. Разрабатываем автотесты с Browserstack
20. Allure TestOps
21. Переезд на собственную инфраструктуру Java
Python:
1. Вводное занятие. Сразу к практике!
2. Погружаемся в инструментарий и библиотеки
3. Git. GitHub. Погружаемся.
4. Основы Python
5. Selene #1
6. Основы Python. Часть II
7. Основы Python. Часть III
8. Page Object
9. Allure Reports
10. Работаем с файлами Python
11. Jenkins. Создаем первую задачу и управляем параметрами Python
12. Телеграм бот. Отправляем уведомления о результатах прохождения тестов
13. Pytest
14. Selenoid
15. Pytest. Часть II
16. Venv, Poetry и управление зависимостями проекта
17. REST API. Часть I. Пишем автотесты с Requests
18. REST API. Часть II. Продолжаем изучать
19. Мобильная автоматизация #1. Разрабатываем автотесты с Browserstack
20. Мобильная автоматизация #2. Разрабатываем автотесты с эмулятором Android устройства
21. Allure TestOps
22. Переезд на собственную инфраструктуру Python