Ключи маппинга
Мы придерживаемся подхода, что автоматизированный тест может быть наиболее полным и единственным источником информации о тесте.
Информация об автоматизированном тесте в ТестОпс создается на основе загружаемых результатов тестов, которые содержат метаданные, добавленные инженерами по тестированию. Использование этих метаданных — важная часть процесса создания самодокументируемых тестов.
Для работы с метаданными в ТестОпс используется маппинг значений:
- В код автоматизированного теста добавляются значения метаданных. Каждое значение привязано к определенному ключу маппинга.
- После запуска теста создается файл с результатами, содержащий поле
labels
, в котором указаны все пары «ключ-значение». - В инстансе ТестОпс указываются, какие ключи из файла с результатами будут использоваться для добавления метаданных тест-кейсам.
Метаданные можно использовать для фильтрации результатов, группировки тест-кейсов и пр.
ТестОпс поддерживает несколько типов метаданных.
Типы метаданных
Название | Описание | Использование |
---|---|---|
Кастомные поля | Epic, Feature, Story, Component, Microservice и другие атрибуты тест-кейса | Фильтрация тест-кейсов, результатов тестов и аналитики. Группировка тест-кейсов (построение деревьев) |
Тестовые слои | Информация о тестовом слое (UI-тесты, интеграционные тесты, юнит-тесты и т. д.) | Фильтрация тест-кейсов, результатов тестов и аналитики |
Участники | Участники команды, назначенные на тест-кейс (автор, инженер по тестированию, ревьюер и т. д.) | Фильтрация тест-кейсов, результатов тестов и аналитики |
Задачи из таск-трекеров | Связанные задачи из сторонних таск-трекеров | Фильтрация тест-кейсов, результатов тестов и аналитики. Экспорт данных в задачу |
Теги | Пользовательские метки, добавленные к тест-кейсам | Фильтрация тест-кейсов, результатов тестов и аналитики |
Окружение | Информация о тестовом окружении (браузер, хост, операционная система и т. д.) | Фильтрация истории тест-кейсов и результатов тестов. Запуск тестов в разных окружениях |
Как это работает?
Рассмотрим простой код ниже. В примере используется язык Java, но использование ключей маппинга поддерживается всеми адаптерами Allure.
java
@Manual
@Feature("Regions")
@DisplayName("Goods checking")
@Story("Main page in a region")
@Tags({@Tag("web"), @Tag("regress"), @Tag("smoke")})
@ParameterizedTest(name = "{displayName} in region `{0}`")
@MethodSource("regions")
public void addToFavorites(final String city) {
step("Open site for a region: " + city);
step("Check that region is: " + city);
step("Check that main page contains region specific goods", () -> {
step("Check that ads are specific for the region: " + city);
step("Check that best goods area is specific for the region: " + city);
});
}
Независимо от используемого тестового фреймворка и языка программирования после запуска теста будет создан файл с результатами в формате JSON (<uid>-result.json
). Этот файл будет содержать поле labels
.
json
{
"name": "Goods checking",
<snipped>
"labels": [
{
"name": "tag",
"value": "web"
},
{
"name": "tag",
"value": "regress"
},
{
"name": "tag",
"value": "smoke"
},
{
"name": "story",
"value": "Main page in a region"
},
{
"name": "feature",
"value": "Regions"
},
{
"name": "ALLURE_MANUAL",
"value": "true"
},
{
"name": "framework",
"value": "junit-platform"
},
{
"name": "language",
"value": "java"
},
{
"name": "package",
"value": "io.qameta.allure.ParameterizedManualTest"
},
{
"name": "testClass",
"value": "io.qameta.allure.ParameterizedManualTest"
},
{
"name": "testMethod",
"value": "addToFavorites"
},
{
"name": "suite",
"value": "io.qameta.allure.ParameterizedManualTest"
}
],
"links": []
}
Далее вам нужно создать в вашем инстансе ТестОпс маппинги для ключей, указанных в поле labels
. Каждый маппинг свяжет ключ из labels
с атрибутом тест-кейса в вашем проекте.
Для некоторых типов метаданных, таких как теги, создавать маппинги не нужно. Более подробная информация о каждом типе метаданных и о добавлении маппингов расположена в соответствующих инструкциях.
Примеры
Кастомное поле
Примеры: Epic, Feature, Story, Component, Microservice и т. д.
Задача — добавить новое кастомное поле к автоматизированному тест-кейсу. Например, Microservice: Report.
Шаги
- Перейдите в раздел Администрирование → Кастомные поля.
- Создайте новое поле Microservice. Это глобальное кастомное поле, которое вы будете использовать для маппинга информации о микросервисах.
- В коде тест-кейса реализуйте маппинг
allure_label["microservice"] = "Report"
, где:allure_label
— указатель для адаптера Allure;microservice
— ключ маппинга;Report
— значение маппинга.
- Перейдите в раздел проекта Настройки → Кастомные поля.
- Нажмите Добавить поле и выберите Microservice (из шага 2).
- Справа перейдите на вкладку Маппинг и нажмите Новый маппинг.
- Введите ключ маппинга
microservice
и нажмите Создать (из шага 3). - Запустите ваш тест-кейс локально.
- Перейдите в раздел Запуски и нажмите Импорт в правом верхнем углу.
- Загрузите файл с результатом теста в ТестОпс.
- Перейдите к результату теста. Значение кастомного поля будет отображено в блоке Кастомные поля.
Тестовый слой
Примеры: Selenium, React E2E, API-тесты, Web, UI-тесты, интеграционные тесты и т. д.
Задача — назначить новый тестовый слой автоматизированному тест-кейсу. Например, Selenium.
Шаги
- Перейдите в раздел Администрирование → Слои.
- Создайте новый тестовый слой Selenium.
- В коде тест-кейса реализуйте маппинг
allure_label["layer"] ="selenium"
, где:allure_label
— указатель для адаптера Allure;layer
— ключ маппинга;selenium
— значение маппинга.
- Перейдите в раздел проекта Настройки → Тестовые слои и нажмите + Создать.
- Создайте новый маппинг:
- ключ — selenium (из шага 3);
- слой тестов — Selenium (из шага 2).
- Запустите ваш тест-кейс локально.
- Перейдите в раздел Запуски и нажмите Импорт в правом верхнем углу.
- Загрузите файл с результатом теста в ТестОпс.
- Перейдите к результату теста. Название тестового слоя будет отображено рядом с названием тест-кейса.
Участники
Примеры: Author, Owner, Lead и т. д.
Задача — прикрепить нового участника к автоматизированному тест-кейсу. Например, Author (автор): ivanivanov.
Шаги
- Перейдите в раздел Администрирование → Роли.
- Добавьте новую роль Author.
- В коде тест-кейса реализуйте маппинг
allure_label["author"] = "ivanivanov"
, где:allure_label
— указатель для адаптера Allure;author
— ключ маппинга;ivanivanov
— значение маппинга.
- Перейдите в раздел проекта Настройки → Роли и нажмите + Создать.
- Создайте новый маппинг:
- ключ —
author
(из шага 3); - роль —
Author
(из шага 2).
- ключ —
- Запустите ваш тест-кейс локально.
- Перейдите в раздел Запуски и нажмите Импорт в правом верхнем углу.
- Загрузите файл с результатом теста в ТестОпс.
- Перейдите к результату теста. Информация об участнике и его роли будет отображена в блоке Участники.
Задачи из таск-трекеров
Примеры: AE-1, AE-2, AE-3 и т. д.
Задача — связать задачу из таск-трекера с автоматизированным тест-кейсом. Например, задачу AE-2 из Jira.
Шаги
- В коде тест-кейса реализуйте маппинг
allure_label["jira"] = "AE-2"
, где:allure_label
— указатель для адаптера Allure;jira
— ключ маппинга;AE-2
— значение маппинга.
- Добавьте в ТестОпс интеграцию с таск-трекером Jira, если это не было сделано ранее.
- Перейдите в раздел проекта Настройки → Задачи из баг-трекера и нажмите + Создать.
- Создайте новый маппинг:
- ключ —
jira
(из шага 1); - баг-трекер — таск-трекер, с которым была настроена интеграция (из шага 2).
- ключ —
- Запустите ваш тест-кейс локально.
- Перейдите в раздел Запуски и нажмите Импорт в правом верхнем углу.
- Загрузите файл с результатом теста в ТестОпс.
- Перейдите к результату теста. Ссылка на задачу из таск-трекера будет отображена в блоке Связанные задачи из баг-трекера.
Список стандартных ключей, используемых адаптерами Allure
Ключ | Вхождение | Allure Report v.2 | ТестОпс | Комментарий |
---|---|---|---|---|
ALLURE_ID | первое | ❌ | ✅ | |
AS_ID | первое | ❌ | ✅ | Устарело, используйте ALLURE_ID |
ALLURE_MANUAL | первое | ❌ | ✅ | |
package | первое | ✅ | ❌ | |
testClass | первое | ✅ | ✅ | |
testMethod | первое | ✅ | ✅ | |
parentSuite | все | ✅ | ✅ | |
suite | все | ✅ | ✅ | |
subSuite | все | ✅ | ✅ | |
epic | все | ✅ | ✅ | |
feature | все | ✅ | ✅ | |
story | все | ✅ | ✅ | |
framework | первое | ✅ | ❌ | По умолчанию не используется в ТестОпс, но можно настроить маппинги |
language | первое | ✅ | ❌ | По умолчанию не используется в ТестОпс, но можно настроить маппинги |
layer | первое | ✅ | ✅ | |
thread | первое | ✅ | ✅ | |
host | первое | ✅ | ✅ | |
severity | первое | ✅ | ❌ | |
tag | все | ✅ | ✅ | |
owner | все | ❌ | ✅ | |
lead | все | ❌ | ✅ | |
custom labels | все | ❌ | ✅ |
В столбце Вхождение указано, какое вхождение будет добавлено в файл с результатами теста, если вхождений несколько:
- Первое вхождение — адаптер возьмет только первое значение и проигнорирует все последующие значения с ключом.
- Все вхождения — адаптер добавит все указанные значения с ключом в файл с результатами теста.