{"id":27559146,"url":"https://github.com/vnikolaenko-dev/web-testing","last_synced_at":"2026-03-13T14:32:47.472Z","repository":{"id":285389356,"uuid":"957967404","full_name":"vnikolaenko-dev/Web-testing","owner":"vnikolaenko-dev","description":"Набор инструментов для тестирования вашего приложения на Java Spring Boot.","archived":false,"fork":false,"pushed_at":"2025-04-12T19:34:15.000Z","size":145,"stargazers_count":3,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-19T23:33:09.641Z","etag":null,"topics":["artillery","docker-compose","grafana","prometheus","spring-boot","testing"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vnikolaenko-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-03-31T12:30:57.000Z","updated_at":"2025-04-12T19:34:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"33203615-00f4-4ca0-8831-8ddfe0f784f7","html_url":"https://github.com/vnikolaenko-dev/Web-testing","commit_stats":null,"previous_names":["vnikolaenko-dev/web-testing"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vnikolaenko-dev%2FWeb-testing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vnikolaenko-dev%2FWeb-testing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vnikolaenko-dev%2FWeb-testing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vnikolaenko-dev%2FWeb-testing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vnikolaenko-dev","download_url":"https://codeload.github.com/vnikolaenko-dev/Web-testing/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249830836,"owners_count":21331355,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["artillery","docker-compose","grafana","prometheus","spring-boot","testing"],"created_at":"2025-04-19T23:33:12.850Z","updated_at":"2026-03-13T14:32:47.437Z","avatar_url":"https://github.com/vnikolaenko-dev.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# web-testing\n\u003cimg src=\"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSqT1SJ2-10Nt4SfENScW41TuQBkqvHpApsNeBw6h44_KLbyCywu8NO_y_d4ug6bfLFPKM-z0groqAkCdzBy9oS1GTxpOI_IU0YEANjFETgemUnLKqTZnxAgqQtEJ3aWHEVfyxMmAK4fA/s1600/spring-boot-logo.png\" title=\"spring\" alt=\"spring\" width=\"300\" height=\"150\"/\u003e\u0026nbsp;\n\u003c/br\u003e\nНабор инструментов для нагрузочного тестирования вашего приложения на Java Spring Boot.\n\u003c/br\u003e\n\u003c/br\u003e\nPrometheus - приложение, используемое для мониторинга событий, сбора и хранения метрик.\n\u003c/br\u003e\nGrafana - программная система визуализации данных, ориентированная на данные систем ИТ-мониторинга.\n\u003c/br\u003e\nCompose- программное обеспечение для автоматизации развёртывания и управления приложениями.\n\u003c/br\u003e\nArtillery - платформа для нагрузочного тестирования.\n\u003c/br\u003e\u003c/br\u003e\n\n## Часть №1 (Spring Boot Actuator)\n\nSpring Boot Actuator - предоставляет REST-эндпоинты для мониторинга здоровья, метрик и производительности приложения.\n```xml\n        \u003cdependency\u003e\n            \u003cgroupId\u003eorg.springframework.boot\u003c/groupId\u003e\n            \u003cartifactId\u003espring-boot-starter-actuator\u003c/artifactId\u003e\n        \u003c/dependency\u003e\n```\n\nвключим необходиме эндпоинты в application.properties\n```properties\nmanagement.endpoints.web.exposure.include=health,info,env,beans,metrics\n```\n\nтеперь при запуске нашего приложения мы можем смтореть различные метрики:\n\u003c/br\u003e\nhttp://localhost:8080/actuator/helth - общее состояние приложения\n\u003c/br\u003e\nhttp://localhost:8080/actuator/metrics/system.cpu.usage - загрузка процессора\n\u003c/br\u003e\nhttp://localhost:8080/actuator/heapdump - скачать дамп памяти JVM в формате .hprof\n\u003c/br\u003e\nи т.д.\n\u003c/br\u003e\u003c/br\u003e\n\n\n## Часть №2 (Prometheus + Grafana)\n\nВидеть информацию в формате Json, конечно, полезно, однако хотелось бы иметь более удобный способ оценки работоспособности продукта.\n\nЗдесь нам поможет:\n\u003c/br\u003e1) Prometheus - система мониторинга и сбора метрик с открытым исходным кодом\n\u003c/br\u003e2) Grafana  - инструмент для визуализации данных\n\n1) Скачиваем докер клиент (https://www.docker.com/)\n2) Скачиваем все файлы из папке Grafana-Docker (https://github.com/vnikolaenko-dev/web-testing/tree/main/Grafana-Docker)\n```\ndocker-compose up --build\n```\n3) Запускаем команду в той же дирректории \n4) Запускаем приложение Java Spring на порту 8080 (предварительно вписав prometheus в application.properties)\n```\nmanagement.endpoints.web.exposure.include=health,info,metrics,prometheus\n```\n5) Переходим на http://localhost:3000/ (стандартный логин и пароль admin admin)\n6) Видим графики и статистку в Dashboards\n\u003cimg src=\"https://github.com/vnikolaenko-dev/web-testing/blob/main/img/screen1.jpg\"/\u003e\n\u003c/br\u003e\u003c/br\u003e\n\n\n## Часть №3 (Artillery)\nArtillery - ПО с открытытм исходным кодом для проведения нагрузочного тестирования\n\n1) Устанавливаем Node.js (https://nodejs.org/en/download)\n2) Скачиваем Artillery\n```\nnpm install -g artillery@latest\n```\n3) создаем файл с расширением .yml для тестирования\n```yml\nconfig:\n  target: 'http://localhost:8080'\n  phases:\n    - duration: 60       # количество секунд\n      arrivalRate: 1000  # 1000 запросов в секунду\nscenarios:\n  - flow:\n      - post:\n          url: '/auth/login'\n          json:\n            name: 'viktor'\n            email: 'user@example.com'\n            password: 'password'\n\n```\n4) Запускаем тест\n```\nartillery run login-test.yml\n```\n\nПронаблюдать как ваше приложение ведет себя в стрессовых условыиях вы моежете Grafana)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvnikolaenko-dev%2Fweb-testing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvnikolaenko-dev%2Fweb-testing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvnikolaenko-dev%2Fweb-testing/lists"}