AgentSkillsCN

e2e-testing

使用 MCP 浏览器对 Copilot Metrics 门户进行全面的端到端测试。遍历所有页面,验证功能、可访问性及性能。以 Markdown 格式生成包含详细结果的质量报告。适用于当用户要求测试应用、执行 E2E 测试、验证门户功能,或确认各项功能均运行正常时使用。

SKILL.md
--- frontmatter
name: e2e-testing
description: Ejecuta pruebas end-to-end completas del Copilot Metrics Portal usando MCP browser. Navega todas las secciones, valida funcionalidad, accesibilidad y performance. Genera informe de calidad en Markdown con resultados detallados. Usar cuando el usuario pida testear la aplicación, ejecutar E2E, validar el portal, o verificar que todo funciona correctamente.

E2E Testing - Copilot Metrics Portal

Skill para ejecutar pruebas end-to-end automatizadas del portal con generación de informe de calidad.

⚠️ FLUJO OBLIGATORIO - SEGUIR EN ORDEN

code
┌─────────────────────────────────────────────────────────────────┐
│  PASO 1: EXPLORACIÓN CON MCP BROWSER (PRIORITARIO)             │
│  ─────────────────────────────────────────────────────────────  │
│  ANTES de generar código de tests, SIEMPRE usar el MCP         │
│  Chrome DevTools para explorar la aplicación en vivo.          │
│                                                                 │
│  1. Verificar puerto del servidor (ver terminal)               │
│  2. Navegar a cada sección con navigate_page                   │
│  3. Capturar snapshots con take_snapshot                       │
│  4. Tomar screenshots con take_screenshot                      │
└─────────────────────────────────────────────────────────────────┘
                              ↓
┌─────────────────────────────────────────────────────────────────┐
│  PASO 2: ANÁLISIS DE PERFORMANCE CON MCP                       │
│  ─────────────────────────────────────────────────────────────  │
│  Usar Chrome DevTools MCP para obtener métricas:                │
│                                                                 │
│  1. performance_start_trace con reload=true, autoStop=true     │
│  2. performance_analyze_insight para cada insight              │
│  3. Documentar: LCP, CLS, TTFB, DOM size, render blocking      │
└─────────────────────────────────────────────────────────────────┘
                              ↓
┌─────────────────────────────────────────────────────────────────┐
│  PASO 3: ANÁLISIS DE ACCESIBILIDAD                              │
│  ─────────────────────────────────────────────────────────────  │
│  Analizar desde los snapshots:                                  │
│                                                                 │
│  - ¿Hay exactamente un <h1> por página?                         │
│  - ¿Los headings siguen jerarquía (h1 > h2 > h3)?               │
│  - ¿Todas las <img> tienen alt?                                 │
│  - ¿Todos los <button> tienen texto o aria-label?               │
│  - ¿Los links tienen texto descriptivo?                         │
└─────────────────────────────────────────────────────────────────┘
                              ↓
┌─────────────────────────────────────────────────────────────────┐
│  PASO 4: EJECUTAR TESTS PLAYWRIGHT                              │
│  ─────────────────────────────────────────────────────────────  │
│  cd copilot-metrics-portal                                      │
│  npx playwright test                                            │
└─────────────────────────────────────────────────────────────────┘
                              ↓
┌─────────────────────────────────────────────────────────────────┐
│  PASO 5: GENERAR INFORME DE CALIDAD (OBLIGATORIO)              │
│  ─────────────────────────────────────────────────────────────  │
│  Crear archivo: docs/e2e-reports/quality-report.md              │
│  Con TODOS los datos recopilados en pasos anteriores            │
└─────────────────────────────────────────────────────────────────┘

PASO 1: Exploración con MCP Chrome DevTools

1.1 Verificar Servidor

code
Checklist de Inicio:
- [ ] Verificar que el servidor de desarrollo está corriendo (npm run dev)
- [ ] Confirmar puerto en terminal (normalmente 3000 o 3001)
- [ ] Crear directorio de reportes: docs/e2e-reports/

1.2 Comandos MCP para Exploración

javascript
// 1. Listar páginas existentes
CallMcpTool('user-Chrome DevTools', 'list_pages', {});

// 2. Navegar a la aplicación
CallMcpTool('user-Chrome DevTools', 'navigate_page', {
  url: 'http://localhost:3000/'  // Verificar puerto correcto
});

// 3. Capturar snapshot - ANALIZAR ESTRUCTURA
CallMcpTool('user-Chrome DevTools', 'take_snapshot', {});
// → Identificar: headings, imágenes, links, botones, navegación

// 4. Capturar screenshot visual
CallMcpTool('user-Chrome DevTools', 'take_screenshot', {});

// 5. Navegar a cada sección y repetir

1.3 Secciones a Explorar

SecciónURLElementos a Verificar
Overview/KPIs, gráficos, navegación
Pull Requests/pull-requestsTablas, filtros, paginación
Custom Agents/agentsCharts, métricas
Usuarios/usersRankings, búsqueda
Executive/executiveROI, métricas ejecutivas
Settings/settingsFormularios, configuración

PASO 2: Análisis de Performance con MCP

2.1 Iniciar Trace de Performance

javascript
// Iniciar trace con recarga de página
CallMcpTool('user-Chrome DevTools', 'performance_start_trace', {
  reload: true,
  autoStop: true
});

2.2 Analizar Insights

javascript
// Analizar cada insight disponible
CallMcpTool('user-Chrome DevTools', 'performance_analyze_insight', {
  insightSetId: 'NAVIGATION_0',
  insightName: 'RenderBlocking'  // o DOMSize, LCPBreakdown, etc.
});

2.3 Métricas a Documentar

MétricaUmbral BuenoUmbral Aceptable
LCP< 2,500 ms< 4,000 ms
CLS< 0.1< 0.25
TTFB< 800 ms< 1,800 ms
FCP< 1,800 ms< 3,000 ms

2.4 Estructura de Datos de Performance

typescript
interface PerformanceData {
  LCP: { value: number; status: 'good' | 'needs-improvement' | 'poor' };
  CLS: { value: number; status: string };
  TTFB: { value: number; status: string };
  domSize: { elements: number; depth: number; maxChildren: number };
  renderBlocking: { resources: string[]; impact: string };
}

PASO 3: Análisis de Accesibilidad

3.1 Checklist desde Snapshots

code
Para cada sección, verificar en el snapshot:

□ Headings
  - ¿Exactamente un H1? (considerar header + contenido)
  - ¿Jerarquía correcta? (h1 > h2 > h3, sin saltos)
  
□ Imágenes
  - ¿Todas tienen atributo alt?
  - ¿Alt es descriptivo?

□ Botones
  - ¿Tienen texto visible o aria-label?
  - ¿Botones de iconos tienen aria-label?

□ Links
  - ¿Tienen texto descriptivo?
  - ¿Evitan "click aquí" o "más info"?

□ Formularios
  - ¿Inputs tienen labels asociados?
  - ¿Errores son accesibles?

3.2 Issues Comunes a Detectar

IssueWCAGSeveridad
Múltiples H11.3.1Moderada
Imagen sin alt1.1.1Alta
Botón sin texto/label1.1.1Media
Link sin texto2.4.4Media
Bajo contraste1.4.3Alta

PASO 4: Ejecutar Tests Playwright

4.1 Comando de Ejecución

bash
cd copilot-metrics-portal
npx playwright test

⚠️ IMPORTANTE: Ejecutar SIEMPRE desde copilot-metrics-portal, NO desde el directorio raíz.

4.2 Configuración en playwright.config.ts

typescript
import { defineConfig } from '@playwright/test';

export default defineConfig({
  testDir: './e2e',
  reporter: [
    ['html', { outputFolder: 'docs/e2e-reports', open: 'never' }],
    ['json', { outputFile: 'docs/e2e-reports/results.json' }],
    ['list']
  ],
  use: {
    baseURL: 'http://localhost:3000', // Ajustar puerto
    screenshot: 'on',
  },
  webServer: {
    command: 'npm run dev',
    url: 'http://localhost:3000',
    reuseExistingServer: true,
  },
});

PASO 5: Generar Informe de Calidad (OBLIGATORIO)

5.1 Archivo de Salida

Ubicación: docs/e2e-reports/quality-report.md

5.2 Estructura del Informe

markdown
# Informe de Calidad - Copilot Metrics Portal

**Fecha:** [fecha actual]
**URL base:** [url del servidor]

---

## Resumen Ejecutivo

| Categoría | Puntuación | Estado |
|-----------|------------|--------|
| Performance | XX/100 | [BUENO/MODERADO/MALO] |
| Accesibilidad | XX/100 | [BUENO/MODERADO/MALO] |
| Funcionalidad | XX/100 | [BUENO/MODERADO/MALO] |
| Responsive | XX/100 | [BUENO/MODERADO/MALO] |

---

## 1. Performance

### 1.1 Core Web Vitals
[Tabla con LCP, CLS, TTFB]

### 1.2 Tiempos de Carga por Sección
[Tabla con tiempos]

### 1.3 Issues Detectados
[Lista de issues con severidad y recomendación]

---

## 2. Accesibilidad

### 2.1 Puntuación WCAG
[Tabla con criterios]

### 2.2 Issues Detectados
[Lista con severidad, WCAG, descripción, recomendación]

### 2.3 Checks Pasados
[Lista de verificaciones correctas]

---

## 3. Tests E2E

### 3.1 Resumen
[Total pasados/fallidos/omitidos]

### 3.2 Resultados por Feature
[Tabla con cada test y su resultado]

---

## 4. Recomendaciones
[Lista priorizada de mejoras]

---

## 5. Conclusión
[Veredicto final: APROBADO/RECHAZADO]

5.3 Criterios de Puntuación

PuntuaciónRangoSignificado
EXCELENTE90-100Sin issues, cumple todos los criterios
BUENO75-89Issues menores, funcional
MODERADO50-74Issues que requieren atención
MALO0-49Issues críticos, requiere corrección

Archivos de Salida

code
docs/e2e-reports/
├── quality-report.md       # Informe completo (PRINCIPAL)
├── index.html              # Informe HTML Playwright
├── results.json            # Resultados JSON
├── mcp-analysis.json       # Datos MCP
└── data/
    └── *.png               # Screenshots

Resumen del Flujo

code
Usuario pide: "haz las pruebas del portal" / "revisa la calidad"

1. ✅ Verificar servidor corriendo (ver terminal)
2. ✅ USAR MCP navigate_page a página principal
3. ✅ USAR MCP take_snapshot para ver estructura
4. ✅ USAR MCP performance_start_trace para métricas
5. ✅ USAR MCP performance_analyze_insight
6. ✅ NAVEGAR cada sección con MCP, analizar snapshots
7. ✅ DETECTAR issues de accesibilidad en snapshots
8. ✅ EJECUTAR tests: npx playwright test
9. ✅ GENERAR quality-report.md con TODOS los datos
10. ✅ MOSTRAR resumen al usuario

Recursos