An open API service indexing awesome lists of open source software.

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.

Awesome Lists containing this project

README

          

# web-testing
spring 

Набор инструментов для нагрузочного тестирования вашего приложения на 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)