playwright-ai-auto-debug
Version:
Automatic Playwright test debugging with AI assistance + UI Test Coverage Analysis
120 lines (103 loc) • 5.68 kB
JavaScript
// DemoProject/demo-ai-mcp-integration.js
import fs from 'fs';
import path from 'path';
/**
* Демонстрационный скрипт интеграции AI анализа с MCP и Allure
* Показывает как работает библиотека playwright-ai-auto-debug
*/
console.log('🎯 Демонстрация интеграции AI + MCP + Allure');
console.log('='.repeat(50));
// 1. Демонстрация MCP интеграции
console.log('\n🔌 1. MCP Integration - DOM Snapshots');
console.log(' ✅ MCP клиент подключается к Playwright MCP серверу');
console.log(' ✅ Получает детальные DOM снапшоты страниц');
console.log(' ✅ Предоставляет контекст для AI анализа');
// 2. Показать структуру DOM снапшота
const errorContextPath = 'test-results/demo-🎯-AI-Debug-Integration-Demo-❌-Login-timeout-simulation-chromium/error-context.md';
if (fs.existsSync(errorContextPath)) {
const domSnapshot = fs.readFileSync(errorContextPath, 'utf8');
const lines = domSnapshot.split('\n').slice(0, 20);
console.log('\n📊 Пример DOM снапшота из MCP:');
console.log(' ' + lines.join('\n '));
console.log(' ... (полный снапшот содержит все элементы страницы)');
}
// 3. Демонстрация AI анализа
console.log('\n🤖 2. AI Analysis Integration');
console.log(' ✅ AI получает DOM контекст от MCP');
console.log(' ✅ Анализирует ошибки с учетом структуры страницы');
console.log(' ✅ Предлагает конкретные решения');
// 4. Показать созданные AI анализы
const aiAnalyses = [
'allure-results/ai-response-demo-1.md',
'allure-results/ai-response-demo-2.md',
'allure-results/ai-response-demo-3.md'
];
aiAnalyses.forEach((filePath, index) => {
if (fs.existsSync(filePath)) {
const content = fs.readFileSync(filePath, 'utf8');
const title = content.split('\n')[0].replace('# ', '');
console.log(` 📝 AI анализ ${index + 1}: ${title}`);
}
});
// 5. Демонстрация Allure интеграции
console.log('\n📊 3. Allure Integration');
console.log(' ✅ AI анализы автоматически добавляются как attachments');
console.log(' ✅ Каждый упавший тест получает персональный AI анализ');
console.log(' ✅ Тесты помечаются меткой "ai-analyzed: true"');
// 6. Показать структуру Allure результатов
const allureResultsDir = 'allure-results';
if (fs.existsSync(allureResultsDir)) {
const files = fs.readdirSync(allureResultsDir);
const resultFiles = files.filter(f => f.endsWith('-result.json'));
const aiFiles = files.filter(f => f.startsWith('ai-response-'));
console.log(` 📁 Создано ${resultFiles.length} результатов тестов`);
console.log(` 🤖 Создано ${aiFiles.length} AI анализов`);
console.log(' 📎 AI анализы прикреплены к соответствующим тестам');
}
// 7. Демонстрация возможностей MCP
console.log('\n🚀 4. MCP Capabilities Demonstration');
const mcpFeatures = [
{
name: 'DOM Snapshot',
description: 'Полный снапшот DOM структуры страницы',
example: 'Элементы: навигация, кнопки, формы, ссылки'
},
{
name: 'Element Interaction',
description: 'Возможность взаимодействия с элементами',
example: 'click(), fill(), hover() через MCP'
},
{
name: 'Page Context',
description: 'Контекст страницы для AI анализа',
example: 'URL, заголовок, доступные действия'
},
{
name: 'Error Context',
description: 'Детальный контекст ошибок',
example: 'Скриншоты, видео, DOM состояние'
}
];
mcpFeatures.forEach(feature => {
console.log(` 🔧 ${feature.name}: ${feature.description}`);
console.log(` Пример: ${feature.example}`);
});
// 8. Статистика демонстрации
console.log('\n📈 5. Demo Statistics');
console.log(' 🧪 Всего тестов: 6 (1 ✅ прошел, 5 ❌ упали)');
console.log(' 🤖 AI анализов: 3 (демонстрационные)');
console.log(' 📊 Allure attachments: скриншоты, видео, DOM снапшоты, AI анализы');
console.log(' 🔌 MCP интеграция: включена (--use-mcp флаг)');
// 9. Инструкции для просмотра отчета
console.log('\n🎯 6. Viewing Results');
console.log(' 1. Откройте Allure отчет: npm run allure:open');
console.log(' 2. Найдите упавшие тесты (красные)');
console.log(' 3. Откройте детали теста');
console.log(' 4. Просмотрите attachments:');
console.log(' - Screenshot (скриншот ошибки)');
console.log(' - Video (видео выполнения)');
console.log(' - Error Context (DOM снапшот от MCP)');
console.log(' - AI Debug Analysis (анализ от AI)');
console.log('\n✨ Демонстрация завершена!');
console.log('🚀 Запустите: npm run allure:open для просмотра отчета');