siesa-agents 2.1.72-qa.2 → 2.1.72-qa.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bmad/bmm/config.yaml +33 -0
- package/claude/skills/sa-agent-sre-sentinel/SKILL.md +180 -0
- package/claude/skills/sa-aplicar/SKILL.md +268 -0
- package/claude/skills/sa-auditar-servicio/SKILL.md +255 -0
- package/claude/skills/sa-nueva-transversal/SKILL.md +317 -0
- package/claude/skills/sa-nuevo-ambiente/SKILL.md +147 -0
- package/claude/skills/sa-nuevo-servicio/SKILL.md +530 -0
- package/claude/skills/sa-onboard-db/SKILL.md +122 -0
- package/claude/skills/sa-qa-data-generator/SKILL.md +200 -51
- package/claude/skills/sa-quality-process/SKILL.md +6 -0
- package/claude/skills/sa-registrar-permisos/SKILL.md +233 -0
- package/package.json +1 -1
- package/siesa-agents/bmm/workflows/3-solutioning/quality-process/prompts/prompt_design_test.md +1037 -60
- package/siesa-agents/bmm/workflows/3-solutioning/quality-process/prompts/prompt_dor_gate.md +419 -379
- package/siesa-agents/bmm/workflows/3-solutioning/quality-process/prompts/prompt_e2e_executor.md +273 -0
- package/siesa-agents/bmm/workflows/3-solutioning/quality-process/prompts/prompt_playwright_impl.md +359 -355
- package/siesa-agents/bmm/workflows/3-solutioning/quality-process/prompts/prompt_test_plan.md +73 -111
- package/siesa-agents/bmm/workflows/3-solutioning/quality-process/workflow.md +1320 -997
- package/siesa-agents/resources/playwright-kit/.env.example +42 -0
- package/siesa-agents/resources/playwright-kit/README.md +228 -0
- package/siesa-agents/resources/playwright-kit/allure/categories.json +26 -0
- package/siesa-agents/resources/playwright-kit/global-setup.ts +34 -0
- package/siesa-agents/resources/playwright-kit/helpers/blazor-e2e-helpers.ts +417 -0
- package/siesa-agents/resources/playwright-kit/helpers/react-e2e-helpers.ts +297 -0
- package/siesa-agents/resources/playwright-kit/package-lock.json +850 -0
- package/siesa-agents/resources/playwright-kit/package.json +27 -0
- package/siesa-agents/resources/playwright-kit/playwright.config.ts +60 -0
- package/siesa-agents/resources/playwright-kit/proposed/.gitkeep +0 -0
- package/siesa-agents/resources/playwright-kit/reporters/agiletest-reporter.ts +252 -0
- package/siesa-agents/resources/playwright-kit/specs/.gitkeep +0 -0
- package/siesa-agents/resources/playwright-kit/specs/architecture-brief-siesa-erp.md +85 -0
- package/siesa-agents/resources/playwright-kit/specs/architecture-brief-siesa-react.md +109 -0
- package/siesa-agents/resources/playwright-kit/specs/architecture-brief-template.md +69 -0
- package/siesa-agents/resources/playwright-kit/tests/seed-example.spec.ts +95 -0
- package/siesa-agents/resources/playwright-kit/tools/locator-overlay.js +1306 -0
- package/siesa-agents/resources/playwright-kit/tools/locator-recorder.spec.ts +986 -0
- package/siesa-agents/scripts/__pycache__/bmad_to_agiletest.cpython-36.pyc +0 -0
- package/siesa-agents/scripts/bmad_to_agiletest.py +352 -337
- package/siesa-agents/scripts/converters/convert_csv_to_test_design.py +327 -0
- package/siesa-agents/scripts/converters/convert_excel_to_test_design.py +360 -0
- package/siesa-agents/scripts/converters/convert_md_to_test_design.py +359 -0
- package/siesa-agents/scripts/converters/convert_pdf_to_test_design.py +412 -0
- package/siesa-agents/scripts/converters/export_yaml_to_csv.py +149 -0
- package/siesa-agents/scripts/converters/export_yaml_to_excel.py +233 -0
- package/siesa-agents/scripts/converters/export_yaml_to_markdown.py +172 -0
- package/siesa-agents/scripts/converters/export_yaml_to_pdf.py +297 -0
- package/siesa-agents/scripts/merge_test_design.py +106 -106
- package/siesa-agents/scripts/playwright/yaml-to-playwright-spec.ts +203 -0
- package/siesa-agents/scripts/requirements.txt +7 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# ============================================================
|
|
2
|
+
# Credenciales QA — Grabador v3 + Tests E2E
|
|
3
|
+
# Copia este archivo como .env y personaliza tus valores
|
|
4
|
+
# El .env es personal (gitignored), nunca se sube al repo
|
|
5
|
+
# ============================================================
|
|
6
|
+
|
|
7
|
+
# Credenciales de login (Modo 1: ERP SIESA)
|
|
8
|
+
TEST_USER=Carlos1
|
|
9
|
+
TEST_PASS=1234
|
|
10
|
+
|
|
11
|
+
# URL base del ERP
|
|
12
|
+
BASE_URL=https://erp-qa-beta.siesaerp.com
|
|
13
|
+
|
|
14
|
+
# Base de datos a seleccionar en login (busca por texto en el combo)
|
|
15
|
+
# Opciones tipicas: sqlserver, postgresql
|
|
16
|
+
DB_ENGINE=sqlserver
|
|
17
|
+
|
|
18
|
+
# Cultura/idioma (comentar para usar la predeterminada del ERP)
|
|
19
|
+
# CULTURE=es-CO
|
|
20
|
+
|
|
21
|
+
# Ruta inicial del modulo a verificar/grabar (opcional, ej: /BLSurveyDocument/)
|
|
22
|
+
# Usada por seed-example.spec.ts (test de navegacion) y por el grabador.
|
|
23
|
+
# START_URL=
|
|
24
|
+
|
|
25
|
+
# Titulo de la suite en los reportes Allure/Monocart (opcional)
|
|
26
|
+
# SUITE_TITLE=E2E — Pipeline Agentes IA
|
|
27
|
+
|
|
28
|
+
# ── Modo Portal de Empleo (grabador: PORTAL_LOGIN=1) ───────────────
|
|
29
|
+
# Sin defaults: deben definirse para usar el modo portal.
|
|
30
|
+
# PORTAL_LOGIN=1
|
|
31
|
+
# PORTAL_URL=https://portal.example.com/Login/?dat=...
|
|
32
|
+
# PORTAL_USER=
|
|
33
|
+
# PORTAL_PASS=
|
|
34
|
+
|
|
35
|
+
# ── Ajustes de CI / timing (opcionales) ───────────────────────────
|
|
36
|
+
# CI=1 lo define el runner automáticamente (headless, retries=2, junit, trace on-first-retry).
|
|
37
|
+
# CI=1
|
|
38
|
+
# Margen de asentamiento tras red-en-reposo + loader SDK (ms) en blazor-e2e-helpers.
|
|
39
|
+
# BLAZOR_SETTLE_MS=1000
|
|
40
|
+
# Timeouts de acción/navegación (ms) — subir en CI lento.
|
|
41
|
+
# ACTION_TIMEOUT=30000
|
|
42
|
+
# NAVIGATION_TIMEOUT=30000
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
# Kit Playwright + Agentes IA — Siesa
|
|
2
|
+
|
|
3
|
+
## Qué es esto
|
|
4
|
+
|
|
5
|
+
Kit portable para automatización E2E con agentes IA (Planner → Generator → Healer).
|
|
6
|
+
Desarrollado por el equipo QA de I&D — Procesos y Calidad de Software.
|
|
7
|
+
|
|
8
|
+
Validado en **9 réplicas**, 2 módulos (Encuestas + Capacitaciones), 271 tests,
|
|
9
|
+
mejora de **160 min → 4 min**, 5 réplicas consecutivas sin Healer (R5-R9).
|
|
10
|
+
|
|
11
|
+
## Estructura
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
playwright-agentes-ia-siesa/
|
|
15
|
+
├── README.md ← Este archivo
|
|
16
|
+
├── package.json ← Dependencias (npm install)
|
|
17
|
+
├── playwright.config.ts ← Configuración Playwright (Allure + Monocart)
|
|
18
|
+
├── helpers/
|
|
19
|
+
│ └── blazor-e2e-helpers.ts ← 14 helpers E2E reutilizables
|
|
20
|
+
├── tools/
|
|
21
|
+
│ ├── locator-recorder.spec.ts ← Grabador de Localizadores V3
|
|
22
|
+
│ └── locator-overlay.js ← UI del grabador (overlay)
|
|
23
|
+
├── tests/
|
|
24
|
+
│ └── seed-example.spec.ts ← Seed: login + navegación
|
|
25
|
+
├── specs/ ← Insumos (.md generados por agente)
|
|
26
|
+
├── proposed/ ← Specs generados (pre-promoción)
|
|
27
|
+
├── captured-locators/ ← Localizadores capturados
|
|
28
|
+
├── allure-results/ ← Datos crudos Allure (auto-generados)
|
|
29
|
+
├── allure-report/ ← Reporte HTML Allure (auto-generado)
|
|
30
|
+
└── monocart-report/ ← Reporte HTML Monocart (auto-generado)
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Requisitos previos
|
|
34
|
+
|
|
35
|
+
- Node.js 20+ (recomendado 22 LTS)
|
|
36
|
+
- npm 10+
|
|
37
|
+
- Git
|
|
38
|
+
|
|
39
|
+
## Instalación (5 minutos)
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
# 1. Descomprimir y entrar
|
|
43
|
+
cd playwright-agentes-ia-siesa
|
|
44
|
+
|
|
45
|
+
# 2. Instalar dependencias
|
|
46
|
+
npm install
|
|
47
|
+
|
|
48
|
+
# 3. Instalar navegadores Playwright
|
|
49
|
+
npx playwright install chromium
|
|
50
|
+
|
|
51
|
+
# 4. Verificar con el seed
|
|
52
|
+
TEST_USER=Carlos1 TEST_PASS=1234 npx playwright test tests/seed-example.spec.ts --headed
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Reportes de ejecución
|
|
56
|
+
|
|
57
|
+
El kit incluye 3 reporters integrados que se generan automáticamente al ejecutar tests:
|
|
58
|
+
|
|
59
|
+
| Reporter | Comando para ver | Qué muestra |
|
|
60
|
+
|----------|-----------------|-------------|
|
|
61
|
+
| **Allure** | `npm run report:allure` | Gráficas, timeline, steps por test, screenshots |
|
|
62
|
+
| **Monocart** | `npm run report:monocart` | 348 steps detallados, logs, attachments |
|
|
63
|
+
| **Playwright HTML** | `npm run report` | Reporte nativo con traces y video |
|
|
64
|
+
|
|
65
|
+
Los reportes se generan automáticamente al terminar `npm test`. Para regenerar Allure:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
npx allure generate allure-results -o allure-report --clean
|
|
69
|
+
npx allure open allure-report
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Uso del Grabador de Localizadores V3
|
|
73
|
+
|
|
74
|
+
El grabador permite capturar localizadores de cualquier página Blazor Server
|
|
75
|
+
interactivamente, con soporte para 7 formatos de export.
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
# ERP principal
|
|
79
|
+
npx playwright test tools/locator-recorder.spec.ts --headed --timeout 3600000
|
|
80
|
+
|
|
81
|
+
# Portal de Empleo (pre-load + login automático)
|
|
82
|
+
PORTAL_LOGIN=1 PORTAL_URL='https://...' npx playwright test tools/locator-recorder.spec.ts --headed --timeout 3600000
|
|
83
|
+
|
|
84
|
+
# Sin login (páginas públicas)
|
|
85
|
+
SKIP_LOGIN=1 START_URL='https://...' npx playwright test tools/locator-recorder.spec.ts --headed --timeout 3600000
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Funcionalidades del grabador
|
|
89
|
+
|
|
90
|
+
| Acción | Resultado |
|
|
91
|
+
|--------|-----------|
|
|
92
|
+
| **Grabar** (botón) | Captura automática de clicks, fills, selects |
|
|
93
|
+
| **Ctrl+Click** | Captura manual (modo inspección) |
|
|
94
|
+
| **Shift+Click** | Captura elemento + hijos |
|
|
95
|
+
| **Hover** | Ver localizadores del elemento en tooltip |
|
|
96
|
+
| **Escape** | Minimizar/restaurar panel |
|
|
97
|
+
|
|
98
|
+
### Formatos de export
|
|
99
|
+
|
|
100
|
+
| Formato | Uso |
|
|
101
|
+
|---------|-----|
|
|
102
|
+
| **Playwright TS** | Tests Playwright ejecutables con objetos agrupados |
|
|
103
|
+
| **Playwright PY** | Tests Python con sync API |
|
|
104
|
+
| **Robot Framework** | SeleniumLibrary (.robot) |
|
|
105
|
+
| **Cypress** | Tests Cypress (.cy.js) |
|
|
106
|
+
| **Gherkin** | Escenarios BDD (.feature) |
|
|
107
|
+
| **CSV** | Datos tabulares para análisis |
|
|
108
|
+
| **JSON** | Datos crudos para procesamiento |
|
|
109
|
+
|
|
110
|
+
## Pipeline Tri-Agente (Planner → Generator → Healer)
|
|
111
|
+
|
|
112
|
+
### Flujo completo
|
|
113
|
+
|
|
114
|
+
```
|
|
115
|
+
1. SEED → Login + navegación base (seed-example.spec.ts)
|
|
116
|
+
2. DISCOVERY → Grabador de Localizadores captura elementos
|
|
117
|
+
3. INSUMO → Agente convierte PDF/caso AgileTest en specs/insumo.md
|
|
118
|
+
4. PLANNER → Agente genera specs/test-plan.md
|
|
119
|
+
5. GENERATOR → Agente genera proposed/modulo-e2e.spec.ts
|
|
120
|
+
6. HEALER → Agente itera: ejecuta → analiza fallos → corrige
|
|
121
|
+
7. PROMOCIÓN → Spec validado se mueve a tests/
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### Helpers disponibles (blazor-e2e-helpers.ts)
|
|
125
|
+
|
|
126
|
+
| Helper | Descripción |
|
|
127
|
+
|--------|-------------|
|
|
128
|
+
| `createObsCollector()` | Observability: errores consola, HTTP 4xx/5xx, JS exceptions, dialogs |
|
|
129
|
+
| `login()` | Login ERP con credenciales parametrizables |
|
|
130
|
+
| `fillSDKText()` | Llenar campo DevExpress (input) |
|
|
131
|
+
| `fillSDKTextArea()` | Llenar textarea |
|
|
132
|
+
| `fillFechaRadzen()` | Llenar fecha Radzen (MM/DD/YYYY + Enter) |
|
|
133
|
+
| `clickToolbar()` | Click toolbar (maneja botones duplicados por sidebar) |
|
|
134
|
+
| `closeOverlays()` | Cerrar dialogs y notificaciones |
|
|
135
|
+
| `clickActivo()` | Seleccionar estado "Activo" |
|
|
136
|
+
| `waitForSave()` | Esperar loader SDK |
|
|
137
|
+
| `selectEntityPopup()` | Popup lupa: dual-mode (formulario vs grid) |
|
|
138
|
+
| `searchInGrid()` | Buscar en listado: dual-mode + Enter para filtro DevExpress |
|
|
139
|
+
| `navigateTo()` | Navegar y esperar carga |
|
|
140
|
+
| `waitForGrid()` | Esperar grid visible |
|
|
141
|
+
| `getFechas()` | Generar fechas dinámicas (inicio + N días) |
|
|
142
|
+
|
|
143
|
+
### Patrones Blazor Server
|
|
144
|
+
|
|
145
|
+
- **Overlay `search_back_fade`**: Usar `force: true` o JS click
|
|
146
|
+
- **Celda de filtro DevExpress**: Después de `.fill()` presionar `Enter` para activar binding
|
|
147
|
+
- **Listados dual-mode**: Primera visita = formulario búsqueda, después = grid
|
|
148
|
+
- **Toolbar duplicada**: Sidebar oculto duplica botones → usar `.last()`
|
|
149
|
+
- **Entity popup dual**: Formulario (Código+Buscar) vs Grid directo (Celda de filtro)
|
|
150
|
+
- **Descripción siempre textarea**: NO usar SDKCharField para descripción
|
|
151
|
+
- **Pre-load SignalR**: Navegar a URL base primero para cargar recursos
|
|
152
|
+
|
|
153
|
+
## Configuración por ambiente
|
|
154
|
+
|
|
155
|
+
Ajustar `playwright.config.ts`:
|
|
156
|
+
|
|
157
|
+
```typescript
|
|
158
|
+
use: {
|
|
159
|
+
baseURL: process.env.BASE_URL || 'https://erp-qa-beta.siesaerp.com',
|
|
160
|
+
}
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
Variables de entorno:
|
|
164
|
+
|
|
165
|
+
| Variable | Default | Descripción |
|
|
166
|
+
|----------|---------|-------------|
|
|
167
|
+
| `BASE_URL` | `https://erp-qa-beta.siesaerp.com` | URL base del ERP |
|
|
168
|
+
| `TEST_USER` | `Carlos1` | Usuario ERP |
|
|
169
|
+
| `TEST_PASS` | `1234` | Contraseña ERP |
|
|
170
|
+
| `DB_ENGINE` | `sqlserver` | BD a seleccionar en el login (match por texto) |
|
|
171
|
+
| `PORTAL_LOGIN` | - | `1` para login Portal de Empleo |
|
|
172
|
+
| `PORTAL_URL` | - | URL del portal |
|
|
173
|
+
| `PORTAL_USER` | - | Usuario del portal (sin default) |
|
|
174
|
+
| `PORTAL_PASS` | - | Contraseña del portal (sin default) |
|
|
175
|
+
| `SKIP_LOGIN` | - | `1` para páginas públicas |
|
|
176
|
+
| `START_URL` | - | URL inicial del módulo a verificar/grabar |
|
|
177
|
+
| `SUITE_TITLE` | `E2E — Pipeline Agentes IA` | Título de la suite en los reportes |
|
|
178
|
+
| `CI` | - | Lo define el runner: activa headless, `retries:2`, reporter `junit` y `trace:on-first-retry` |
|
|
179
|
+
| `BLAZOR_SETTLE_MS` | `1000` | Margen (ms) del helper `settle()` tras red-en-reposo + loader SDK |
|
|
180
|
+
| `ACTION_TIMEOUT` | `30000` | Timeout de acción (ms) — subir en CI lento |
|
|
181
|
+
| `NAVIGATION_TIMEOUT` | `30000` | Timeout de navegación (ms) — subir en CI lento |
|
|
182
|
+
|
|
183
|
+
## Buenas prácticas (CI y mantenibilidad)
|
|
184
|
+
|
|
185
|
+
- **Limpieza de datos de test** (H-F6-15): los specs que crean registros deben limpiarlos
|
|
186
|
+
en un hook `test.afterAll(...)` (o `afterEach`) propio del módulo —el kit no puede saber
|
|
187
|
+
qué entidades creaste—. Usa `closeOverlays(page)` para cerrar diálogos/notificaciones
|
|
188
|
+
pendientes antes de cerrar el contexto.
|
|
189
|
+
- **Imports de helpers** (H-F6-16): impórtalos con ruta relativa correcta según dónde viva
|
|
190
|
+
el spec. Si dejas los specs en `tests/`, usa `../helpers/blazor-e2e-helpers`; si mueves el
|
|
191
|
+
spec a otra carpeta, ajusta la ruta. (No hay alias de path configurado en el kit.)
|
|
192
|
+
- **Exit codes en CI** (H-F6-21): Playwright retorna código ≠0 si algún test falla y 0 si
|
|
193
|
+
todos pasan; tu pipeline debe usar ese exit code como gate. El `junit.xml` (activo con `CI=1`)
|
|
194
|
+
alimenta el reporte de resultados de GitHub Actions/Jenkins.
|
|
195
|
+
- **Esperas** (H-F6-07): usa `settle(page)` (red-en-reposo + loader SDK + margen
|
|
196
|
+
`BLAZOR_SETTLE_MS`) en vez de `waitForTimeout()` incondicionales.
|
|
197
|
+
|
|
198
|
+
## Resultados validados
|
|
199
|
+
|
|
200
|
+
| Réplica | Módulo | Tests | Resultado | Tiempo Pipeline | Tiempo Ejecución |
|
|
201
|
+
|---------|--------|-------|-----------|-----------------|------------------|
|
|
202
|
+
| R1 | Encuestas | 20 | 20/20 PASS | ~160 min | ~8 min |
|
|
203
|
+
| R3 | Encuestas | 21 | 20/21 PASS | ~40 min | 4.2 min |
|
|
204
|
+
| R4 | Capacitaciones | 16 | 16/16 PASS | ~35 min | 5.2 min |
|
|
205
|
+
| R5-R7 | Capacitaciones | 16 | 16/16 PASS | <15 min | ~5 min |
|
|
206
|
+
| R8 | Capacitaciones | 16 | 16/16 PASS | 4 min | 4 min |
|
|
207
|
+
| R9 | Capacitaciones | 16 | 16/16 PASS | 4 min | 4 min |
|
|
208
|
+
|
|
209
|
+
## Equipo
|
|
210
|
+
|
|
211
|
+
- **Líder QA**: Juan Manuel Reina Montoya
|
|
212
|
+
- **QA HCM**: Carlos Felipe Diaz Lombana, Jose Alejandro Bravo Escobar
|
|
213
|
+
- **I&D**: Equipo de Procesos y Calidad de Software, SIESA
|
|
214
|
+
|
|
215
|
+
## Capacitación
|
|
216
|
+
|
|
217
|
+
Si necesitas aprender o reforzar Playwright, el equipo QA mantiene un curso completo:
|
|
218
|
+
|
|
219
|
+
**Playwright Academy — Siesa**
|
|
220
|
+
https://playwright-training-siesa-academy.netlify.app/
|
|
221
|
+
|
|
222
|
+
- 140 lecciones interactivas | 21 secciones | 55-60 horas
|
|
223
|
+
- Desde fundamentos hasta CI/CD y patrones enterprise
|
|
224
|
+
- Incluye secciones de Allure, Monocart, Visual Testing, API Testing
|
|
225
|
+
- Contexto SIESA en ejemplos y mejores prácticas
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
*Generado automáticamente — Pipeline QA E2E v3.2 con Agentes IA*
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"name": "Defecto de producto",
|
|
4
|
+
"description": "Fallo causado por un bug real en la aplicacion bajo prueba",
|
|
5
|
+
"matchedStatuses": ["failed"],
|
|
6
|
+
"messageRegex": ".*expected.*to(Be|Have|Contain|Match).*"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"name": "Infraestructura / Red",
|
|
10
|
+
"description": "Fallo por timeout, conexion o servidor no disponible",
|
|
11
|
+
"matchedStatuses": ["broken"],
|
|
12
|
+
"messageRegex": ".*(timeout|ECONNREFUSED|ERR_CONNECTION|net::ERR_|Navigation|502|503|504).*"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"name": "Selector no encontrado",
|
|
16
|
+
"description": "Elemento no visible o localizador incorrecto",
|
|
17
|
+
"matchedStatuses": ["broken"],
|
|
18
|
+
"messageRegex": ".*(waiting for (locator|selector)|strict mode violation|no element found).*"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"name": "Error de datos / Estado",
|
|
22
|
+
"description": "Datos de prueba incorrectos o estado inesperado de la aplicacion",
|
|
23
|
+
"matchedStatuses": ["failed"],
|
|
24
|
+
"messageRegex": ".*(already exists|duplicate|unique constraint|validation error).*"
|
|
25
|
+
}
|
|
26
|
+
]
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Global setup — genera allure/environment.properties antes de los tests.
|
|
3
|
+
* Se ejecuta una sola vez al inicio de la suite.
|
|
4
|
+
*/
|
|
5
|
+
import { FullConfig } from '@playwright/test';
|
|
6
|
+
import * as fs from 'fs';
|
|
7
|
+
import * as os from 'os';
|
|
8
|
+
import * as path from 'path';
|
|
9
|
+
|
|
10
|
+
async function globalSetup(config: FullConfig) {
|
|
11
|
+
const dir = 'allure-results';
|
|
12
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
13
|
+
|
|
14
|
+
const props = [
|
|
15
|
+
`Browser=Chromium`,
|
|
16
|
+
`Framework=Playwright ${require('@playwright/test/package.json').version}`,
|
|
17
|
+
`Node=${process.version}`,
|
|
18
|
+
`OS=${os.type()} ${os.release()}`,
|
|
19
|
+
`Base.URL=${config.projects[0]?.use?.baseURL || 'N/A'}`,
|
|
20
|
+
`Suite=${process.env.SUITE_TITLE || 'E2E — Pipeline Agentes IA'}`,
|
|
21
|
+
`Team=QA I&D — Procesos y Calidad de Software, SIESA`,
|
|
22
|
+
].join('\n');
|
|
23
|
+
|
|
24
|
+
fs.writeFileSync(path.join(dir, 'environment.properties'), props);
|
|
25
|
+
|
|
26
|
+
// Copiar categories.json si existe
|
|
27
|
+
const catSrc = path.join(__dirname, 'allure', 'categories.json');
|
|
28
|
+
const catDst = path.join(dir, 'categories.json');
|
|
29
|
+
if (fs.existsSync(catSrc)) {
|
|
30
|
+
fs.copyFileSync(catSrc, catDst);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export default globalSetup;
|