npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

playwright-ai-auto-debug

v3.2.4

Published

Automatic Playwright test debugging with AI assistance + UI Test Coverage Analysis

Readme

@playwright-ai/auto-debug

🤖 Автоматическая отладка Playwright тестов с помощью ИИ

npm version

✨ Основные возможности

  • 🤖 AI-анализ ошибок - автоматическое определение причин падения тестов
  • 📊 UI Test Coverage - реальное покрытие элементов интерфейса тестами (НОВОЕ!)
  • 🎯 Объединенные отчеты - drill-down анализ по тестам, страницам и элементам
  • 📊 Интеграция с отчетами - встраивание решений в HTML и Allure отчеты
  • 🏗️ Clean Architecture - Domain-Driven Design с DI контейнером
  • 🔌 MCP Integration - DOM snapshots для точной диагностики
  • 🎯 Умное сопоставление - ИИ решения прикрепляются к релевантным тестам
  • 🧩 Множественные AI провайдеры - OpenAI, Mistral, LocalAI с единым интерфейсом
  • 🖥️ Современный CLI - команды debug, info, setup, validate
  • 🔧 Простая настройка - конфигурация через ai.conf.js или .ts

🚀 Быстрый старт

# 1. Установка
npm install playwright-ai-auto-debug

# 2. Создание конфигурации
echo "export const ai_conf = { api_key: 'your-api-key' };" > ai.conf.js

# 3. Интерактивная настройка (новое в v2.0+)
node src/main.js setup

# 4. Запуск анализа
npx playwright-ai                    # Legacy CLI (обратная совместимость)
node src/main.js debug               # Новая архитектура

# 5. Запуск с MCP (DOM snapshots)
node src/main.js debug --use-mcp     # Рекомендуется для точной диагностики

🎯 UI Test Coverage (НОВОЕ!)

Система реального покрытия элементов интерфейса тестами:

# 1. Установка и настройка в проекте
npm install playwright-ai-auto-debug
npx playwright-ai coverage init

# 2. Использование в тестах
// Импорт из локальной папки (создается автоматически)
import { test, expect } from './coverage-lib/fixture.js';

test.describe('🎯 Мои тесты с покрытием', () => {
  test('✅ Автоматическое отслеживание', async ({ page }) => {
    await page.goto('https://example.com');
    
    // Каждое взаимодействие автоматически отслеживается
    await page.locator('button').click();
    await page.locator('#login').fill('user');
    await page.locator('text=Submit').click();
  });
});
# 3. Запуск тестов с покрытием
npm run test:coverage

# 4. Открытие объединенного отчета
npm run coverage:open
# или
open test-coverage-reports/index.html

🎯 Объединенный отчет показывает:

  • 📊 Общее покрытие - процент элементов покрытых тестами
  • 🌐 По страницам - drill-down анализ каждой страницы
  • 🧪 По тестам - какие элементы покрывает каждый тест
  • 🎯 Непокрытые элементы - с предлагаемыми селекторами
  • 📝 Анализ селекторов - эффективность использования
  • 💡 Интерактивная навигация - клик для детализации

✨ Ключевые особенности:

  • Один отчет вместо множества файлов
  • Drill-down интерфейс для проваливания в детали
  • Автоматическое отслеживание всех взаимодействий с элементами
  • Приоритизация элементов по важности для тестирования
  • Умные рекомендации селекторов для непокрытых элементов

🎯 Workflow для пользователя:

# В любом Playwright проекте:
npm install playwright-ai-auto-debug   # Установка
npx playwright-ai coverage init        # Настройка (один раз)

# В ваших тестах просто замените импорт:
# ❌ import { test, expect } from '@playwright/test';
# ✅ import { test, expect } from './coverage-lib/fixture.js';

npm run test:coverage                   # Запуск с покрытием
npm run coverage:open                   # Открытие отчета

📊 Результат: Интерактивный HTML отчет с:

  • Общей статистикой покрытия по всем тестам
  • Анализом по каждой странице и тесту
  • Списком непокрытых элементов с селекторами
  • Возможностью "провалиться" в детали

📖 Подробные инструкции: docs/QUICK_START.md

🔗 Новое: MCP Integration

Model Context Protocol (MCP) обеспечивает получение структурированной информации о DOM:

  • 📸 DOM snapshots в AI промптах для точной локализации проблем
  • 🧪 Валидация действий через MCP browser automation
  • 🎯 Точные селекторы на основе реальной структуры страницы

📖 Подробное руководство: docs/MCP_INTEGRATION.md

🖥️ CLI Команды (v3.2.0+)

Новая архитектура предоставляет расширенный набор команд:

# 🔍 Основные команды
node src/main.js debug              # Анализ ошибок тестов
node src/main.js debug --use-mcp    # С DOM snapshots через MCP
node src/main.js info               # Информация о системе и конфигурации
node src/main.js setup              # Интерактивная настройка проекта
node src/main.js validate           # Проверка конфигурации

# 🎯 UI Test Coverage (НОВОЕ!)
npx playwright-ai coverage init    # Настройка системы покрытия
npx playwright-ai coverage info    # Информация о покрытии

# 📊 Дополнительные опции
node src/main.js debug --verbose    # Подробный вывод
node src/main.js debug --dry-run    # Тестовый запуск без изменений
node src/main.js --help             # Справка по всем командам

# 🔄 Legacy поддержка
npx playwright-ai                   # Старый CLI через legacy слой

📚 Документация

| Руководство | Описание | |-------------|----------| | 📖 Быстрый старт | Пошаговая установка и настройка за 5 минут | | 🔌 MCP Integration | DOM snapshots и browser automation | | 🏗️ Архитектура | Clean Architecture и расширение системы | | ⚙️ Конфигурация | Все параметры и настройки | | 🆘 Решение проблем | Типичные ошибки и их исправление |

🎭 Демо проект

Для изучения всех возможностей используйте готовый демо проект:

cd DemoProject
npm install
npm run demo:full  # Полная демонстрация с AI анализом

📖 Подробности: DemoProject/README.md

🔍 Как это работает

🤖 AI Debug System:

  1. 🔍 Поиск ошибок - FileErrorRepository находит файлы с ошибками тестов
  2. 🧠 AI анализ - Strategy Pattern для выбора AI провайдера (OpenAI/Mistral/LocalAI)
  3. 🔌 MCP интеграция - получение DOM snapshots для точной диагностики
  4. 📊 Обновление отчетов - модульные репортеры встраивают решения в HTML/Allure
  5. 🎯 Умное сопоставление - алгоритм скоринга прикрепляет решения к релевантным тестам
  6. 🧩 DI управление - Dependency Injection координирует все компоненты

🎯 UI Test Coverage System:

  1. 🔧 Автоматическая настройка - npx playwright-ai coverage init копирует файлы
  2. 🕵️ Перехват взаимодействий - Playwright fixture отслеживает все page.locator(), click(), fill()
  3. 📄 Анализ страниц - извлечение всех интерактивных элементов с DOM
  4. 🎯 Сопоставление - сравнение найденных элементов с используемыми в тестах
  5. 📊 Объединенный отчет - генерация единого HTML отчета с drill-down навигацией
  6. 💡 Умные рекомендации - предложения селекторов для непокрытых элементов

🏗️ Clean Architecture (v3.2.0+)

Версия 3.2.0+ расширена UI Test Coverage System и полностью переработана с Clean Architecture для профессиональной разработки:

  • 🏛️ Domain Layer - Rich domain entities с бизнес-логикой (TestError, AIResponse)
  • 🎯 Application Layer - Use Cases и сервисы (AnalyzeTestErrorsUseCase, TestDebugService)
  • 🔧 Infrastructure Layer - AI провайдеры, репортеры, MCP клиент, UI Coverage System
  • 🖥️ Presentation Layer - CLI с командами debug, coverage, info, setup, validate
  • 🧩 DI Container - Dependency Injection для управления зависимостями
# Новые CLI команды
node src/main.js debug --use-mcp    # Анализ ошибок с MCP
node src/main.js info               # Информация о системе
node src/main.js setup              # Интерактивная настройка
node src/main.js validate           # Проверка конфигурации

# UI Test Coverage
npx playwright-ai coverage init    # Настройка покрытия (НОВОЕ!)
npx playwright-ai coverage info    # Информация о покрытии

# Старый CLI (обратная совместимость)
npx playwright-ai                   # Работает через legacy слой

🤖 AI Провайдеры

🤖 OpenAI

// ai.conf.js
export const ai_conf = {
  api_key: 'sk-...',
  ai_server: 'https://api.openai.com/v1/chat/completions',
  model: 'gpt-4'
};

🔮 Mistral AI

// ai.conf.js
export const ai_conf = {
  api_key: 'your-mistral-key',
  ai_server: 'https://api.mistral.ai/v1/chat/completions',
  model: 'mistral-large'
};

🏠 Local AI (LM Studio, Ollama)

// ai.conf.js
export const ai_conf = {
  api_key: 'not-needed',
  ai_server: 'http://localhost:1234/v1/chat/completions',
  model: 'auto-detect'
};

📖 Подробнее: docs/ARCHITECTURE.md

📋 Пример результата

После выполнения команды в ваших HTML отчетах появится стильный блок с AI решением:

<div class="ai-debug-section">
  <h2 class="ai-debug-header">🤖 AI Debug Assistant</h2>
  <div class="ai-debug-content">
    <div class="ai-error-section">
      <div class="ai-section-title">❌ Обнаруженная ошибка</div>
      <div class="ai-error-details">Error: Timeout waiting for selector...</div>
    </div>
    <div class="ai-solution-section">
      <div class="ai-section-title">💡 Рекомендуемое решение</div>
      <div class="ai-solution-content">
        <p>Попробуйте добавить ожидание перед этим шагом...</p>
      </div>
    </div>
  </div>
</div>

⚙️ Системные требования

  • Node.js >= 16.0.0
  • Playwright проект с настроенными тестами
  • AI провайдер - API ключ или локальный сервер (OpenAI, Mistral, LocalAI)

🔧 Поддерживаемые форматы

Файлы ошибок

  • copy-prompt.txt - стандартные файлы Playwright
  • error-context.md - расширенный формат с контекстом
  • *-error.txt, *-error.md - пользовательские форматы
  • Автоматическое определение типа - timeout, selector, assertion, network ошибки

Отчеты

  • HTML отчеты Playwright с встроенными AI блоками
  • Allure отчеты с AI вложениями для упавших тестов
  • Markdown файлы с сохраненными AI ответами

🔒 Безопасность

  • 🔐 Локальное хранение API ключей - в ai.conf.js/ai.conf.ts
  • 🛡️ Защита приватных данных - добавьте ai.conf.* в .gitignore
  • ⏱️ Rate limiting - автоматическое ограничение API запросов
  • 🏠 Поддержка локальных AI - полная приватность с LocalAI/Ollama
  • 🔍 Валидация конфигурации - проверка настроек через validate команду

🤝 Участие в разработке

  1. Fork репозитория и клонируйте локально
  2. Изучите архитектуру - ознакомьтесь с docs/ARCHITECTURE.md
  3. Создайте feature branch для новой функциональности
  4. Следуйте принципам - Clean Architecture, SOLID, DDD
  5. Добавьте тесты - для новых Use Cases и Entity
  6. Используйте DI контейнер - регистрируйте зависимости в bindings.js
  7. Создайте Pull Request с описанием изменений

📄 Лицензия

MIT License - см. LICENSE файл для деталей.