Skip to content

Allure TestOps Python

BohdanObruch edited this page Apr 28, 2024 · 8 revisions

Allure TestOps Python

Allure TestOps — это TMS(тест-менеджмент система) для автоматизированных тестов. Она позволяет хранить тест-кейсы, запускать тесты и смотреть результаты их выполнения. Allure TestOps позволяет интегрироваться с различными фреймворками, такими как JUnit, TestNG, PyTest и интегрироваться с CI/CD системами, такими как Jenkins, TeamCity и другими. А также взаимодействовать с различными системами управления задачами, такими как Jira, Trello и другими.

Репозиторий с примером проекта можно найти тут.

Интеграция Jenkins и Allure TestOps

Нажать, чтобы раскрыть

Пример реализации самой простой "джобы" в jenkins с Allure TestOps:

  1. Параметризованная сборка с параметрами ENDPOINT и BROWSER, и значением по умолчанию https://testing.github.com и firefox

  1. Отметка в чек боксе Restrict where this project can be run и указание значения python позволяет запускать тесты только там, где установлен Python(данная настройка нужна, только если у вас есть отдельные ноды(агенты) на разных языках программирования и вы хотите запускать тесты на ноде с Python).

  1. В блоке Source Code Management выбрать Git, указываем URL репозитория и ветку.

  1. В блоке Build Environment выбрать Delete workspace before build starts (параметры очистки рабочего пространства). Это необходимо для того, чтобы перед каждым запуском тестов удалять старые файлы и не допускать их влияния на результаты тестирования.

  1. В блоке Build Steps указана команда запуска сборки тестов. Важно отметить, что в примере указано || true, это нужно для того, чтобы джоба не падала при возникновении ошибок в тестах.

  1. В блоке Post-build Actions указываем в разделе Allure Report путь до папки, по умолчанию allure-results.

Авторизация в Allure TestOps

Нажать, чтобы раскрыть

Для авторизации в Allure TestOps необходимо ввести логин и пароль которые представлены в уроке. Регистрироваться самому НЕ НУЖНО.

Добавляем Allure TestOps в jenkins джобу

Нажать, чтобы раскрыть
  1. Если не нужно отображение результатов прогона в Allure Results, то указываем отметку в чек боксе Disabled в разделе Allure Report.

  1. В блоке Build Environment указываем отметку в чек боксе Allure: upload results

  1. В отобразившимся блоке Allure TestOps необходимо указать данные, а именно:

    • В строке Server в выпадающем списке выбираем allure-server
    • В строке Project в выпадающем списке выбираем название проекта, который был создан ранее, и к которому можно подключиться через Allure TestOps(отображение проекта в данном выпадающем списке описано ниже в разделе Добавляем отображение проекта Allure TestOps в jenkins джобе)
    • В строке Launch Name оставляем значение по умолчанию ${JOB_NAME} - #${BUILD_NUMBER}
    • В строке Launch tags можно указать теги для прогона (это не обязательно)
    • В блоке Results кликаем на кнопку Add results и на таб Results. В отобразившемся блоке в строке Path указываем путь до папки с результатами тестов, по умолчанию allure-results.
  2. Сохраняем изменения(кнопка Save).

Добавляем отображение проекта Allure TestOps в jenkins джобе

Нажать, чтобы раскрыть
  1. Создаем проект в Allure TestOps. Для этого переходим в Allure TestOps и авторизируемся
  2. На главной странице с Projects нажимаем на кнопку Create new project

  1. В отобразившимся попапе заполняем данные:
    • В поле Name указываем название проекта
    • В поле Description указываем описание проекта (не обязательно)
    • Указываем отметку в чек боксе Public если хотим чтобы проект был доступен всем пользователям
    • Нажимаем на кнопку Submit

  1. В созданном проекте нажимаем на иконку шестеренки для перехода в настройки проекта.

  1. В настройках переходим на таб Access

  • В блоке Outside Collaborators необходимо кликнуть на иконку +

  • В отобразившемся попапе Add collaborator в выпадающем списке Select a collaborator to grant permissions to необходимо выбрать jenkins_agent_service_acc. А в выпадающем списке Permission Set выбрать Project Write.

  • Нажимаем на кнопку Submit

Конечный результат должен выглядеть так:

Как подключить интеграцию и запуск джобы в Jenkins через Allure TestOps

Нажать, чтобы раскрыть
  1. Для того чтобы джобу можно было запускать через Allure TestOps, необходимо в настройках проекта добавить интеграцию с Jenkins.
    • Переходим в настройки проекта на таб Integrations.
    • На странице Integrations в строке с названием Jenkins нажимаем на кнопку Add integration.

  • В отобразившемся попапе Add Jenkins integration to project заполняем данные:
    • В строке Username указываем юзернейм пользователя Jenkins
    • В строке API token указываем токен к аккаунту Jenkins
    • Нажимаем на кнопку Test connection и проверяем что все данные введены верно. Если всё верно указано, то отобразиться сообщение Connection established
    • Нажимаем на кнопку Add integration

После добавления интеграции с Jenkins, в блоке Added integrations отобразиться информация о добавленной интеграции.

  1. После запуска джобы из Jenkins, джоба отобразиться в allure testops. Если необходимо настроить джобу, то нужно перейти в боковом меню на вкладку Jobs. Если в джобе есть параметризация и дефолтное значение для параметров не отображено в Allure TestOps, то необходимо в строке с джобой нажать на иконку со стрелками Update job и после обновления все параметры и их значения будут отображены.

  1. Если необходимо вручную добавить джобу в Allure TestOps, то необходимо перейти в боковом меню на вкладку Jobs и нажать на кнопку New job.

В отобразившемся попапе Create job заполняем данные:

  • Кликнув на строку Build server выбираем из выпадающего списка адрес школьного сервера.
  • Далее отображается дополнительное поле Job, и чек бокс Can run tests. Если необходимо запускать джобу через Allure TestOps, то необходимо отметить чек бокс Can run tests.
  • В строке Job кликаем на поле и из выпадающего списка ищем нужную джобу (данные в списке можно отфильтровать указав название джобы в строке поиска).
  • После добавления джобы отображается кнопка Add parameter, по клику на которую можно добавить параметры для джобы.
  • Нажимаем на кнопку Submit

После сохранения, джоба отобразится в списке джоб в Allure TestOps в блоке Jobs.

Как узнать свой Username в Jenkins

Для того чтобы узнать свой Username необходимо перейти в Jenkins.

  • Для отображения Username необходимо кликнуть в верхнем правом углу на свой профиль.
  • На вкладке Status можно увидеть User ID, это и есть ваш Username.

Как создать API token в Jenkins

Для того чтобы создать свой API token необходимо перейти в Jenkins.

  • В боковом меню выбираем Configure
  • В блоке API Token нажимаем на кнопку Add new Token

  • После, отобразиться поле ввода для ввода названия токена(имя может быть любым) и кнопка Generate. Вводим название токена и нажимаем на кнопку Generate.

  • Далее отобразиться токен, который необходимо скопировать и вставить в поле API token в Allure TestOps.

Как подключить интеграцию с Jira

Нажать, чтобы раскрыть
  1. Для того чтобы добавить интеграцию с Jira, необходимо:
    • Переходим в настройки проекта на таб Integrations.
    • На странице Integrations в строке с названием школьной Jira нажимаем на кнопку Add integration.

  • В отобразившемся попапе Add jira integration to project заполняем данные:
    • В строке Username указываем юзернейм пользователя Jira (данные отображены в уроке)
    • В строке Password указываем пароль к аккаунту Jira (данные отображены в уроке)
    • Нажимаем на кнопку Test connection и проверяем что все данные введены верно. Если всё верно указано, то отобразиться сообщение Connection established
    • Нажимаем на кнопку Add integration

После добавления интеграции с Jira, в блоке Added integrations отобразиться информация о добавленной интеграции.

Realtime reporting(Отчеты в режиме реального времени)

Нажать, чтобы раскрыть

Allure TestOps позволяет в реальном времени отслеживать результаты выполнения тестов. При этом можно видеть какие тесты были запущены, какие прошли успешно, а какие нет. Также можно видеть сколько времени занял прогон тестов и сколько времени занял каждый тест.

Пример отображения результатов тестов в Allure TestOps(общий результат прогона(он отображается если запустить прогон тестов в Jenkins)):

Пример отображения результатов тестов в Allure TestOps(подробное отображение по каждому тесту(шаги, скриншоты, логи, время выполнения и т.д.)):

Testcases(Тест-кейсы)

Нажать, чтобы раскрыть

Для того чтобы получить/сгенерировать тест-кейсы в Allure TestOps из прогонов тестов, то необходимо закрыть Launch.

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

Live documentation(Живая документация)

Нажать, чтобы раскрыть

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

Единая точка правды

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

Фильтрация тест кейсов

Нажать, чтобы раскрыть

Для отображения панели фильтрации тест кейсов необходимо нажать на кнопку Filter .

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

Пример фильтрации по тегам:

Как добавить отображение параметров запуска в Allure TestOps

Нажать, чтобы раскрыть

Для добавления параметров запуска в Allure TestOps необходимо перейти в настройки проекта Settings и перейти на таб Environment .

Далее на странице Environment schemas settings кликнуть на кнопку Create.

В отобразившихся полях необходимо заполнить данные для добавления эндпоинта(где тестируется приложение(ссылка на сайт)):

  • В строке Mapping Key указываем название переменной параметра, к примеру ENDPOINT или URL(данные переменные должны совпадать с переменными в Jenkins)
  • В выпадающем списке Environment variable выбираем значение для переменной, к примеру HOST.
  • Кликаем на кнопку Submit

Для добавления других параметров запуска необходимо повторить действия для каждого параметра. К примеру для добавления параметра BROWSER:

  • В строке Mapping Key указываем название переменной параметра, к примеру BROWSER.
  • В выпадающем списке Environment variable выбираем значение для переменной, к примеру Browser.
  • Кликаем на кнопку Submit

Пример добавления отображения параметров запуска в Allure TestOps:

Если необходимо добавить другие параметры, к примеру Custom Fields, Test Layers или Tree, то необходимо повторить подобные действия как описаны ранее для добавления параметров.

К примеру в блоке Test Layers можно добавить разметку для указания какие тесты относятся к какому слою тестирования(например UI, API, Integration и т.д.).

Ручные тест кейсы

Нажать, чтобы раскрыть

Для добавления/создания ручных тест кейсов необходимо в боковом меню перейти на вкладку Test cases. И в строке с подсказкой для ввода(плейсхолдер) Add a new test case ввести название тест кейса и нажать на кнопку Enter.

Добавленный ручной тест кейс отобразится в списке тест кейсов с иконкой руки, при наведении на которую отображается текст manual. Автоматизированные тест кейсы отображаются с иконкой в виде робота, при наведении на которую отображается текст automated.

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

Если необходимо сделать шаг в шаге, то необходимо в строке с шагом нажать на иконку три точки и выбрать Indent.

После добавления шагов необходимо нажать на кнопку Submit.

Как перенести ручной тест в код и работа с плагином Allure TestOps Support

Нажать, чтобы раскрыть

После создания ручного тест кейса, можно перенести его в код. Для этого необходимо для начала установить плагин Allure TestOps Support.

Далее необходимо перейти в настройки(Settings) Pycharm в раздел Tools и кликнуть на Allure TestOps Support. В отобразившемся окне в блоке Connection в строке Endpoint указать адрес сервера Allure TestOps(урл адрес школьного сервера), а в строке Token указать токен к аккаунту Allure TestOps.

Создание токена для плагина Allure TestOps Support

Для создания токена для плагина Allure TestOps Support необходимо перейти в Allure TestOps и авторизоваться.

  • В нижней части страницы кликнуть на иконку пользователя и в выпадающем списке выбрать Your profile.

  • На открывшейся странице в блоке API tokens! проскролить до кнопки Create и кликнуть на неё.

  • В отобразившемся попапе в строке Name указать название токена(название может быть любым). После этого кликнуть на кнопку Submit.

  • После создания токена, необходимо скопировать его и вставить в поле Token в Pycharm.

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