Allure Reporter
Плагин репортера WebdriverIO для создания Отчетов Allure.

Установка
Самый простой способ - включить @wdio/allure-reporter как devDependency в ваш package.json.
{
"devDependencies": {
"@wdio/allure-reporter": "^7.0.0"
}
}
Вы можете просто сделать это так:
npm install @wdio/allure-reporter --save-dev
Конфигурация
Настройте каталог вывода в файле wdio.conf.js:
export const config = {
// ...
reporters: [['allure', {
outputDir: 'allure-results',
disableWebdriverStepsReporting: true,
disableWebdriverScreenshotsReporting: true,
}]],
// ...
}
outputDirпо умолчанию имеет значение./allure-results. После завершения тестового запуска вы обнаружите, что этот каталог заполнен файлами.xmlдля каждой спецификации, а также несколькими файлами.txtи.pngи другими вложениями.disableWebdriverStepsReporting- опциональный параметр (falseпо умолчанию), чтобы логировать только пользовательские шаги в репортере.issueLinkTemplate- опциональный параметр для указания шаблона ссылки на проблему. Репортер заменит плейсхолдер{}значением, указанным в параметре вызоваaddIssue(value). Такая же логика применяется при использовании Cucumber и установке тегаissueна любом уровне, он будет преобразован в ссылку в отчете. Пример значения параметра:https://example.org/issue/{}tmsLinkTemplate- опциональный параметр для указания шаблона ссылки TMS (Системы управления тестированием). Репортер заменит плейсхолдер{}значением, указанным в параметре вызоваaddTestId(value). Такая же логика применяется при использовании Cucumber и установке тегаtestIdна любом уровне, он будет преобразован в ссылку в отчете. Пример значения параметра:https://example.org/tms/{}disableWebdriverScreenshotsReporting- опциональный параметр (falseпо умолчанию), чтобы не прикреплять скриншоты к репортеру.useCucumberStepReporter- опциональный параметр (falseпо умолчанию), установите его в true, чтобы изменить иерархию отчета при использовании cucumber. Попробуйте сами и посмотрите, как это выглядит.disableMochaHooks- опциональный параметр (falseпо умолчанию), установите его в true, чтобы не добавлять в Allure Reporter стек вызовов/скриншоты/результаты хуковbefore/after.addConsoleLogs- опциональный параметр (falseпо умо лчанию), установите в true, чтобы прикреплять логи консоли от шага к репортеру.reportedEnvironmentVars(тип:Record<string, string>) - Установите этот параметр для отображения переменных окружения в отчете. Обратите внимание, что установка этого параметра не изменяет фактические переменные окружения.
Поддерживаемый Allure API
addLabel(name, value)- присвоить пользовательскую метку тестуaddFeature(featureName)– присвоить функции тестуaddStory(storyName)– присвоить пользовательскую историю тестуaddSeverity(value)– присвоить серьезность тесту, принимает одно из значений: blocker, critical, normal, minor, trivialaddTag(value)– присвоить метку тегу тестуaddEpic(value)– присвоить метку эпик тестуaddOwner(value)– присвоить метку владельца тестуaddSuite(value)– присвоить метку набора тестуaddSubSuite(value)– присвоить метку поднабора тестуaddParentSuite(value)– присвоить метку родительского набора тестуaddIssue(value)– присвоить идентификатор проблемы тестуaddAllureId(value)– присвоить метку идентификатора тестовых операций allure тестуaddTestId(value)– присвоить идентификатор теста TMS тесту- ~~
addEnvironment(name, value)~~ – устаревшая функция, которая больше не работает. Используйте вместо этогоreportedEnvironmentVars addAttachment(name, content, [type])– сохранить вложение к тесту.name(String) - имя вложения.content– содержимое вложения.type(String, опционально) – MIME-тип вложения, по умолчаниюtext/plain
addArgument(name, value)- добавить дополнительный аргумент к тестуaddDescription(description, [type])– добавить описание к тесту.description(String) - описание теста.type(String, опционально) – тип описания, по умолчаниюtext. Значения ['text', 'html','markdown']
addStep(title, [{content, name = 'attachment'}], [status])- добавить шаг к тесту.title(String) - название шага.content(String, опционально) - вложение шагаname(String, опционально) - имя вложения шага, по умолчаниюattachment.status(String, опционально) - статус шага, по умолчаниюpassed. Должен быть "failed", "passed" или "broken"
startStep(title)- начать шагtitle(String) - название шага.
endStep(status)- завершить шагstatus(String, опционально) - статус шага, по умолчаниюpassed. Должен быть "failed", "passed" или "broken"
step(name, body)- начинает шаг с функцией содержимого внутри. Позволяет создавать шаги с бесконечной иерархиейbody(Function) - асинхронная функция тела шага
Использование
Доступ к Allure Api можно получить с помощью:
CJS
const allureReporter = require('@wdio/allure-reporter').default
ESM
import allureReporter from '@wdio/allure-reporter'
Пример Mocha
describe('Suite', () => {
it('Case', () => {
allureReporter.addFeature('Feature')
})
})
Cucumber
Базовый пример Cucumber:
Given('I include feature and story name', () => {
allureReporter.addFeature('Feature_name');
allureReporter.addStory('Story_name');
})
Пользовательские шаги
Метод step упрощает работу с шагами, поскольку каждый шаг представлен как асинхронная функция с любым содержимым внутри.
Первый аргумент функции - текущий шаг, который имеет большинство методов API allure (такие как label, epic, attach и т. д.):
allureReporter.step('my step name', async (s1) => {
s1.label('foo', 'bar')
await s1.step('my child step name', async (s2) => {
// you can add any combination of steps in the body function
})
})
Теги Cucumber
Теги Cucumber с особыми именами (issue и testId) преобразуются в ссылки (соответствующие шаблоны ссылок должны быть настроены заранее):
@issue=BUG-1
@testId=TST-2
Feature: This is a feature with global tags that will be converted to Allure links
@issue=BUG-3
@testId=TST-4
Scenario: This is a scenario with tags that will be converted to Allure links
Given I do something
Теги Cucumber со специальными именами (feature) сопоставляются с метками Allure:
Feature: Test user role
@feature=login
Scenario: Login
Given I test login
Отображение отчета
Результаты могут быть использованы любым из инструментов отчетности, предлагаемых Allure. Например:
Командная строка
Установите инструмент командной строки Allure и обработайте каталог результатов:
allure generate [allure_output_dir] && allure open
Это сгенерирует отчет (по умолчанию в ./allure-report) и откроет его в вашем браузере.