TGViewer
📢 Load & Performance 📢 Load & Performance @qaload · 947 subscribers
Post #193 572
Hello performance lovers!

Мне понадобилось написать тесты на десятки методов (HTTP API, SSE, WebSocket) и для каждого метода есть еще по несколько вариантов Query String или тел запросов

Также мне хотелось использовать Gatling throttle, для ровной нагрузки по RPS. А для этого надо было сделать сценарии длиной в один запрос — только так работает throttle

Сделал каждый запрос реализацией интерфейса IEndpointChainBuilder
🤩это позволило работать с каждым из них в едином виде
🤩например, добавлять такие методы в Registry методов где будет указан вес метода (влияет на вероятность вызова) и Lambda которая вызывает IEndpointChainBuilder.build()

За основу профиля нагрузки взял randomSwitch().on(...)
🤩это позволяет запускать все методы с весами
🤩подметоды методов можно тоже запускать с весами (randomswitch может быть вложенным)
🤩веса вычисляет класс-утилита Registry, который на вход принимает количества и сам вычисляет проценты в этой группе

Так как часть методов связаны — некоторые ответы являются основной для других запросов, — то добавил механизм Adapter-ов которые добавляют общие классы-хранилища (потокобезопасные Queue или Map) в связанные запросы
🤩атомарные запросы связаны не через Gatling Session, а через общие Queue и Map, заданные через Adapter-ы

Получился расширяемый проект
🤩легко добавить новый метод
🤩легко скорректировать актуальное количество (вес) каждого метода

Чтобы было проще отлаживать добавил к заголовкам каждого запроса X-TEST-NAME, где содержится имя теста:
🤩по заголовкам запроса легко отследить запрос на прокси-сервере как ProxyMan.io

Концепт написал и отладил руками, опираясь на знание Gatling DSL. И когда первые тесты были готовы и отлажены, то за работу по добавлению новых методов и вариаций тел и параметров запросов взялся AI агент Junie, который встроен в 💻 ItelliJ IDEA

Закодировать методы и добавить адаптеры по спецификации агент может с помощью как Gemini так и Opus, выбор модели не так важен

Отладка пока осталась на мне. Но процесс понятный
  • 👍 1
More from @qaload
  1. Sep 30, 2026Привет любители производительности! Если вы ищите что почитать, то вот тут собралась отлич…
  2. Sep 27, 2026Привет! Сделал видео про несколько мониторов и несколько простых инструментов Да и настрои…
  3. Sep 24, 2026Кажется, удача меня любит Чуть базу данных не сломал, но разграничение прав помогло 🍿 Ист…
  4. Sep 23, 2026Привет performance lovers! Недавно слышал совет: делать обработку данных, как можно ближе…
  5. Sep 20, 2026Привет performance lovers! Видео выше сделано, отчасти, потому, что другие люди проложили…
  6. Sep 12, 2026Привет performance lovers! Утилита GitHub cli упростила мою работу на этой неделе: https:/…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →