Перейти к основному содержимому

Ключи маппинга

Мы придерживаемся подхода, что автоматизированный тест может быть наиболее полным и единственным источником информации о тесте.

Информация об автоматизированном тесте в ТестОпс создается на основе загружаемых результатов тестов, которые содержат метаданные, добавленные тестировщиками. Использование этих метаданных — важная часть процесса создания самодокументируемых тестов.

Для работы с метаданными в ТестОпс используется маппинг значений:

  1. В код автоматизированного теста добавляются значения метаданных. Каждое значение привязано к определенному ключу маппинга.
  2. После запуска теста создается файл с результатами, содержащий поле labels, в котором указаны все пары «ключ-значение».
  3. В инстансе ТестОпс указываются, какие ключи из файла с результатами будут использоваться для добавления метаданных тест-кейсам.

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

ТестОпс поддерживает несколько типов метаданных.

Типы метаданных

НазваниеОписаниеИспользование
Кастомные поляEpic, Feature, Story, Component, Microservice и другие атрибуты тест-кейсаФильтрация тест-кейсов, результатов тестов и аналитики.

Группировка тест-кейсов (построение деревьев)
Тестовые слоиИнформация о тестовом слое (UI-тесты, интеграционные тесты, юнит-тесты и т. д.)Фильтрация тест-кейсов, результатов тестов и аналитики
УчастникиУчастники команды, назначенные на тест-кейс (автор, тестировщик, ревьюер и т. д.)Фильтрация тест-кейсов, результатов тестов и аналитики
Задачи из таск-трекеровСвязанные задачи из сторонних таск-трекеровФильтрация тест-кейсов, результатов тестов и аналитики.

Экспорт данных в задачу
ТегиПользовательские метки, добавленные к тест-кейсамФильтрация тест-кейсов, результатов тестов и аналитики
ОкружениеИнформация о тестовом окружении (браузер, хост, операционная система и т. д.)Фильтрация истории тест-кейсов и результатов тестов.

Запуск тестов в разных окружениях

Как это работает?

Рассмотрим простой код ниже. В примере используется язык Java, но использование ключей маппинга поддерживается всеми адаптерами Allure.

@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.

{
"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.

Шаги

  1. Нажмите на свой аватар и перейдите в раздел АдминистрированиеКастомные поля.
  2. Создайте новое поле Microservice. Это глобальное кастомное поле, которое вы будете использовать для маппинга информации о микросервисах.
  3. В коде тест-кейса реализуйте маппинг allure_label["microservice"] = "Report", где:
    • allure_label — указатель для адаптера Allure;
    • microservice — ключ маппинга;
    • Report — значение маппинга.
  4. Перейдите в раздел проекта НастройкиКастомные поля.
  5. Нажмите Добавить поле и выберите Microservice (из шага 2).
  6. Справа перейдите на вкладку Маппинг и нажмите Новый маппинг.
  7. Введите ключ маппинга microservice и нажмите Создать (из шага 3).
  8. Запустите ваш тест-кейс локально.
  9. Перейдите в раздел Запуски и нажмите Импорт в правом верхнем углу.
  10. Перейдите к результату теста. Значение кастомного поля будет отображено в блоке Кастомные поля.

Тестовый слой

Примеры: Selenium, React E2E, API-тесты, Web, UI-тесты, интеграционные тесты и т. д.

Задача — назначить новый тестовый слой автоматизированному тест-кейсу. Например, Selenium.

Шаги

  1. Нажмите на свой аватар и перейдите в раздел АдминистрированиеСлои.
  2. Создайте новый тестовый слой Selenium.
  3. В коде тест-кейса реализуйте маппинг allure_label["layer"] ="selenium", где:
    • allure_label — указатель для адаптера Allure;
    • layer — ключ маппинга;
    • selenium — значение маппинга.
  4. Перейдите в раздел проекта НастройкиТестовые слои и нажмите Создать.
  5. Создайте новый маппинг:
    • ключ — selenium (из шага 3);
    • слой тестов — Selenium (из шага 2).
  6. Запустите ваш тест-кейс локально.
  7. Перейдите в раздел Запуски и нажмите Импорт в правом верхнем углу.
  8. Перейдите к результату теста. Название тестового слоя будет отображено рядом с названием тест-кейса.

Участники

Примеры: Author, Owner, Lead и т. д.

Задача — прикрепить нового участника к автоматизированному тест-кейсу. Например, Author (автор): ivanivanov.

Шаги

  1. Нажмите на свой аватар и перейдите в раздел АдминистрированиеРоли.
  2. Добавьте новую роль Author.
  3. В коде тест-кейса реализуйте маппинг allure_label["author"] = "ivanivanov", где:
    • allure_label — указатель для адаптера Allure;
    • author — ключ маппинга;
    • ivanivanov — значение маппинга.
  4. Перейдите в раздел проекта НастройкиРоли и нажмите Создать.
  5. Создайте новый маппинг:
    • ключ — author (из шага 3);
    • роль — Author (из шага 2).
  6. Запустите ваш тест-кейс локально.
  7. Перейдите в раздел Запуски и нажмите Импорт в правом верхнем углу.
  8. Перейдите к результату теста. Информация об участнике и его роли будет отображена в блоке Участники.

Задачи из таск-трекеров

Примеры: AE-1, AE-2, AE-3 и т. д.

Задача — связать задачу из таск-трекера с автоматизированным тест-кейсом. Например, задачу AE-2 из Jira.

Шаги

  1. В коде тест-кейса реализуйте маппинг allure_label["jira"] = "AE-2", где:
    • allure_label — указатель для адаптера Allure;
    • jira — ключ маппинга;
    • AE-2 — значение маппинга.
  2. Добавьте в ТестОпс интеграцию с таск-трекером Jira, если это не было сделано ранее.
  3. Перейдите в раздел проекта НастройкиЗадачи из баг-трекера и нажмите Создать.
  4. Создайте новый маппинг:
    • ключ — jira (из шага 1);
    • баг-трекер — таск-трекер, с которым была настроена интеграция (из шага 2).
  5. Запустите ваш тест-кейс локально.
  6. Перейдите в раздел Запуски и нажмите Импорт в правом верхнем углу.
  7. Перейдите к результату теста. Ссылка на задачу из таск-трекера будет отображена в блоке Связанные задачи из баг-трекера.

Список стандартных ключей, используемых адаптерами 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все

В столбце Вхождение указано, какое вхождение будет добавлено в файл с результатами теста, если вхождений несколько:

  • Первое вхождение — адаптер возьмет только первое значение и проигнорирует все последующие значения с ключом.
  • Все вхождения — адаптер добавит все указанные значения с ключом в файл с результатами теста.