Как посмотреть allure отчет python

Подключение Allure-репортера к произвольному тест-фреймворку на python

Автоматизация нуждается в человекочитаемых отчетах о тестировании — что тестировалось, какими тестовыми шагами, с каким результатом. Для этого существует система генерации отчетов Allure.

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

Как подключить Allure в любой произвольный фреймворк или не фреймворк вовсе?

Использование Allure состоит из двух независимых шагов:

Генерация json-ов содержащих все действия теста, так называемые allure-results.

Генерация отчета по собранным результатам (требует java8 и установки утилиты allure:https://bintray.com/qameta/generic/allure2). Этот пункт одинаков для всех типов фреймворков за счет того, что allure-results это достаточно универсальное описание тестов:

Написание полноценного адаптера для allure и интеграция его в произвольный фреймворк несколько трудоемко, поэтому воспользуемся минимально возможным набором действий, чтобы лишь проиллюстрировать идею. Код ниже — это python адаптация идей изложенных в докладе про allure-lifecycle на Java, оригинал.

Установим только ядро allure-репортера:

Напишем простой тест генерирующий allure-results:

После запуска данный код сформирует результаты в папке «reports»

Как видно код по работе с тестовым шагом(start_step и stop_step) прекрасно подходит под паттерн декоратор и должeн быть им реализован.

Расставьте данные блоки кода по своему тест-фреймворку и соберите фейковые тесты с результатами ручного тестирования, выполните генерацию allure generate и вы получите готовое решение по унификации отчетов отдела.

Источник

Русские Блоги

Подробное использование allure pytest-allure-poco

Введение в очарование

Версия Python и необходимые библиотеки или инструменты

allure-pytest 2.6.1 (Примечание: не используйте pytest-allure-adapter здесь и наступайте на яму. При использовании pytest-allure-adapter из-за некоторых проблем совместимости обнаруживается, что только pytest3.7.0 может соответствовать alllure2.0. Но pytest3.7.0 Багов много)

инструмент командного инструмента # Используется для создания красивых отчетов

brew tap qatools/formulas

brew install allure-commandline

Features

1. название дела

Заголовок варианта использования можно настроить, а заголовок по умолчанию соответствует имени функции.

2. Описание

Можно добавить подробное описание теста, чтобы предоставить читателю отчета столько контекста, сколько необходимо.

Двумя способами: @ allure.description предоставляет декоратор, описывающий строку

@ Allure.description_html Добавьте HTML-код в описательную часть тестового примера (для изучения)

3. Этикетка

Этот ярлык очень прост в использовании

@ Allure.feature Сгруппировать первый слой

@ Allure.story Группировка второго слоя

@ Allure.severity Отметьте уровень серьезности

Применение 1. Отметка случая с помощью @ allure.feature @ allure.story может сделать отображение случая в отчете более многослойным.

Результаты бега следующие:

Использование 2: @ allure.story @ allure.feature также можно использовать для указания выполняемого набора case

Результаты выполнения следующие:

Результаты выполнения следующие:

4. Шаг Шаг Добавьте некоторые описания к соответствующему случаю в отчете, чтобы представить более подробные шаги операции.

@ Allure.step (‘Вот описание шагов операции: получить параметр один: «<0>«, получить параметр два: «<1>» ’)

Украсить соответствующий футляр

Результаты выполнения следующие:

5. Параметризация

Параметры, необходимые для дела, могут быть отображены в отчете для облегчения отслеживания проблем.

Результаты выполнения следующие:

6 аксессуаров

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

allure.attach(body, name, attachment_type, extension)

Источник

Русские Блоги

Allure Test Report
Структура отчета о тестировании, которая не только выглядит красиво, но и облегчает интеграцию CI.

1. Конфигурация среды

Установите Python-зависимые библиотеки:
pip3 install pytest
pip3 install pytest-allure-adaptor

Установите Command Tool:
brew tap qatools/formulas
brew install allure-commandline

Во-вторых, создать команду отчета HTML
1. Добавьте –alluredir к команде pytest для генерации xml-отчета.

После того, как вариант использования будет завершен, он будет [xml_report_path] Куча файлов создается в каталоге xml Файл отчета, конечно, это не тот эстетический отчет, который нам нужен в конечном итоге.

2. Вам нужно использовать Command Tool для создания прекрасных отчетов, которые нам нужны.

Откройте index.html, отчет о ситуации, написанный ранее, будет представлен вам следующим образом:

Замечания: Откройте отчет напрямую в браузере Chrome, отчет может быть пустой страницей.
Решение:
1. Щелкните правой кнопкой мыши index.html в pycharm и выберите «Открыть в браузере».
2. Используйте Firefox, чтобы напрямую открыть index.html.

3. Индивидуальный отчет

Особенность: аннотировать основные функциональные модули
Story: аннотируйте функцию ветвления в функциональном модуле функций
Серьезность: отметьте уровень важности контрольных примеров
Шаг: важные шаги для пометки контрольных примеров
Issue and TestCase: пометьте Issue and Case, вы можете добавить URL

1. Подробная настройка функций

Добавьте функцию, отчет показан на рисунке ниже:

2. Подробная настройка истории

Добавьте историю, и отчет будет показан на рисунке ниже:

3. Используйте заголовок и настройку описания варианта использования.

Добавьте заголовок варианта использования и описание варианта использования. Отчет показан на рисунке ниже:

4. Подробное объяснение настройки серьезности

Определение степени тяжести в Allure:
1. Уровень блокировки: дефект прерывания (клиентская программа не отвечает и не может выполнить следующую операцию)
2. Критический уровень: критический дефект (отсутствует функциональная точка)
3. Нормальный уровень: общий дефект (ошибка численного расчета)
4. Незначительный уровень: незначительные дефекты (ошибка интерфейса не соответствует требованиям интерфейса)
5. Тривиальный уровень: незначительные дефекты (нет подсказок для обязательных элементов или нестандартных подсказок)

Добавьте серьезность, отчет показан на рисунке ниже:

5. Шаг настройки

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

6. Подробная настройка Issue и TestCase

Добавьте Issue и TestCase, отчет показан на рисунке ниже:

8. Подробное объяснение настройки прикрепления

Добавьте приложения к отчету: allure.attach («arg1», «arg2», «arg3»):
arg1: имя вложения, отображаемого в отчете
arg2: указывает на содержание вложения
arg3: указывает добавленный тип (поддержка: HTML, JPG, PNG, JSON, OTHER, TEXTXML)

Добавьте параметр attach, отчет показан ниже:

Читайте также:  код больничного по уходу за ребенком до 7 лет

Источник

Тесты на pytest с генерацией отчетов в Allure с использованием Docker и Gitlab Pages и частично selenium

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

Когда я хотел добавить в gitlab автотесты в стеке python, allure, docker, то я выяснил, что толковых статей на эту тему нет. Пришлось разбираться самостоятельно и как результат проб и ошибок появилась эта статья, которая скорее является гайдом, частично затрагивающим написание тестов, но наибольший фокус именно на выстраивании инфраструктуры. Если у вас уже написаны тесты на allure, то вы сразу можете переходить к разделу настройки инфраструктуры. Отмечу, что текст НЕ затрагивает написание UI тестов, но я затрону инфраструктуру для них в отдельном блоке.

Здесь не описаны лучшие практики по написанию тестов и выстраиванию инфраструктуры. Скорее ознакомление с тем, как можно все это организовать. Примеры выполнены на windows, на других системах подход примерно такой же.

Этот гайд предполагает, что у вас уже установлен python, настроен пустой репозиторий, куда вы будете отправлять свой код. При чтении статьи не обязательно знать pytest, но очень желательно знать что из себя представляет фикстура, как ей пользоваться, а так же параметризация тестов. Для тестирования будет использован Dog API. Если вас интересует локальный запуск тестов через gitlab, то вам необходимо установить docker.

Если у вас не установлено вышеперечисленное ПО, то ниже вы можете найти полезные ссылки:

Содержание

Подготовка к написанию тестов

Я назвал свой репозиторий для этой статьи allure_pages и скопировал его на свой компьютер.

Нужно создать такую структуру в директории с репозиторием:

Далее создаем виртуальное окружение, которое будет использоваться для локального запуска тестов. В папке с проектом создаем его через командную строку с помощью следующей команды:

Открываем папку с репозиторием как проект в PyCharm

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

Устанавливаем нужные пакеты для наших тестов в виртуальном окружении:

Для этого введите в терминал следующие команды.

Файл requirements.txt нам понадобится для запуска тестов внутри докер контейнера.

Написание фикстуры и небольшого клиента для API тестов

Для того, чтобы упростить наши тесты создадим небольшой клиент для GET и POST запросов. Далее будет подробное описание этого клиента. Если вам это не нужно или кажется сложным, то пропустите эту часть статьи и переходите к следующей. На примере её использования станет ясно как пользоваться клиентом.

Сама фикстура

Добавим в класс метод GET для отправки запросов.

Добавим в класс метод POST. Его логика идентична, просто добавляется несколько аргументов, которые при желании можно заполнить данными.

В итоге у нас получается такой файл conftest.py:

Пишем тесты

В самом сервисе Dog API есть много разных запросов. Если у вас есть опыт в написании тестов, то можете самостоятельно написать несколько тестов. Так как акцент в этой статье заключается в постройке инфраструктуры для тестов, я не буду вдаваться в подробности тестов. Ранее я это сделал, чтобы мой код был более менее понятен. Несколько параметризованных тестов специально сломаны, чтобы показать как они будут показаны в отчете. Так выглядит мой файл с тестами test_dog_api.py

Добавляем allure в тесты

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

with allure.step(‘step 1’): — с помощью этого контекстного менеджера тело теста делится на шаги, понятные в отчете.
@allure.feature(‘Dog Api’) @allure.story(‘Send few requests’) — декораторы, с помощью которых сами тесты или тестовые наборы будут структурированы в отчете

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

Добавим в наш API клиент несколько allure шагов.

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

Сходным образом заполним шагами и декораторами остальные тесты. Финальный файл test_dog_api.py

Делаем инфраструктуру для тестов

Здесь есть несколько моментов, о которых стоит написать:

Если у вас нет docker desktop, то здесь инструкция как его заиметь.

Настройка репозитория

Здесь переходим по ссылке в пункте 1 и согласно инструкции ставим себе на компьютер Gitlab Runner. Далее в статье адаптация инструкции на русском.

Установка и настройка Gitlab Runner

Ниже инструкция, которую вы можете найти здесь. Можете пройтись по ней самостоятельно. Далее в тексте будет сделано все по инструкции.

Читайте также:  двери дарп 21 10и

С первыми тремя пунктами инструкции все понятно. Создаем папку, кладем в неё переименованный раннер и запускаем в директории powershell, то с четвертым и пятым пунктом могут возникнуть проблемы и недопонимание, если не потратить некоторое время на чтение документации. Далее простыми словами описаны шаги, которые нужно сделать, чтобы раннер заработал.

Я создал папку C:\gitlab_runners и сохранил туда скачанный для моей системы раннер, предварительно переименовав в gitlab-runner.exe

Как только вы справились с первыми тремя пунктами, то нужно сделать следующее:

Скрншот с выполнеными шагами

Наш раннер зарегистрирован, теперь его нужно запустить.

Проверить статус раннера можно так:
.\gitlab-runner.exe status

Запустите раннер с помощью:
.\gitlab-runner.exe run

Это означает, что у репозитория есть линк с раннером и он видит его статус. Осталось добавить чекбокс в раннере. Для этого нужно нажать на карандаш рядом с именем раннера в гитлабе.

Все хорошо, теперь можно перейти к пайплайну.

Первым делом нам нужно описать stages. Шаги пайплайна. Их будет 4. Каждый stage — отдельный job, который будет выполнять раннер.

Шаг первый. Testing

Шаг второй. history_copy

Шаг третий. reports

Шаг четвертый. deploy

Запуск тестов и просмотр отчета

Осталось отправить в репозиторий все необходимые файлы, а именно:

Отправляем и смотрим что получилось.


Получаем результат. Советую побродить по отчету и посмотреть результаты.

Сломаем несколько тестов, чтобы посмотреть, как будет отображаться история тестов. Затем подождем окончания пайплайна.

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

Видна динамика, количество упавших тестов и все остальное. Для просмотра подробностей по тестам рекомендую посмотреть отчет самостоятельно.

Настройка пайплайна для UI тестов

Так как нам нужно обращаться к контейнеру, который поднимет гитлаб по определенному url, то он каким-то образом назначает этому сервису url, по которому можно слать запросы. Логика здесь такая:

И теперь нужно изменить в фикстуре executor (по умолчанию используется chromedriver на вашей машине, но сейчас мы все это запускаем в контейнерах) для запуска ui тестов:

Для запуска моих тестов у меня получился такой job. Если добавить к нему три следующих job из примера с api тестами, то можно прогнать все тесты и получить отчет.

Полезные ссылки

Помимо ссылок в статье, хочется поделиться еще несколькими, которые немного разъяснять вам что такое allure и как писать gitlab ci.

Статья об allure на хабре
Введение в gitlab ci

Источник

Тесты на pytest с генерацией отчетов в Allure с использованием Docker и Gitlab Pages и частично selenium

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

Когда я хотел добавить в gitlab автотесты в стеке python, allure, docker, то я выяснил, что толковых статей на эту тему нет. Пришлось разбираться самостоятельно и как результат проб и ошибок появилась эта статья, которая скорее является гайдом, частично затрагивающим написание тестов, но наибольший фокус именно на выстраивании инфраструктуры. Если у вас уже написаны тесты на allure, то вы сразу можете переходить к разделу настройки инфраструктуры. Отмечу, что текст НЕ затрагивает написание UI тестов, но я затрону инфраструктуру для них в отдельном блоке.

Здесь не описаны лучшие практики по написанию тестов и выстраиванию инфраструктуры. Скорее ознакомление с тем, как можно все это организовать. Примеры выполнены на windows, на других системах подход примерно такой же.

Этот гайд предполагает, что у вас уже установлен python, настроен пустой репозиторий, куда вы будете отправлять свой код. При чтении статьи не обязательно знать pytest, но очень желательно знать что из себя представляет фикстура, как ей пользоваться, а так же параметризация тестов. Для тестирования будет использован Dog API. Если вас интересует локальный запуск тестов через gitlab, то вам необходимо установить docker.

Если у вас не установлено вышеперечисленное ПО, то ниже вы можете найти полезные ссылки:

Содержание

Подготовка к написанию тестов

Я назвал свой репозиторий для этой статьи allure_pages и скопировал его на свой компьютер.

Нужно создать такую структуру в директории с репозиторием:

Далее создаем виртуальное окружение, которое будет использоваться для локального запуска тестов. В папке с проектом создаем его через командную строку с помощью следующей команды:

Открываем папку с репозиторием как проект в PyCharm

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

Устанавливаем нужные пакеты для наших тестов в виртуальном окружении:

Для этого введите в терминал следующие команды.

Файл requirements.txt нам понадобится для запуска тестов внутри докер контейнера.

Если у вас возникла проблема с установкой пакетов, то можете воспользоваться такими зависимостями для requirements.txt

Написание фикстуры и небольшого клиента для API тестов

Для того, чтобы упростить наши тесты создадим небольшой клиент для GET и POST запросов. Далее будет подробное описание этого клиента. Если вам это не нужно или кажется сложным, то пропустите эту часть статьи и переходите к следующей. На примере её использования станет ясно как пользоваться клиентом.

Читайте также:  мерси на армянском что значит

Сама фикстура

Добавим в класс метод GET для отправки запросов.

Добавим в класс метод POST. Его логика идентична, просто добавляется несколько аргументов, которые при желании можно заполнить данными.

В итоге у нас получается такой файл conftest.py:

Пишем тесты

В самом сервисе Dog API есть много разных запросов. Если у вас есть опыт в написании тестов, то можете самостоятельно написать несколько тестов. Так как акцент в этой статье заключается в постройке инфраструктуры для тестов, я не буду вдаваться в подробности тестов. Ранее я это сделал, чтобы мой код был более менее понятен. Несколько параметризованных тестов специально сломаны, чтобы показать как они будут показаны в отчете. Так выглядит мой файл с тестами test_dog_api.py

Добавляем allure в тесты

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

with allure.step(‘step 1’): — с помощью этого контекстного менеджера тело теста делится на шаги, понятные в отчете.
@allure.feature(‘Dog Api’) @allure.story(‘Send few requests’) — декораторы, с помощью которых сами тесты или тестовые наборы будут структурированы в отчете

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

Добавим в наш API клиент несколько allure шагов.

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

Сходным образом заполним шагами и декораторами остальные тесты. Финальный файл test_dog_api.py

Делаем инфраструктуру для тестов

Здесь есть несколько моментов, о которых стоит написать:

Настройка репозитория

Сам репозиторий должен быть публичным, если вы используете gitlab.com. Если вы используете именно gitlab.com, то настраивать по тексту ниже не нужно. По умолчанию репозиторий уже будет готов ко всему, что нам понадобится для инфраструктуры.

Здесь переходим по ссылке в пункте 1 и согласно инструкции ставим себе на компьютер Gitlab Runner. Далее в статье адаптация инструкции на русском.

Установка и настройка Gitlab Runner

Ниже инструкция, которую вы можете найти здесь. Можете пройтись по ней самостоятельно. Далее в тексте будет сделано все по инструкции.

С первыми тремя пунктами инструкции все понятно. Создаем папку, кладем в неё переименованный раннер и запускаем в директории powershell, то с четвертым и пятым пунктом могут возникнуть проблемы и недопонимание, если не потратить некоторое время на чтение документации. Далее простыми словами описаны шаги, которые нужно сделать, чтобы раннер заработал.

Я создал папку C:\gitlab_runners и сохранил туда скачанный для моей системы раннер, предварительно переименовав в gitlab-runner.exe

Как только вы справились с первыми тремя пунктами, то нужно сделать следующее:

Скрншот с выполнеными шагами

Наш раннер зарегистрирован, теперь его нужно запустить.

Проверить статус раннера можно так:
.\gitlab-runner.exe status

Запустите раннер с помощью:
.\gitlab-runner.exe run

Это означает, что у репозитория есть линк с раннером и он видит его статус. Осталось добавить чекбокс в раннере. Для этого нужно нажать на карандаш рядом с именем раннера в гитлабе.

Все хорошо, теперь можно перейти к пайплайну.

Первым делом нам нужно описать stages. Шаги пайплайна. Их будет 4. Каждый stage — отдельный job, который будет выполнять раннер.

Шаг первый. Testing

Шаг второй. history_copy

Шаг третий. reports

Шаг четвертый. deploy

Запуск тестов и просмотр отчета

Осталось отправить в репозиторий все необходимые файлы, а именно:

Отправляем и смотрим что получилось.


Получаем результат. Советую побродить по отчету и посмотреть результаты.

Сломаем несколько тестов, чтобы посмотреть, как будет отображаться история тестов. Затем подождем окончания пайплайна.

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

Видна динамика, количество упавших тестов и все остальное. Для просмотра подробностей по тестам рекомендую посмотреть отчет самостоятельно.

Настройка пайплайна для UI тестов

Так как нам нужно обращаться к контейнеру, который поднимет гитлаб по определенному url, то он каким-то образом назначает этому сервису url, по которому можно слать запросы. Логика здесь такая:

И теперь нужно изменить в фикстуре executor (по умолчанию используется chromedriver на вашей машине, но сейчас мы все это запускаем в контейнерах) для запуска ui тестов:

Для запуска моих тестов у меня получился такой job. Если добавить к нему три следующих job из примера с api тестами, то можно прогнать все тесты и получить отчет.

Полезные ссылки

Помимо ссылок в статье, хочется поделиться еще несколькими, которые могут помочь в работе с allure и gitlab ci.

UPD: Спасибо комментаторам, за то, что указали мне на неточности и неполноту этого гайда. Я поправил и добавил ссылку на рабочий репозиторий

Источник

Обучающий онлайн портал