Giter VIP home page Giter VIP logo

allure-notifications's Introduction

Allure notifications

Allure notifications - это библиотека, позволяющая выполнять автоматическое оповещение о результатах прохождения автотестов, которое направляется в нужный вам мессенджер (Telegram, Slack, Skype, Email, Mattermost).

Languages: 🇬🇧 🇫🇷 🇷🇺 🇺🇦 🇧🇾 🇨🇳

Содержание

По итогам выполнения автотестов генерируется файл summary.json в папке allure-report/widgets. Этот файл содержит общую статистику о результатах прохождения тестов, на основании которой как раз и формируется уведомление, которое отправляет бот (отрисовывается диаграмма и добавляется соответствующий текст).

image

Пример файла summary.json

{
  "reportName" : "Allure Report",
  "testRuns" : [ ],
  "statistic" : {
    "failed" : 182,
    "broken" : 70,
    "skipped" : 118,
    "passed" : 439,
    "unknown" : 42,
    "total" : 851
  },
  "time" : {
    "start" : 1590795193703,
    "stop" : 1590932641296,
    "duration" : 11311,
    "minDuration" : 7901,
    "maxDuration" : 109870,
    "sumDuration" : 150125
  }
}

Пример оповещения в Telegram

image
  1. Для локальной отладки нужно установить java (для запуска в Jenkins она не понадобится)
  2. Создать в корне проекта папку notifications.
  3. Скачать актуальную версию файла allure-notifications-version.jar, и разместить его в папке notifications в своем проекте.
  4. В папке notifications создать файл config.json со следующей структурой (оставить раздел base и тот мессенджер, на который требуется отправлять оповещения):
{
  "base": {
    "logo": "",
    "project": "",
    "environment": "",
    "comment": "",
    "reportLink": "",
    "language": "ru",
    "allureFolder": "",
    "enableChart": false
  },
  "telegram": {
    "token": "",
    "chat": "",
    "replyTo": ""
  },
  "slack": {
    "token": "",
    "chat": "",
    "replyTo": ""
  },
  "mattermost": {
    "url": "",
    "token": "",
    "chat": ""
  },
  "skype": {
    "appId": "",
    "appSecret": "",
    "serviceUrl": "",
    "conversationId": "",
    "botId": "",
    "botName": ""
  },
  "mail": {
    "host": "",
    "port": "",
    "username": "",
    "password": "",
    "securityProtocol": null,
    "from": "",
    "recipient": ""
  },
  "proxy": {
    "host": "",
    "port": 0,
    "username": "",
    "password": ""
  }
}

Блок proxy используется если нужно указать дополнительную конфигурацию proxy.

  1. Заполнить в файле config.json блок base:

Пример заполнения блока base:

"base": {
    "logo": "logo.png",
    "project": "some project",
    "environment": "some env",
    "comment": "some comment",
    "reportLink": "",
    "language": "en",
    "allureFolder": "build/allure-report/",
    "enableChart": true
  }

Порядок заполнения:

  • project, environment, comment - имя проекта, название окружения и произвольный комментарий.
  • reportLink - ссылка на Allure report с результатами прохождения автотестов (целесообразно заполнять при запуске автотестов из Jenkins - об этом ниже)
  • language - язык, на котором будет сформирован текст для оповещения (варианты: en / fr / ru / ua / by / cn)
  • allureFolder - путь к папке с результатами работы Allure
  • enableChart - требуется ли отображать диаграмму (варианты: true / false)
  • logo - путь к файлу с логотипом (если заполнено, то в левом верхнем углу диаграммы будет отображаться соответствующий логотип).
  1. Заполнить в файле config.json блок с информацией о выбранном мессенджере: особенности заполнения файла config.json в зависимости от выбранного мессенджера

  2. Выполнить в терминале следующую команду:

java "-DconfigFile=notifications/config.json" -jar notifications/allure-notifications-4.2.1.jar

Примечание:

  • на момент запуска уже должен быть сформирован файл summary.json
  • в тексте команды нужно указать ту версию файла jar, которую вы скачали на предыдущих шагах

В результате будет сформировано оповещение с результатами прохождения автотестов и направлено в выбранный мессенджер.

  1. Перейти в настройки сборки в Jenkins
  2. В разделе Сборка нажать кнопку Добавить шаг собрки, в появившемся меню выбрать Create/Update Text File
image

Заполнить следующим образом:

image image

Примечание:

  • Общая информация о заполнении блока base описана в этом разделе
  • В следующих параметрах в качестве значений указываем переменные: "project": "${JOB_BASE_NAME}" и "reportLink": "${BUILD_URL}". При формировании уведомления в данных полях будут указаны название JOB и ссылка на BUILD в Jenkins.
  • Особенности заполнения файла config.json в зависимости от выбранного мессенджера описаны в этом разделе
  1. В разделе Послесборочные операции нажать кнопку Добавить шаг после собрки, в появившемся меню выбрать Post build task

image

  • В поле Script указываем следующее:
cd ..
FILE=allure-notifications-4.2.1.jar
if [ ! -f "$FILE" ]; then
   wget https://github.com/qa-guru/allure-notifications/releases/download/4.2.1/allure-notifications-4.2.1.jar
fi

Примечание: В этом скрипте мы переходим на папку выше, если там нет jar файла, то скачиваем его. Необходимо указать актуальную версию файла jar

  • Нажимаем Add another task и во втором поле Script указываем следующее:
java "-DconfigFile=notifications/config.json" -jar ../allure-notifications-4.2.1.jar
  1. Сохраняем изменения настроек и запускаем автотесты. По завершении в мессенджер будет направлено уведомление о результатах.

allure-notifications's People

Contributors

svasenkov avatar kadehar avatar valfirst avatar igorsoloviov avatar mailigors avatar ferras777 avatar gorbatenko avatar konyaz avatar dependabot[bot] avatar bookovna avatar dandreyanov avatar dtuchs avatar germanmalykh avatar mrc81 avatar aniuzukowska avatar michael-horbachov avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.