Skip to content

Allure TestOps Python

BohdanObruch edited this page Jul 1, 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.

При правильном указании данных в плагине, в Pycharm отобразиться сообщение Logged in as ....

Выбор проекта в плагине Allure Testops Support

Необходимо перейти в настройки(Settings) Pycharm в раздел Tools и кликнуть на стрелку в строке Allure TestOps Support. Кликнуть на таб Project Settings, в строке Project выбрать нужный проект из выпадающего списка. После выбора проекта, необходимо нажать на кнопку OK.

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

Пример кода теста:

def test_example():
    pass
    

После создания теста, необходимо в Pycharm кликнуть правой кнопкой мыши на тест и в выпадающем списке выбрать Allure TestOps: Imoprt test case.

В отобразившемся поп-апе Automate Test Case в строке Test Case ID необходимо указать ID ручного тест кейса (id ручного тест кейса который был создан ранее в Allure TestOps показан в блоке данной статьи Ручные тест кейсы). Остальные значения можно оставить по умолчанию и нажать на кнопку OK.

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

Как загрузить результаты прогона тестов в Allure TestOps после локального запуска тестов

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

После прогона тестов локально появляется папка allure-results, в которой находятся результаты прогона тестов. Для того чтобы загрузить результаты прогона тестов в Allure TestOps необходимо кликнуть правой кнопкой мыши на папку allure-results и в выпадающем списке выбрать Allure TestOps: Upload results.

В появившемся поп-апе Upload Results to Allure в строке Please provide a laungh name отображено дефолтное название для прогона тестов которое сгенерировано согласно дате и времени загрузки результатов. Если необходимо изменить название прогона, то необходимо ввести новое название. После этого нажать на кнопку OK.

После загрузки результатов прогона тестов в Allure TestOps, в Pycharm отобразиться сообщение We successfully uploaded 1 files in 1 seconds.

В Allure TestOps в разделе Launches отобразиться новый прогон тестов.

Если закрыть прогон Launches, то в разделе Test cases иконка ручного тест кейса(из которого был сгенерирован автоматический тест) изменится на иконку робота, что означает что тест кейс автоматизирован.

Как сравнить ручной и автоматизированный тест написанный с него

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

Для того чтобы сравнить ручной тест кейс и автоматизированный тест необходимо перейти в Allure TestOps в раздел Test cases. Найти ручной тест кейс который созданный ранее(описано в разделе Ручные тест кейсы) и кликнуть на его название.

В отобразившемся окне с ручным тест кейсом в строке Scenario кликнуть на иконку Compare scenario.

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

Как сделать rerun(повторный прогон) упавших тестов

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

Автоматический rerun

Для этого необходимо перейти в раздел Launches. Открыть прогон. На вкладке Tree отобразиться дерево тестов. В дереве тестов можно увидеть упавшие тесты(красным цветом). Отметить в чек боксе упавшие тесты и нажать на кнопку с файлом. Далее в выпадающем списке выбрать Rerun.

Важно! В списке будет отображаться Rerun только если прогон не закрыт.

Ручной rerun

Для этого необходимо перейти в раздел Launches. Открыть прогон. На вкладке Tree отобразиться дерево тестов. В дереве тестов можно увидеть упавшие тесты(красным цветом). Кликнуть на название упавшего теста и в отобразившемся окне кликнуть на кнопку Rerun manually.

Далее отобразиться в каждой строке с шагами теста две кнопки Fail(иконка крестика) и Pass(иконка галочки). Необходимо пройти по каждому шагу и выбрать Fail или Pass в зависимости от результата выполнения шага. После этого нажать на кнопку Fail или Pass в нижней строке.

Как запустить тесты в Allure TestOps

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

Для запуска тестов есть несколько способов:

  1. Запуск тестов из вкладки Test cases.

Для этого необходимо перейти на вкладку Test cases. Отметить тесты которые необходимо запустить и нажать на иконку с файлом. В выпадающем списке выбрать Run.

  1. Запуск тестов из вкладки Jobs.

Для этого необходимо перейти на вкладку Jobs. Кликнуть на иконку стрелки в строке с джобой. В отобразившимся поп-апе выбрать нужные тест кейсы отметив в чек боксах отметку(по умолчанию отмечены все), также если необходимо можно выбрать параметры для запуска тестов и же задать специальное название для прогона. После этого нажать на кнопку Submit.

По умолчанию название прогона будет сгенерировано автоматически( а именно как Launch at дата время).

Как завести дефект в Jira из Allure TestOps

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

Для того чтобы завести дефект в Jira из Allure TestOps необходимо:

  1. Для этого необходимо перейти в раздел Launches. Открыть прогон в котором упал тест.
  2. На вкладке Tree отобразиться дерево тестов. В дереве тестов можно увидеть упавшие тесты(красным цветом).
  3. Открыть упавший тест и в отобразившемся окне кликнуть на кнопку Link defect.

  1. Далее в отобразившимся поп-апе указать название дефекта и нажать Create название дефекта.

  1. В поп-апе Link defect указать Description. В блоке Issue нажать на кнопку Create issue. В отобразившихся полях указать данные для создания дефекта в Jira:
    • В строке Tracker выбрать интеграцию с Jira.
    • В строке Project выбрать проект в Jira.
    • В строке Issue type указать тип дефекта.
    • В строке Тема указать название дефекта которое будет отображено в Jira.

  1. Если данный дефект часто встречается, то можно создать шаблон для дефекта. Для этого необходимо в поп-апе Link defect в блоке Automation rule нажать на кнопку Create automation rule.

В отобразившихся полях указать данные для создания шаблона:

  • В строке Rule name указать название шаблона.
  • В строке Error message pattern указать шаблон для ошибки.
  • В строке Stack trace pattern указать шаблон для стека.

  1. Далее необходимо нажать на кнопку Link defect.

Созданный дефект отобразиться в нескольких местах:

  • В разделе Launches в прогоне в котором упал тест.

  • В разделе Launches где отображены все прогоны.

  • В разделе Defects.

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

Для этого необходимо в разделе Launches открыть прогон в котором упали тесты. На вкладке Tree отобразиться дерево тестов. В дереве тестов можно увидеть упавшие тесты(красным цветом). Указать в чек боксах тесты которые связаны с дефектом и нажать на кнопку с файлом. В выпадающем списке выбрать Link defect.

Далее в поп-апе указать название дефекта или же выбрать из списка и нажать Link defect.

Как добавить в Jira тикет тест кейс и прогоны из Allure TestOps

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

Добавление тест кейсов в Jira

Для того чтобы добавить тест кейс в Jira необходимо сделать шаги:

  1. Должна быть настроена интеграция с Jira(описано в разделе Как подключить интеграцию с Jira)
  2. Должны быть созданы/сгенерированы тест кейсы в Allure TestOps(описано в разделе Testcases(Тест-кейсы))
  3. Должен быть создан тикет в Jira.

Для того чтобы добавить тест кейс в Jira необходимо:

  • В TestOps перейти в раздел Test cases.

  • Поставить отметку в чек боксе у тест кейса который необходимо добавить в Jira.

  • Кликнуть на кнопку Bulk actions и в выпадающем списке выбрать Add issues.

  • В поп-апе Add issues кликнуть на выпадающий список в строке Issue Tracker и выбрать сервер школьного Jira.
  • Кликнуть на выпадающий список в строке Key и выбрать тикет в который необходимо добавить тест кейсы.

  • После выбора тикета он будет отображен в строке в поп-апе Add issues. Нажать на кнопку Submit.

  • Добавление тикета в Jira отобразиться в каждом тест кейсе при его раскрытии.

Добавление прогонов в Jira

Для того чтобы добавить тест кейс в Jira необходимо сделать шаги:

  1. Должна быть настроена интеграция с Jira(описано в разделе Как подключить интеграцию с Jira)
  2. Должны быть созданы/сгенерированы прогоны в Allure TestOps(описано в разделе Как подключить интеграцию и запуск джобы в Jenkins через Allure TestOps)
  3. Должен быть создан тикет в Jira.

Для того чтобы добавить прогон в Jira необходимо:

  • В TestOps перейти в раздел Launches.
  • В строке с прогоном который необходимо добавить в Jira кликнуть на кнопку три точки.

  • В отобразившемся выпадающем списке выбрать Link to an issue.

  • В поп-апе Link launch to issue кликнуть на выпадающий список в строке Issue Tracker и выбрать сервер школьного Jira.
  • Кликнуть на выпадающий список в строке Key и выбрать тикет в который необходимо добавить тест кейсы.

  • После выбора прогона он будет отображен в строке в поп-апе Link launch to issue. Нажать на кнопку Submit.

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

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