-
Notifications
You must be signed in to change notification settings - Fork 69
Allure TestOps Python
-
Allure TestOps Python
- Интеграция Jenkins и Allure TestOps
- Авторизация в Allure TestOps
- Добавляем Allure TestOps в jenkins джобу
- Добавляем отображение проекта Allure TestOps в jenkins джобе
- Как подключить интеграцию и запуск джобы в Jenkins через Allure TestOps
- Как подключить интеграцию с Jira
- Realtime reporting(Отчеты в режиме реального времени)
- Testcases(Тест-кейсы)
- Live documentation(Живая документация)
- Фильтрация тест кейсов
- Как добавить отображение параметров запуска в Allure TestOps
- Ручные тест кейсы
- Как перенести ручной тест в код и работа с плагином Allure TestOps Support
- Как загрузить результаты прогона тестов в Allure TestOps после локального запуска тестов
- Как сравнить ручной и автоматизированный тест написанный с него
- Как сделать rerun(повторный прогон) упавших тестов
- Как запустить тесты в Allure TestOps
- Как завести дефект в Jira из Allure TestOps
- Как добавить в Jira тикет тест кейс и прогоны из Allure TestOps
Allure TestOps — это TMS(тест-менеджмент система) для автоматизированных тестов. Она позволяет хранить тест-кейсы, запускать тесты и смотреть результаты их выполнения. Allure TestOps позволяет интегрироваться с различными фреймворками, такими как JUnit, TestNG, PyTest и интегрироваться с CI/CD системами, такими как Jenkins, TeamCity и другими. А также взаимодействовать с различными системами управления задачами, такими как Jira, Trello и другими.
Репозиторий с примером проекта можно найти тут.
Нажать, чтобы раскрыть
Пример реализации самой простой "джобы" в jenkins с Allure TestOps:
- Параметризованная сборка с параметрами
ENDPOINT
иBROWSER
, и значением по умолчаниюhttps://testing.github.com
иfirefox
- Отметка в чек боксе
Restrict where this project can be run
и указание значенияpython
позволяет запускать тесты только там, где установлен Python(данная настройка нужна, только если у вас есть отдельные ноды(агенты) на разных языках программирования и вы хотите запускать тесты на ноде с Python).
- В блоке
Source Code Management
выбратьGit
, указываем URL репозитория и ветку.
- В блоке
Build Environment
выбратьDelete workspace before build starts
(параметры очистки рабочего пространства). Это необходимо для того, чтобы перед каждым запуском тестов удалять старые файлы и не допускать их влияния на результаты тестирования.
- В блоке
Build Steps
указана команда запуска сборки тестов. Важно отметить, что в примере указано|| true
, это нужно для того, чтобы джоба не падала при возникновении ошибок в тестах.
- В блоке
Post-build Actions
указываем в разделеAllure Report
путь до папки, по умолчаниюallure-results
.
Нажать, чтобы раскрыть
Для авторизации в Allure TestOps необходимо ввести логин и пароль которые представлены в уроке. Регистрироваться самому НЕ НУЖНО.
Нажать, чтобы раскрыть
- Если не нужно отображение результатов прогона в Allure Results, то указываем отметку в чек боксе
Disabled
в разделеAllure Report
.
- В блоке
Build Environment
указываем отметку в чек боксеAllure: upload results
-
В отобразившимся блоке
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
.
- В строке
-
Сохраняем изменения(кнопка
Save
).
Нажать, чтобы раскрыть
- Создаем проект в Allure TestOps. Для этого переходим в Allure TestOps и авторизируемся
- На главной странице с
Projects
нажимаем на кнопкуCreate new project
- В отобразившимся попапе заполняем данные:
- В поле
Name
указываем название проекта - В поле
Description
указываем описание проекта (не обязательно) - Указываем отметку в чек боксе
Public
если хотим чтобы проект был доступен всем пользователям - Нажимаем на кнопку
Submit
- В поле
- В созданном проекте нажимаем на иконку шестеренки для перехода в настройки проекта.
- В настройках переходим на таб
Access
- В блоке
Outside Collaborators
необходимо кликнуть на иконку+
- В отобразившемся попапе
Add collaborator
в выпадающем спискеSelect a collaborator to grant permissions to
необходимо выбратьjenkins_agent_service_acc
. А в выпадающем спискеPermission Set
выбратьProject Write
.
- Нажимаем на кнопку
Submit
Конечный результат должен выглядеть так:
Нажать, чтобы раскрыть
- Для того чтобы джобу можно было запускать через 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
отобразиться информация о добавленной интеграции.
- После запуска джобы из Jenkins, джоба отобразиться в allure testops. Если необходимо настроить джобу, то нужно перейти в боковом меню на вкладку
Jobs
. Если в джобе есть параметризация и дефолтное значение для параметров не отображено в Allure TestOps, то необходимо в строке с джобой нажать на иконку со стрелкамиUpdate job
и после обновления все параметры и их значения будут отображены.
- Если необходимо вручную добавить джобу в 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
необходимо кликнуть в верхнем правом углу на свой профиль. - На вкладке
Status
можно увидетьUser ID
, это и есть вашUsername
.
Для того чтобы создать свой API token
необходимо перейти в Jenkins.
- В боковом меню выбираем
Configure
- В блоке
API Token
нажимаем на кнопкуAdd new Token
- После, отобразиться поле ввода для ввода названия токена(имя может быть любым) и кнопка
Generate
. Вводим название токена и нажимаем на кнопкуGenerate
.
- Далее отобразиться токен, который необходимо скопировать и вставить в поле
API token
в Allure TestOps.
Нажать, чтобы раскрыть
- Для того чтобы добавить интеграцию с Jira, необходимо:
- Переходим в настройки проекта на таб
Integrations
. - На странице
Integrations
в строке с названием школьнойJira
нажимаем на кнопкуAdd integration
.
- Переходим в настройки проекта на таб
- В отобразившемся попапе
Add jira integration to project
заполняем данные:- В строке
Username
указываем юзернейм пользователя Jira (данные отображены в уроке) - В строке
Password
указываем пароль к аккаунту Jira (данные отображены в уроке) - Нажимаем на кнопку
Test connection
и проверяем что все данные введены верно. Если всё верно указано, то отобразиться сообщениеConnection established
- Нажимаем на кнопку
Add integration
- В строке
После добавления интеграции с Jira, в блоке Added integrations
отобразиться информация о добавленной интеграции.
Нажать, чтобы раскрыть
Allure TestOps позволяет в реальном времени отслеживать результаты выполнения тестов. При этом можно видеть какие тесты были запущены, какие прошли успешно, а какие нет. Также можно видеть сколько времени занял прогон тестов и сколько времени занял каждый тест.
Пример отображения результатов тестов в Allure TestOps(общий результат прогона(он отображается если запустить прогон тестов в Jenkins)):
Пример отображения результатов тестов в Allure TestOps(подробное отображение по каждому тесту(шаги, скриншоты, логи, время выполнения и т.д.)):
Нажать, чтобы раскрыть
Для того чтобы получить/сгенерировать тест-кейсы в Allure TestOps из прогонов тестов, то необходимо закрыть Launch
.
После этого необходимо перейти в боковом меню на вкладку Test cases
. В данном разделе можно создавать тест-кейсы, редактировать их, удалять и просматривать.
Нажать, чтобы раскрыть
Если правильно разметить тесты, то можно получить живую документацию. Для этого необходимо в тестах использовать аннотации, которые позволяют описывать тесты. После этого в Allure TestOps можно увидеть документацию по тестам. При малейших изменениях в тестах, документация автоматически обновляется.
Единая точка правды это когда у всех членов команды есть доступ к актуальной информации. Если вы работаете с авто тестами, то единая точка правды это авто тесты. Все изменения в авто тестах отображаться в документации и таким образом все члены команды будут видеть актуальную информацию.
Нажать, чтобы раскрыть
Для отображения панели фильтрации тест кейсов необходимо нажать на кнопку Filter
.
После этого отобразиться панель фильтрации, в которой можно выбрать нужные фильтры для отображения тест кейсов.
Пример фильтрации по тегам:
Нажать, чтобы раскрыть
Для добавления параметров запуска в 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
.
Далее необходимо перейти в настройки(Settings) Pycharm в раздел Tools
и кликнуть на Allure TestOps Support
.
В отобразившемся окне в блоке Connection
в строке Endpoint
указать адрес сервера Allure TestOps(урл адрес школьного сервера), а в строке Token
указать токен к аккаунту Allure TestOps.
Для создания токена для плагина Allure TestOps Support необходимо перейти в Allure TestOps и авторизоваться.
- В нижней части страницы кликнуть на иконку пользователя и в выпадающем списке выбрать
Your profile
.
- На открывшейся странице в блоке
API tokens!
проскролить до кнопкиCreate
и кликнуть на неё.
- В отобразившемся попапе в строке
Name
указать название токена(название может быть любым). После этого кликнуть на кнопкуSubmit
.
- После создания токена, необходимо скопировать его и вставить в поле
Token
в Pycharm.
При правильном указании данных в плагине, в Pycharm отобразиться сообщение Logged in as ...
.
Необходимо перейти в настройки(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-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
.
После клика отображается поп-ап в котором можно сравнить ручной тест кейс и автоматизированный тест. Слева отображается ручной тест кейс, а справа автоматизированный тест.
Нажать, чтобы раскрыть
Для этого необходимо перейти в раздел Launches
. Открыть прогон.
На вкладке Tree
отобразиться дерево тестов. В дереве тестов можно увидеть упавшие тесты(красным цветом).
Отметить в чек боксе упавшие тесты и нажать на кнопку с файлом.
Далее в выпадающем списке выбрать Rerun
.
Важно! В списке будет отображаться
Rerun
только если прогон не закрыт.
Для этого необходимо перейти в раздел Launches
. Открыть прогон.
На вкладке Tree
отобразиться дерево тестов. В дереве тестов можно увидеть упавшие тесты(красным цветом).
Кликнуть на название упавшего теста и в отобразившемся окне кликнуть на кнопку Rerun manually
.
Далее отобразиться в каждой строке с шагами теста две кнопки Fail
(иконка крестика) и Pass
(иконка галочки).
Необходимо пройти по каждому шагу и выбрать Fail
или Pass
в зависимости от результата выполнения шага. После этого нажать на кнопку Fail
или Pass
в нижней строке.
Нажать, чтобы раскрыть
Для запуска тестов есть несколько способов:
- Запуск тестов из вкладки
Test cases
.
Для этого необходимо перейти на вкладку Test cases
. Отметить тесты которые необходимо запустить и нажать на иконку с файлом.
В выпадающем списке выбрать Run
.
- Запуск тестов из вкладки
Jobs
.
Для этого необходимо перейти на вкладку Jobs
.
Кликнуть на иконку стрелки в строке с джобой.
В отобразившимся поп-апе выбрать нужные тест кейсы отметив в чек боксах отметку(по умолчанию отмечены все), также если необходимо можно выбрать параметры для запуска тестов и же задать специальное название для прогона. После этого нажать на кнопку Submit
.
По умолчанию название прогона будет сгенерировано автоматически( а именно как Launch at дата время
).
Нажать, чтобы раскрыть
Для того чтобы завести дефект в Jira из Allure TestOps необходимо:
- Должна быть настроена интеграция с Jira(описано в разделе Как подключить интеграцию с Jira)
- Для этого необходимо перейти в раздел
Launches
. Открыть прогон в котором упал тест. - На вкладке
Tree
отобразиться дерево тестов. В дереве тестов можно увидеть упавшие тесты(красным цветом). - Открыть упавший тест и в отобразившемся окне кликнуть на кнопку
Link defect
.
- Далее в отобразившимся поп-апе указать название дефекта и нажать
Create название дефекта
.
- В поп-апе
Link defect
указатьDescription
. В блокеIssue
нажать на кнопкуCreate issue
. В отобразившихся полях указать данные для создания дефекта в Jira:- В строке
Tracker
выбрать интеграцию с Jira. - В строке
Project
выбрать проект в Jira. - В строке
Issue type
указать тип дефекта. - В строке
Тема
указать название дефекта которое будет отображено в Jira.
- В строке
- Если данный дефект часто встречается, то можно создать шаблон для дефекта.
Для этого необходимо в поп-апе
Link defect
в блокеAutomation rule
нажать на кнопкуCreate automation rule
.
В отобразившихся полях указать данные для создания шаблона:
- В строке
Rule name
указать название шаблона. - В строке
Error message pattern
указать шаблон для ошибки. - В строке
Stack trace pattern
указать шаблон для стека.
- Далее необходимо нажать на кнопку
Link defect
.
Созданный дефект отобразиться в нескольких местах:
- В разделе
Launches
в прогоне в котором упал тест.
- В разделе
Launches
где отображены все прогоны.
- В разделе
Defects
.
Если данный дефект связан с другими падениями тестов, то данный можно прилинковать с другими тестами.
Для этого необходимо в разделе Launches
открыть прогон в котором упали тесты.
На вкладке Tree
отобразиться дерево тестов. В дереве тестов можно увидеть упавшие тесты(красным цветом).
Указать в чек боксах тесты которые связаны с дефектом и нажать на кнопку с файлом.
В выпадающем списке выбрать Link defect
.
Далее в поп-апе указать название дефекта или же выбрать из списка и нажать Link defect
.
Нажать, чтобы раскрыть
Для того чтобы добавить тест кейс в Jira необходимо сделать шаги:
- Должна быть настроена интеграция с Jira(описано в разделе Как подключить интеграцию с Jira)
- Должны быть созданы/сгенерированы тест кейсы в Allure TestOps(описано в разделе Testcases(Тест-кейсы))
- Должен быть создан тикет в Jira.
Для того чтобы добавить тест кейс в Jira необходимо:
- В TestOps перейти в раздел
Test cases
.
- Поставить отметку в чек боксе у тест кейса который необходимо добавить в Jira.
- Кликнуть на кнопку
Bulk actions
и в выпадающем списке выбратьAdd issues
.
- В поп-апе
Add issues
кликнуть на выпадающий список в строкеIssue Tracker
и выбрать сервер школьного Jira. - Кликнуть на выпадающий список в строке
Key
и выбрать тикет в который необходимо добавить тест кейсы.
- После выбора тикета он будет отображен в строке в поп-апе
Add issues
. Нажать на кнопкуSubmit
.
- Добавление тикета в Jira отобразиться в каждом тест кейсе при его раскрытии.
Для того чтобы добавить тест кейс в Jira необходимо сделать шаги:
- Должна быть настроена интеграция с Jira(описано в разделе Как подключить интеграцию с Jira)
- Должны быть созданы/сгенерированы прогоны в Allure TestOps(описано в разделе Как подключить интеграцию и запуск джобы в Jenkins через Allure TestOps)
- Должен быть создан тикет в 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.
✔️ Сайт
✔️ Чат в 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