Привет, Хабр! ?
Меня зовут Вадим Лунин, и в обычной жизни я возглавляю команду тестирования в Альфа-Банке(Беларусь). Но есть у меня одна вредная привычка - в свободное время, которое я с трудом выкраиваю между работой и сном, я упорно мучаю свою библиотеку для автоматизации дебага Playwright тестов playwright-ai-auto-debug.
Началось всё с простой мысли: "А что если научить AI помогать с падающими тестами?" Теперь это превратилось в полноценный проект с Dependency Injection, стратегиями, фабриками и прочими словами, которые заставляют меня чувствовать себя настоящим архитектором (хотя по факту я просто тестировщик, который не может остановиться).
И вот, свет увидела версия 3.2.4. Что в ней такого особенного? Давайте разбираться!

Что обычно происходит?
Представьте: вы запустили 100 тестов, 15 из них упали. Вы открываете логи и видите там привычное:
Error: Timeout 30000ms exceeded
Error: Element not found
Error: Navigation failed

И вот вы сидите, смотрите на это и думаете: "Опять? Серьёзно?". А теперь представьте, что вместо ручного анализа каждой ошибки AI делает это за вас. Автоматически. Параллельно. С красивыми отчётами.
Вот для этого и существует моя библиотека. А в версии 3.2.4 она научилась делать это ещё круче.
Главные изменения релиза
TestDebugService - дирижёр нашего оркестра
Раньше у меня был код, который... эээ... работал. Вроде как. Иногда. Теперь же появился TestDebugService - единая точка входа для всей магии отладки. Это как иметь личного ассистента, который точно знает, к кому обратиться и что делать.
// Было: хаос из разных функций
// Стало: красота и порядок
const testDebugService = await container.get('testDebugService');
const results = await testDebugService.debugTests(projectPath, options);
AI Provider Factory - потому что провайдеров много не бывает
Помните те времена, когда у вас был один AI провайдер и жизнь казалась простой? Я тоже нет. Теперь библиотека поддерживает OpenAI, Mistral, и вообще любой локальный AI (Ollama, LMStudio).
Конфигурация проста как пять копеек:
// ai.conf.js
export default {
api_key: process.env.API_KEY || '',
ai_server: 'https://api.openai.com/v1/chat/completions',
model: 'gpt-3.5-turbo',
// ... остальной код
}
Система сама определит провайдера по URL. Магия? Нет, просто паттерн Factory. Но выглядит красиво!
SummaryReporter - потому что один отчёт лучше, чем 15
Раньше после анализа я получал кучу отдельных файлов с результатами. Теперь SummaryReporter собирает всё в красивый сводный отчёт. В HTML. В Markdown. В JSON. Выбирайте, что душе угодно:
// ai.conf.js
summary_report: true,
summary_report_formats: ['html', 'markdown', 'json'],
И получаете:
Агрегированную статистику
Топ самых частых ошибок
Интеллектуальные рекомендации
Метрики производительности
UI Coverage Analysis - новый уровень паранойи
Знаете, что меня всегда беспокоило? Вопрос: "А все ли критичные элементы на странице мы вообще тестируем?" Теперь можно не гадать - система сама проанализирует DOM и скажет, что упущено.
Функции, которые заставляют чувствовать себя богом тестирования:
Критичные элементы - проверка наличия важных кнопок/форм
Golden snapshot - сравнение с эталонным состоянием
Accessibility анализ - потому что доступность важна
# Новая команда в вашем арсенале
npx playwright-ai coverage init
npx playwright-ai coverage info
Параллельная обработка - потому что жизнь коротка
Помните, я говорил про 15 упавших тестов? Представьте, что AI анализирует их не последовательно, а параллельно. В 4 потока по умолчанию (но можно настроить):
// ai.conf.js
parallel_enabled: true
parallel_limit: Math.max(1, Number(process.env.PW_AI_PARALLEL || 4)),
Теперь анализ занимает не 15 минут, а меньше 4. Математика работает!
Новые CLI команды для любителей консоли
doctor - ваш терапевт для окружения
npx playwright-ai doctor --fix
Проверяет всё ли в порядке с окружением и чинит, что сломалось. Как настоящий доктор, только без медицинской лицензии.

info - для любопытных
npx playwright-ai info
Расскажет всё про текущее состояние системы. DI контейнер, AI провайдеры, архитектурные детали. Для тех, кто любит знать, что происходит под капотом.

Dependency Injection Container - пересмотрел архитектуру
Признаюсь честно: я добавил DI контейнер не потому, что он был критически необходим. А потому что хотел. И знаете что? Оказалось, что это реально удобно!
Теперь есть:
Lifecycle management (Singleton/Transient)
Middleware для логирования
Защита от циклических зависимостей
Health checks
Всё как в большом enterprise приложении, только это библиотека для тестов. Оверинжиниринг? Возможно. Круто? Определённо!
MCP Integration - WebSocket магия
Model Context Protocol интеграция через WebSocket. Звучит сложно, но по факту это просто позволяет получать DOM snapshots и валидировать действия в реальном времени:
// ai.conf.js
mcp_integration: false, // Включается через --use-mcp
mcp_ws_host: 'localhost',
mcp_ws_port: 3001,
mcp_timeout: 30000,
npx playwright-ai debug --use-mcp
И вуаля - AI видит то же, что видит ваш тест!
Кастомизируемые промпты
Одна из моих любимых фич - возможность настроить, КАК именно AI будет анализировать ошибки:
// ai.conf.js
messages: [
{
role: 'system',
content: 'Ты AI помощник по отладке Playwright тестов. Анализируй ошибки и предлагай конкретные решения на русском языке. Отвечай кратко и по делу.'
},
{
role: 'system',
content: 'При анализе ошибок учитывай специфику нашего проекта: используем React, TypeScript и тестируем e-commerce функционал.'
}
]
Хотите, чтобы AI отвечал на русском? Пожалуйста. Хотите учитывать специфику вашего проекта? Легко. Хотите, чтобы он шутил? Ну... можно попробовать ?
Allure интеграция - потому что красивые отчёты важны
// ai.conf.js
allure_integration: true,
allure_results_dir: 'allure-results',
AI анализ автоматически прикрепляется к Allure отчётам. Ваш менеджер будет доволен красивыми на человеческом языке отчетам. Вы будете довольны тем, что не нужно всё объяснять на очередном митинге.


Обратная совместимость - мы не монстры
Самое классное - все старые команды и конфигурации продолжают работать. Миграция на новую версию? Просто обновите пакет:
npm update playwright-ai
Вот и всё. Никаких breaking changes, никаких "переписать всё с нуля". Потому что я сам ненавижу, когда библиотеки ломают обратную совместимость.
Демо-проект - потому что примеры лучше документации
В репозитории есть полноценный демо-проект с:
25+ тестовыми сценариями
Разными типами ошибок
Примерами UI Coverage
Performance тестами
Accessibility проверками
Клонируйте, запускайте, ломайте. Это же демо!
Заключение
Версия 3.2.4 - это результат бессонных ночей, кофе и упорного желания сделать жизнь QA инженеров чуточку легче. Получилось ли? Надеюсь, что да!
Библиотека абсолютно бесплатна и open source. Если хотите попробовать:
npm install playwright-ai
npx playwright-ai init
npx playwright-ai debug
Есть вопросы, баги, пожелания? Welc̀ome в issues! Хотите поучаствовать в развитии? Pull requests приветствуются!
А я пойду выкраивать ещё немного свободного времени.
P.S. Кот так и не понял, что 4 утра - не время для завтрака. Но зато библиотека теперь умеет анализировать UI покрытие. Приоритеты, знаете ли ?
P.P.S. Если вы дочитали до конца - вы молодец! Оставьте комментарий, расскажите, какие фичи вам нужны больше всего и приходите ко мне в канал https://t.me/it_vadimqa
evestranger
Опять интровертов с асоциалами путают.