test: G_MULTIUSER — 10 parallel users + Postgres (ready to run)
This commit is contained in:
+19
-19
@@ -13,30 +13,30 @@
|
||||
|
||||
---
|
||||
|
||||
## TODO (завтра — приоритет)
|
||||
## TODO (в работе — сессия 9)
|
||||
|
||||
### ПЛАН: multi-user тест с Postgres
|
||||
### G_MULTIUSER: 10 параллельных пользователей с Postgres
|
||||
|
||||
**Шаг 1 — Добавить Postgres в survival тест (один юзер):**
|
||||
- Функции в `operator_survival_test.sh` сейчас echo-хендлеры без PG
|
||||
- Добавить группу тестов где функция делает реальные INSERT/SELECT в Postgres
|
||||
- Postgres креды берутся из параметров ресурса `sless_pg` (через `env_vars` функции)
|
||||
- Изоляция: таблица называется `test_<namespace>` — каждый юзер пишет в свою
|
||||
- Прогнать от одного юзера → убедиться что работает
|
||||
**Статус:** пишем `operator_multiuser_test.sh`
|
||||
|
||||
**Шаг 2 — Параметризовать survival тест:**
|
||||
- `TOKEN` и `NAMESPACE` через env переменные (сейчас хардкодные)
|
||||
- `PG_DSN` через env переменную (берётся из параметров Postgres ресурса)
|
||||
**Реализация (упрощённая, без SHA256):**
|
||||
- 10 фейковых JWT: sub=`test-user-01`..`test-user-10` (подпись не проверяется оператором)
|
||||
- Namespace: `sless-mu01`..`sless-mu10` (создаются через `/ensure`)
|
||||
- Каждый пользователь создаёт сервис `pg-muXX` с Python 3.11 + psycopg2
|
||||
- Функция INSERT/SELECT в таблицу `test_sless_muXX` (изоляция по таблице)
|
||||
- Параллельный запуск 10 пользователей через `&` + `wait`
|
||||
|
||||
**Шаг 3 — Обёртка на 10 юзеров:**
|
||||
- `operator_multiuser_test.sh`
|
||||
- Генерирует 10 фейковых JWT (`test-user-01` ... `test-user-10`)
|
||||
- Для каждого вычисляет namespace (SHA256(sub)[:8 байт])
|
||||
- `POST /v1/namespaces/{ns}/ensure` — создаёт namespace
|
||||
- Параллельно запускает полный survival тест в каждом namespace (`&`)
|
||||
- Ждёт всех (`wait`), собирает итоговый отчёт: PASS/FAIL по каждому юзеру
|
||||
**Технические детали:**
|
||||
- PG host: `postgresqlk8s-master.bba55e0f-4c51-4312-8ad3-efc557de331d.svc.cluster.local`
|
||||
- PG creds: `user0 / db0` (из `examples/POSTGRES/terraform.tfvars`)
|
||||
- `sless-fn-{ns}` создаётся автоматически контроллером при первом сервисе
|
||||
- Таймаут Kaniko: 900s (psycopg2-binary тяжёлый пакет)
|
||||
- Ожидаемый результат: **80 тестов (8×10)**
|
||||
|
||||
**Ожидаемый результат:** ~340 тестов (34×10), ~15-20 минут параллельно
|
||||
**Тесты на пользователя (8 шт):**
|
||||
U-1: ensure namespace | U-2: create service | U-3: upload code
|
||||
U-4: wait Ready | U-5: invoke1 (count≥1) | U-6: invoke2 (count grew)
|
||||
U-7: isolation (other ns → 404) | U-8: delete
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user