Уведомления для Slack в Allure 3

Уведомления о результатах прогонов — важный элемент удобства при работе с тестами. Вместо того чтобы каждые пять минут проверять, закончился прогон или нет, вы просто получаете сообщение в Slack. Меньше отвлекающих факторов, больше времени в состоянии потока.
В Allure Report такие уведомления были реализованы в версии 3.0 с помощью плагина для уведомлений в Slack. В этом руководстве я покажу, как настроить канал в Slack так, чтобы каждый запуск Allure Report отправлял туда сводку по результатам.
1. Подготовка
Что понадобится
Node.js
Пример кода
В качестве примера будут использоваться тесты на Playwright:
https://github.com/rattus-aristarchus/guide-playwright-slack-notifications
Настройка
Чтобы запустить пример из этого руководства, вам понадобится установленный Node.js.
Затем скачайте свежий проект с Javascript и Playwright со страницы Allure Start.
Добавьте в проект Allure 3 одной из следующих команд (в зависимости от вашего пакетного менеджера):
npm add allure
yarn add allure
pnpm add allure2. Настройка Slack-канала для уведомлений
Со стороны Slack понадобится приложение (App), которое будет получать данные от Allure и публиковать уведомления в выбранном вами канале.
Чтобы создать приложение, откройте https://api.slack.com/apps и нажмите Create New App:

В качестве шаблона выберите пустое приложение (Blank app):

Дальше укажите название и рабочее пространство, в котором должны появляться уведомления. Нажмите Create App:

Откройте созданное приложение и в разделе Features выберите OAuth & Permissions:

Пролистайте страницу до раздела Scopes. Добавьте права chat:write и files:write.

Вернитесь к началу страницы и нажмите Install to your workspace. Затем подтвердите разрешение на установку.

Теперь нужно создать канал в Slack, в который приложение будет публиковать отчёты.
Откройте своё рабочее пространство в Slack, наведите на Channels — возникнет кнопка +:

Щёлкните по ней, введите имя канала и выберите тип доступа.
Наконец, добавьте приложение с уведомлениями в свой канал. Сделать это можно, например, отправив в поле ввода сообщения команду /invite @Your App Name:

На этом со стороны Slack всё готово.
3. Настройка плагина Slack в Allure Report
Теперь нужно настроить отправку сообщений со стороны Allure Report. Ею заведует плагин Slack — установить его можно одной из следующих команд:
npm add @allurereport/plugin-slack
yarn add @allurereport/plugin-slack
pnpm add @allurereport/plugin-slackЗатем плагин нужно добавить в файл настроек Allure 3:
import { defineConfig } from "allure";
export default defineConfig({
// Общее об отчёте:
name: "Allure Report",
output: "./allure-report",
historyPath: "./history.jsonl",
// Вся структура отчёта определяется плагинами:
plugins: {
// Плагин для Slack:
slack: {
options: {
// Об этих параметрах — ниже.
channel: "my_channel",
token: "my_token",
},
},
},
});Теперь нужно заполнить параметры channel и token.
channel:
Здесь впишите название канала, в нашем случае «уведомления-allure-report»
token:
Снова откройте https://app.slack.com/app-settings и перейдите в OAuth & Permissions. Скопируйте Bot User OAuth Token:
5-bot-user-oauth-token.png
Теперь вставьте его в файл allurerc.js как значение параметра token.
Всё вместе теперь должно выглядеть примерно так:
import { defineConfig } from "allure";
export default defineConfig({
name: "Allure Report",
output: "./allure-report",
historyPath: "./history.jsonl",
plugins: {
slack: {
options: {
channel: "уведомления-allure-report",
token: "xoxb-XXXXXXXXXXXXX-XXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXX",
},
},
},
});
4. Проверка работы
Наконец, можно запускать тесты. Чтобы это сделать, в Allure 3 команду запуска тестов надо обернуть в следующую команду:
npx allure run -- "команда_запуска_тестов"В нашем случае это будет выглядеть так:
npx allure run --config=./allurerc.js -- "npm test"Выполните это в консоли — и уведомление о запуске должно сразу попасть в канал Slack:

Теперь каждый запуск тестов в настроенном проекте будет сообщать о себе в этом канале. Приятной работы!
KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.