Files
IPSExtractor/docs/plan_pruebas/scripts/README.md
T

78 lines
3.0 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Scripts k6 — Plan de estrés IPSExtractor
Requieren [k6](https://k6.io/docs/get-started/installation/) y el stack en `http://127.0.0.1:8189`.
## Entorno de referencia (obligatorio en informes)
Las pruebas de carga del proyecto se calibran para el host:
- **Hostname:** `ubuntu` (ASUS X441UAK)
- **SO:** Ubuntu 24.04.4 LTS
- **CPU / RAM:** i5-7200U, 8 GiB
- **Docker compartido** con MLflow (~1.8 GiB), Airflow, n8n, MinIO, etc.
Antes de cada corrida, adjuntar al informe:
```bash
hostnamectl | head -5
free -h
docker stats --no-stream
curl -s -w '\ntime=%{time_total}s\n' http://127.0.0.1:8189/health/live
```
## Perfiles (`PROFILE`)
| Valor | Cuándo |
|-------|--------|
| `shared8g` (default) | Host actual con otros contenedores |
| `lab` | Solo IPSExtractor, ≥3 GiB libres |
## Variables
| Variable | Default | Descripción |
|----------|---------|-------------|
| `BASE_URL` | `http://127.0.0.1:8189` | Gateway |
| `PROFILE` | `shared8g` | Perfil de carga |
| `BOT_API_TOKEN` | `dev-token-change-me` | Bearer bot |
| `DOWNLOAD_JOB_ID` | — | Obligatorio en events |
| `WORKER_PREFIX` | `load-w` | Prefijo heartbeats |
| `PDF_B64` | (PDF mínimo) | PDF para count |
## Ejecución
```bash
k6 run -e PROFILE=shared8g -e BASE_URL=http://127.0.0.1:8189 k6_gateway_health.js
k6 run -e PROFILE=shared8g -e BOT_API_TOKEN=dev-token-change-me k6_bot_heartbeats.js
k6 run -e PROFILE=shared8g -e DOWNLOAD_JOB_ID=<id> k6_bot_events.js
k6 run -e PROFILE=shared8g k6_smoke_suite.js
# Solo si free -h muestra ≥3GiB disponibles:
k6 run -e PROFILE=shared8g k6_count_batches.js
# o Python (PDFs reales, Windows-friendly):
.\docs\plan_pruebas\scripts\st_count_01_bench.ps1 -Profile shared8g
# Latencia count-api con PDFs reales:
bash docs/plan_pruebas/scripts/measure_count_latency.sh
# Latencia LLM ST-EXT-02 (mismo schema/campos, gpt-5.4-mini):
bash docs/plan_pruebas/scripts/st_ext_02_llm_bench.sh
# Windows: .\docs\plan_pruebas\scripts\st_ext_02_llm_bench.ps1 -Limit 10
# Cola ARQ ST-EXT-01 (LLM mock, sin coste OpenAI):
# 1) Mock (otra terminal) + extraction con ASYNC_QUEUE=true y EXTRACTOR_BASE_URL→mock
bash docs/plan_pruebas/scripts/llm_mock_server.sh
# 2) Bench (shared8g ≈30 docs / lab ≈200):
bash docs/plan_pruebas/scripts/st_ext_01_arq_bench.sh
PROFILE=lab ARQ_BENCH_LIMIT=100 bash docs/plan_pruebas/scripts/st_ext_01_arq_bench.sh
# Windows:
# .\docs\plan_pruebas\scripts\llm_mock_server.ps1
# .\docs\plan_pruebas\scripts\st_ext_01_arq_bench.ps1 -Profile shared8g -Limit 30
# .\docs\plan_pruebas\scripts\st_ext_01_arq_bench.ps1 -StartMock -Limit 20
```
Modelo de capacidad 100k/mes: [`estimate_capacity.md`](estimate_capacity.md). Informe PDF: [`../InformePruebas_IPSExtractor.pdf`](../InformePruebas_IPSExtractor.pdf).
PDFs de prueba: [`../data/`](../data/) (`500000284335937.pdf`, `...940.pdf`, `...954.pdf`).
Tras el bench LLM: resultados en [`../informe/sections/13_llm_latency.tex`](../informe/sections/13_llm_latency.tex)
(CSV `informes/llm_latency_20260717.csv`). Schema: `informes/st_ext_02_schema.json`.