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

