README.md

Stress-Tester

Программа для нагрузочного тестирования web-ресурсов

Содержание

Технологии

Использование

Программа принимает три параметра:

  • -config YAML-файл
  • -server
  • -port НОМЕР

Обязателен, как минимум, один из параметров.

-config YAML-файл - указание файла конфигурации для тестирования

-server - программа запускается в режиме сервера для тестирования запросов с разных машин. После запуска выводит номер порта, который он слушает. при распределении процесса на несколько серверов, значение settings.rps тоже будет распределено

-port НОМЕР - применяется для серверного режима. позволяет указать номер порта, который нужно слушать. если порт занят, то работа программы прерывается. если не указывать порт, то будет выбран случайный свободный порт в диапазоне от 10000 до 65535

Usage of stress-tester:
  -config string
    	конфигурационный файл для тестов
  -port uint
    	порт для сервера (по умолчанию: случайное значение из диапазона [10000;65535])
  -server
    	запуск в режиме сервера (по умолчанию: false)

Пример конфигурации

version: 3

settings:
  rps: 500 # запросов в секунду
  duration: 10 # продолжительность теста в секундах
  shuffle: true # перемешивать список URL
  follow_redirects: false # возвращать код редиректа или делать редирект(ы) и возвращать код ответа
  timeout: 0 # ограничение времени ожидания ответа (работает только, если follow_redirects = false)

resources:
  host: https://domain.tld # хост для запроса
  urls: # список URL относительно вышеуказанного хоста
    - path1
    - path2?query=value

remote_hosts: # IP адрес и порт, который слушает приложение, запущенное в режиме сервера
  - 127.0.0.1:12345
  
links_masks: # список регулярных выражений для URL, который нужно вызывать из ответа 
  - https://domain.tld/[A-Z]+
  - https://domain.tld/[0-9]+###50 # можно добавить вероятность вызова ссылки после разделителя "###"
  # если указать 0, то ссылка вызываться не будет
  # все значения не из диапазона [0;100] будут игнорироваться
  # при отсутствия значения, будет использоваться вероятность 100

Разработка

Требования

Для установки и запуска проекта, необходим Go v1.23.0+.

Установка зависимостей

Для установки зависимостей, выполните команду:

$ go mod tidy

Создание билда

Чтобы выполнить production сборку, выполните команду:

$ make build
Описание

Проект для нагрузочного тестирования

Конвейеры
0 успешных
0 с ошибкой