test(load): k6 smoke for 100 wave listeners and 20 rps suggest (M7)
Three minutes of wave sessions with stream starts, play events and next batches alongside a steady suggest load; thresholds follow the documented p95 targets. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
aacf55679a
commit
86c3e4e477
2 files changed
+140
-1
No files matched your search
+25
-1
@@ -49,4 +49,28 @@
|
||||
- Покрытие: Go и Python ≥ 70% по строкам для `internal/*/service` и `pipu_rec/*`; для `auth/policy` — 100% веток.
|
||||
- Тест на каждый исправленный баг.
|
||||
- Flaky-тесты помечаются и чинятся в течение недели, а не перезапускаются бесконечно.
|
||||
- Нагрузочный smoke (k6, вручную перед релизом): 100 одновременных слушателей, 20 rps на suggest — p95 в рамках целей.
|
||||
- Нагрузочный smoke (k6, вручную перед релизом) — см. ниже.
|
||||
|
||||
## Нагрузочный smoke
|
||||
|
||||
`tests/load/smoke.js` (k6 ≥ 0.50), 3 минуты: 100 одновременных слушателей волны (старт волны, начало потока
|
||||
каждого трека — первые 64 КБ, события прослушивания, следующая пачка с отзывами) и 20 запросов подсказок поиска
|
||||
в секунду. Пороги — цели из [api.md](api.md) и [recommendations.md](recommendations.md#10-требования-к-производительности):
|
||||
|
||||
| Запрос | p95 |
|
||||
|---|---|
|
||||
| `GET /search/suggest` | < 50 мс |
|
||||
| `POST /wave/sessions/{id}/next` | < 150 мс |
|
||||
| `POST /wave/sessions` | < 300 мс |
|
||||
| начало потока (`Range: bytes=0-65535`) | < 300 мс |
|
||||
| `POST /events` | < 100 мс |
|
||||
|
||||
Ошибок < 1%. k6 завершается с ненулевым кодом, если порог не выполнен.
|
||||
|
||||
```bash
|
||||
k6 run -e BASE_URL=https://music.example.com -e PIPU_USER=loadtest -e PIPU_PASSWORD=… tests/load/smoke.js
|
||||
```
|
||||
|
||||
Пользователь — отдельный обычный (`role=user`): тест наполняет его историю и лайки. Нагрузку можно менять:
|
||||
`-e LISTENERS=20 -e SUGGEST_RPS=5 -e DURATION=1m`. Запускать с машины в той же сети, что и сервер, —
|
||||
иначе в цифрах будет задержка канала.
|
||||
Reference in new issue
Block a user