Skip to content

7. Allure Reports

Daniil Shatukhin edited this page Apr 22, 2022 · 2 revisions

Что такое Allure

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)
            }
        }
    }
}

Строим отчет

  1. Нажимаем на вкладку Gradle в правом углу IDEA.

  1. Далее переходим по папкам следующим образом Tasks → other → downloadAllure

  1. После переходим в Tasks → verification → allureServe

  1. И в браузере откроется следующая страница с отчетами

Делаем отчеты доступнее

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

Для этого в 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();
    }

И в отчете появится скриншот:

Содержание
Командная строка
Кодировка 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

Clone this wiki locally