Репортер Allure
Плагін репортера WebdriverIO для створення Allure Test Reports.
Встановлення
Найпростіший спосіб - включити @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, щоб не отримувати хукиbefore/after
stacktrace/screenshot/result в Allure Reporter.addConsoleLogs
- опціональний параметр (за замовчуваннямfalse
), встановіть на true, щоб додавати консольні логи з кроків до репортера.reportedEnvironmentVars
(тип:Record<string, string>
) - Встановіть цю опцію для відображення змінних середовища у звіті. Зверніть увагу, що встановлення цього параметра не змінює самі змінні середовища.
Підтримуваний API Allure
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 test ops id для тестуaddTestId(value)
– призначити TMS test id для тесту- ~~
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. Наприклад: