Ключи маппинга
Мы придерживаемся подхода, что автоматизированный тест может быть наиболее полным и единственным источником информации о тесте.
Информация об автоматизированном тесте в ТестОпс создается на основе загружаемых результатов тестов, которые содержат метаданные, добавленные инженерами по тестированию. Использование этих метаданных — важная часть процесса создания самодокументируемых тестов.
Для работы с метаданными в ТестОпс используется маппинг значений:
- В код автоматизированного теста добавляются значения метаданных. Каждое значение привязано к определенному ключу маппинга.
- После запуска теста создается файл с результатами, содержащий поле
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 с атрибутом тест-кейса в вашем проекте.
Для некоторых типов метаданных, таких как теги, создавать маппинги не нужно. Более подробная информация о каждом типе метаданных и о добавлении маппингов расположена в соответствующих инструкциях.
Примеры
Примечание
В этой инструкции описана общая концепция ключей маппинга. Примеры для конкретных языков программирования см. в документации Allure Report.
Кастомное поле
Примеры: 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 | все | ❌ | ✅ |
В столбце Вхождение указано, какое вхождение будет добавлено в файл с результатами теста, если вхождений несколько:
- Первое вхождение — адаптер возьмет только первое значение и проигнорирует все последующие значения с ключом.
- Все вхождения — адаптер добавит все указанные значения с ключом в файл с результатами теста.

