All Projects → kirillyu → jmeterReports

kirillyu / jmeterReports

Licence: other
Jmeter autogenerater reports after test to Confluence, using grafana custom dushboards.

Projects that are alternatives of or similar to jmeterReports

Jmeter Elasticsearch Backend Listener
JMeter plugin that lets you send sample results to an ElasticSearch engine to enable live monitoring of load tests.
Stars: ✭ 72 (+213.04%)
Mutual labels:  reporting, grafana, jmeter
Performance Plugin
Performance Test Running and Reporting for Jenkins CI
Stars: ✭ 176 (+665.22%)
Mutual labels:  reporting, jmeter
Openvasreporting
OpenVAS Reporting: Convert OpenVAS XML report files to reports
Stars: ✭ 42 (+82.61%)
Mutual labels:  reporting, reports
ruby-grafana-reporter
Reporting Service for Grafana
Stars: ✭ 42 (+82.61%)
Mutual labels:  reporting, grafana
Jasperreports
JasperReports® - Free Java Reporting Library
Stars: ✭ 540 (+2247.83%)
Mutual labels:  reporting, reports
Reporter
Service that generates a PDF report from a Grafana dashboard
Stars: ✭ 581 (+2426.09%)
Mutual labels:  reporting, grafana
jtl-reporter
JtlReporter is an online application that allows users to generate beautiful, customizable and easy to understand performance reports from JMeter(Taurus), Locust, and other tools.
Stars: ✭ 85 (+269.57%)
Mutual labels:  reporting, jmeter
Jasperphp
JasperReports for PHP
Stars: ✭ 222 (+865.22%)
Mutual labels:  reporting, reports
maven-confluence-plugin
Maven plugin that generates project's documentation directly to confluence allowing to keep in-sync project evolution with its documentation
Stars: ✭ 56 (+143.48%)
Mutual labels:  reporting, confluence
Reports.JS
Stimulsoft Reports.JS is a reporting tool for Node.js and JavaScript applications.
Stars: ✭ 33 (+43.48%)
Mutual labels:  reporting, reports
camunda-prometheus-process-engine-plugin
Monitor your KPIs!!! Camunda BPM Process Engine Plugin providing Prometheus Monitoring, Metric classes for various BPMN use, Grafana Annotations, and HTTPServer data export: Used to generate Prometheus metrics anywhere in the Engine, including BPMN, CMN, and DMN engines and instances.
Stars: ✭ 48 (+108.7%)
Mutual labels:  reporting, grafana
Report
📜 🎉 Automated reporting of objects in R
Stars: ✭ 348 (+1413.04%)
Mutual labels:  reporting, reports
Ad-Hoc-Report-Builder-.net-mvc
Open Source Reporting tool for .NET6/.NET Core/.NET Framework that you can embed in your application and generate dashboards and ad hoc reports
Stars: ✭ 43 (+86.96%)
Mutual labels:  reporting, reports
Performance Testing Framework
Framework allows to perform load testing with Apache Jmeter, view application/server metrics in real-time with Grafana, analyze errors cause with detailed traces for failed requests, compare different test runs in scripted dashboard and perform frontend performance testing with sitespeed.io+webpagetest
Stars: ✭ 275 (+1095.65%)
Mutual labels:  grafana, jmeter
Samples-NET.Core-MVC-CSharp
ASP.NET Core 2.0 MVC C# samples for Stimulsoft Reports.Web reporting tool.
Stars: ✭ 28 (+21.74%)
Mutual labels:  reporting, reports
Samples-JS-PHP
JavaScript and PHP samples for Stimulsoft Reports.PHP reporting tool.
Stars: ✭ 17 (-26.09%)
Mutual labels:  reporting, reports
Samples-ASP.NET-MVC-CSharp
ASP.NET MVC C# samples for Stimulsoft Reports.Web reporting tool.
Stars: ✭ 31 (+34.78%)
Mutual labels:  reporting, reports
pivot-vue
Integration example of WebDataRocks web reporting tool with the Vue framework
Stars: ✭ 17 (-26.09%)
Mutual labels:  reporting, reports
docker-graphite
Run Graphite with Docker
Stars: ✭ 15 (-34.78%)
Mutual labels:  grafana
go-confluence
Go library wrapping the confluence REST API
Stars: ✭ 31 (+34.78%)
Mutual labels:  confluence

Описание репозитория

Появилась новая версия основанная на InfluxDb 2 с языком flux и разворачиваемая через docker-compose - https://github.com/kirillyu/jmeterReports2

Данный репозиторий содержит в себе темплейт для ApacheJmeter, который позволяет генерировать и заливать отчет в Confluence. К темплейту прилагается нужное окружение для ApacheJmeter, в которое входит папка lib из корня - в ней содержатся все используемые плагины. Там же расположен chromedriver.exe, необходимый для работы темплейта. Репозиторий, помимо этого, включает в себя все необходимые для рендера графиков и анализа результатов дашборды Grafana, которые полностью интегрированы с данным темплейтом.

Требования к среде использования

  1. JDK, желательно 1.8+ (Java)
  2. ApacheJmeter 5.3
  3. InfluxDB 1.8
  4. Grafana 7.0.0 + Grafana Image Renderer Plugin
  5. Установленный Google Chrome на машине, где будет генерироваться отчет
  6. Confluence (не Cloud версия)

Grafana

На выходе вы получите несколько Grafana дашбордов:

1. Test Trends

Дашборд позволяет переключаться между проектами и смотреть суммарные метрики по каждому из них.

  • Левая верхняя таблица - показывает тренд изменений среднего времени отклика и процента ошибок в длительных тестах (Stability).
  • Правая верхняя - аналогична левой, но показывает результаты для коротких тестов (Stress).
  • Нижняя левая - содержит лог запусков по этому проекту (показывает только запуски, длительность которых превышает 3 часа - это значение настраиваемое). Также имеются ссылки на подробные метрики выбранного запуска. При нажатии на ссылку попадаем в дашборд №2 - Test Metrics.
  • Нижняя правая - содержит все запуски по всем проектам с фильтром, аналогично левой таблице.

2. Test Metrics

На этом дашборде собрана полная информация по выбранному тесту. Вручную можно выбрать:

  • Проект
  • Количество отображаемых запусков
  • Нужный запуск
  • Конкретную операцию этого запуска. По ней появятся детальные метрики в конце дашборда Этот дашборд используется для осмотра результатов и их анализа.

3. Render Dash

Данный дашборд аналогичен дашборду №2 - Test Metrics, но он содержит определенные фильтры и настройки, которые снижают наглядность результатов, но необходимы для рендеринга. К примеру, на нем отключена пагинация в таблицах и графики содержат топ 5 операций, остальные вынесены в "Other".

Jmeter

В самом ApacheJMeter для использования темплейта, после его установки, достаточно просто нажать на вкладку File, выбрать Templates..., кликнуть в выпадающем списке на "Add autogenerated reports..." и нажать на Merge. Мержить можно к уже готовым скриптам, после чего оформить нужные Thread Groups аналогично Main. После добавления получится такой тест-план:

Установка и настройка

  • Первоначально необходимо поставить сам Apache Jmeter, получить актуальную версию можно по ссылке.
  • Далее нужны InfluxDB и Grafana - ссылка для Windows
  • Настраивать ничего не нужно на данном этапе. Из папки с InfluxDB запускаем файл influxd.exe - по дефолту Influx будет на порту 8086, кастомизация происходит в файле influxdb.conf,
  • Для запуска Grafana достаточно стартануть файл grafana-server - она запустится на порту 3000, конфигурационный файл defaults.ini
  • Confluence - корпоративная система, подразумевается, что он уже развернут в вашей компании. Если это не так - можно взять его отсюда, но настройки потребуется провести самостоятельно. Никаких кастомных настроек не требуется, просто наличие рабочего SPACE и пользователя, который имеет доступ к API
  • Устанавливаем Chrome на машину, с которой будет генерироваться отчет

Желательно, чтобы машина, с которой будет подаваться нагрузка была минимально обременена сервисами, особенно Grafana, а тем более Confluence - иначе велик риск нехватки ресурсов для проведения нагрузки.

После того как инструментарий развернут, можно переходить к его интеграции с данным репозиторием. Это делается в несколько довольно простых шагов:

  1. Скачиваем репозиторий
  2. Содержимое папки JmeterUpdate переносим с заменой в папку apache-jmeter-..., то есть корень вашего Apache Jmeter. Важно, что в папке /bin находится chromedriver.exe для Windows, с ним бывают некоторые проблемы. Если они возникнут или используется другая операционная система необходимо попробовать другие версии драйвера.
  3. Создаём новую базу в InfluxDB (например, jmeter). Инструкция по созданию
  4. Первичная настройка Grafana заключается в подключении нужного Data Source. Configuration -> Data Sources -> Add Data Source -> InfluxDB -> вводим параметры подключения с указанием машины, на которую поставлен InfluxDB и порта (по дефолту 8086). Database вводим название базы, созданной в п.3. После этого нажимаем Save & Test.

  1. Импортируем все дашборды из репозитория в Grafana. Правильно делается это так: в интерфейсе Grafana слева есть вкладка Dashboards, в ней нужно выбрать Manage. Далее на открывшейся странице выбираем Import, после чего нажать на Upload.json, туда по очереди загрузить 3 .json файла из репозитория, в каждом из которых необходимо указать Data Source из пункта 3.

  1. Чтобы в Grafana заработали перекрестные ссылки между дашбордами, в случае если она развернута не на localhost, необходимо прописать хост Grafana в переменных двух дашбордов: Test Trends и Test Metrics.

  1. Также нам понадобится от Grafana ключ API, который необходимо сгенерировать.

  1. Последним этапом настройки Grafana будет установка плагина рендера графиков. Его можно взять тут. Там же описана его установка. После нее нужно перезапустить Grafana (необъяснимо, но факт - иногда этот плагин не требуется).

  2. Теперь к Confluence. Для его использования нам нужно создать страницу-папку. В любом месте нашего пространства и с любой степенью вложенности. В эту папку, как дочерние элементы будут создаваться страницы с отчетами. Всё создается простым нажатием кнопки "Создать" вверху интерфейса.

  1. Далее, внутри этой папки создаем еще одну страницу - она должна быть дочерней по отношению к странице в п.8, это будет шаблон нашего отчета, которым сейчас необходимо минимально наполнить. Я подготовил черновой вариант, который вы можете попробовать у себя и изменить его как вам будет удобно. Ключевым моментом являются названия картинок графиков - они должны заранее совпадать с названиями файлов, выгружаемых при рендере из Grafana в блоке Jmeter Metrics - по дефолту это так. Добавляется черновик следующим образом:
  • Переходим на страницу шаблона и нажимаем редактировать
  • В верхней панели редактора нажимаем "+" ("Вставить прочий контент") или просто нажимаем ctrl + shift + d.
  • В открывшееся окно вставляем разметку типа "Confluence wiki":

VERSION_NUM

Дата формирования отчета: RELEASE_DATE

Информация о проекте:

***

***

Сводная таблица:

ALL_TABLE

Ошибки:

ERROR_TABLE

Тест проходил с TIME_FROM до RELEASE_DATE

Метрики теста:

!VUsers.png!

!ErrorPerSec.png!

!TotalTransactions.png!

!EachOperation.png!

!90.png!

!95.png!

!99.png!

!TransactionsResponseTime.png!

После добавления черновик шаблона будет выглядеть вот так:

Такой шаблон после теста будет сформирован в вот такую страницу:

  1. Осталось настроить только JMeter. После того как в тест добавляется Template необходимо заполнить только User Defined Variables

Все переменные, кроме project_name, host, version_get_path, conf_folger и conf_templ, чаще всего, выставляют 1 раз. После их установки можно пересохранить темплейт (аналогично сохранению любого .jmx, но сделать это нужно по пути %jmeter_home%/bin/templates/Influx_Confluence.jmx с заменой), тогда при добавлении темплейта в любой скрипт, эти данные будут уже установлены верно.

  • project_name - Название текущего проекта, его для каждого приложения стоит выставлять свое. Требуется добавлять в DateAndVarSet запросе в switch case данные каждого проекта, чтобы использовался свой шаблон. По этому полю осуществляется группировка и фильтрация в Grafana
  • custom_duration - Поле используется для удобства и выводиться в теге запуска в графане. Поле обязательно, но в данной реализации кроме как на отображение ни на что не влияет. Можно использовать как переменную, для установки длительности теста
  • influx_host - Хост InfluxDb
  • test_name - Обязательный параметр, в дальнейшем будет использоваться для фильтрации в дашборде Test Trends
  • host - Хост вашего приложения, участвует в формировании названия отчета, которое в свою очередь получается из метки времени и текущей версии приложения. Версия получается по запросу host + /version_get_path.
  • version_get_path - Запрос к API для получения текущей версии приложения. Если не планируете её использовать отключите запрос GetVersion и закомментируйте 19 строку в DateAndVarSet
  • conf_folder - id родительской страницы (папки), в которую будут добавляться отчеты в Confluence - id можно получить из адресной строки, после входа в режим редактирования страницы.
  • conf_templ - id страницы с шаблоном отчетом, которая должна быть дочерней по отношению к conf_folder
  • conf_host - ссылка на ваш Confluence
  • chromedriver_path - путь до chromedriver, который будет использоваться. По дефолту находится в %jmeter_home%/bin и конструкция, указанная в параметрах ведет к нему
  • space - ваше рабочее пространство (область) в confluence. Можно получить из тела ответа, сделав запрос ${conf_host}/rest/api/content/АЙДИ_ЛЮБОЙ_СТРАНИЦЫ?expand=body.storage
  • grafana_data_source - он был сформирован на п.4. Переменная чувствительна к регистру
  • grafana_api_key - это то, что мы получили в п.7.
  • grafana_login - логин любого пользователя, у которого есть права типа Viewer и выше
  • grafana_pass - пароль того же пользователя
  • grafana_host - хост, на котором развернута Grafana
  • grafana_port - порт, на котором развернута Grafana
  • confl_user - логин пользователя confluence, который имеет доступ к Rest API
  • confl_pass - пароль того же пользователя

После всех этих шагов, настройка завершена. Можно запускать любые тесты и наслаждаться отчетами и графиками. Темплейт буду обновлять в зависимости от найденных багов и неудобств. Если возникают вопросы и предложения - смело пишите в телеграмм @login40k - буду рад помочь.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].