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
) и откроет его в вашем браузере.