https://github.com/vnikolaenko-dev/web-testing
Набор инструментов для тестирования вашего приложения на Java Spring Boot.
https://github.com/vnikolaenko-dev/web-testing
artillery docker-compose grafana prometheus spring-boot testing
Last synced: 3 months ago
JSON representation
Набор инструментов для тестирования вашего приложения на Java Spring Boot.
- Host: GitHub
- URL: https://github.com/vnikolaenko-dev/web-testing
- Owner: vnikolaenko-dev
- Created: 2025-03-31T12:30:57.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-12T19:34:15.000Z (about 1 year ago)
- Last Synced: 2025-04-19T23:33:09.641Z (about 1 year ago)
- Topics: artillery, docker-compose, grafana, prometheus, spring-boot, testing
- Language: Dockerfile
- Homepage:
- Size: 142 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# web-testing
Набор инструментов для нагрузочного тестирования вашего приложения на Java Spring Boot.
Prometheus - приложение, используемое для мониторинга событий, сбора и хранения метрик.
Grafana - программная система визуализации данных, ориентированная на данные систем ИТ-мониторинга.
Compose- программное обеспечение для автоматизации развёртывания и управления приложениями.
Artillery - платформа для нагрузочного тестирования.
## Часть №1 (Spring Boot Actuator)
Spring Boot Actuator - предоставляет REST-эндпоинты для мониторинга здоровья, метрик и производительности приложения.
```xml
org.springframework.boot
spring-boot-starter-actuator
```
включим необходиме эндпоинты в application.properties
```properties
management.endpoints.web.exposure.include=health,info,env,beans,metrics
```
теперь при запуске нашего приложения мы можем смтореть различные метрики:
http://localhost:8080/actuator/helth - общее состояние приложения
http://localhost:8080/actuator/metrics/system.cpu.usage - загрузка процессора
http://localhost:8080/actuator/heapdump - скачать дамп памяти JVM в формате .hprof
и т.д.
## Часть №2 (Prometheus + Grafana)
Видеть информацию в формате Json, конечно, полезно, однако хотелось бы иметь более удобный способ оценки работоспособности продукта.
Здесь нам поможет:
1) Prometheus - система мониторинга и сбора метрик с открытым исходным кодом
2) Grafana - инструмент для визуализации данных
1) Скачиваем докер клиент (https://www.docker.com/)
2) Скачиваем все файлы из папке Grafana-Docker (https://github.com/vnikolaenko-dev/web-testing/tree/main/Grafana-Docker)
```
docker-compose up --build
```
3) Запускаем команду в той же дирректории
4) Запускаем приложение Java Spring на порту 8080 (предварительно вписав prometheus в application.properties)
```
management.endpoints.web.exposure.include=health,info,metrics,prometheus
```
5) Переходим на http://localhost:3000/ (стандартный логин и пароль admin admin)
6) Видим графики и статистку в Dashboards

## Часть №3 (Artillery)
Artillery - ПО с открытытм исходным кодом для проведения нагрузочного тестирования
1) Устанавливаем Node.js (https://nodejs.org/en/download)
2) Скачиваем Artillery
```
npm install -g artillery@latest
```
3) создаем файл с расширением .yml для тестирования
```yml
config:
target: 'http://localhost:8080'
phases:
- duration: 60 # количество секунд
arrivalRate: 1000 # 1000 запросов в секунду
scenarios:
- flow:
- post:
url: '/auth/login'
json:
name: 'viktor'
email: 'user@example.com'
password: 'password'
```
4) Запускаем тест
```
artillery run login-test.yml
```
Пронаблюдать как ваше приложение ведет себя в стрессовых условыиях вы моежете Grafana)