Отладка E2E-тестов может быть трудоёмкой задачей. При падении тестов Playwright нередко приходится вручную анализировать сообщения об ошибках и стек-трейсы, искать причины неудач (например, неправильно подобранный селектор, увеличенные задержки или неожиданные изменения в DOM) и пробовать разные варианты исправлений. Традиционно QA-инженерам приходится копировать текст ошибок и обращаться к документации или чат-ботам вроде ChatGPT с вопросами вроде «почему селектор не нашёлся» или «как увеличить таймаут». Это занимает время и отнимает ресурсы команды.

Впрочем, современные инструменты для тестирования предлагают поддержку AI на разных этапах. Например, начиная с версии Playwright 1.51 появилась встроенная функция «Copy prompt»: она добавляет кнопку в HTML-отчёт или в UI-режим, которая копирует в буфер заранее подготовленную подсказку с контекстом ошибки (текст ошибки, часть DOM, имя теста и т.п.). После этого разработчик вручную вставляет подсказку в инструмент на базе LLM (ChatGPT, GitHub Copilot и др.) и получает рекомендации. В Visual Studio Code расширение Playwright дополнительно предлагает «AI Fix» – кнопку в списке тестов, которая сразу анализирует неудачный тест и предлагает исправление прямо в редакторе.

Для фреймворка Cypress существует сторонний плагин cy-copy-prompt: при падении теста он автоматически собирает нужную информацию (сообщение об ошибке, шаги, стек-трейс) и формирует готовый текстовый запрос для чат-бота.

А ещё существует библиотека auto-playwright, которая позволяет управлять браузером через естественный язык, отдавая команды ChatGPT (например, «взять текст заголовка» или «нажать на кнопку»).
import { test, expect } from "@playwright/test";
import { auto } from "auto-playwright";
test("auto Playwright example", async ({ page }) => {
await page.goto("/");
// `auto` can query data
// In this case, the result is plain-text contents of the header
const headerText = await auto("get the header text", { page, test });
// `auto` can perform actions
// In this case, auto will find and fill in the search text input
await auto(`Type "${headerText}" in the search box`, { page, test });
// `auto` can assert the state of the website
// In this case, the result is a boolean outcome
const searchInputHasHeaderText = await auto(
`Is the contents of the search box equal to "${headerText}"?`,
{ page, test },
);
expect(searchInputHasHeaderText).toBe(true);
});
Существующие подходы к AI‑отладке тестов:
Встроенные инструменты Playwright: начиная с версии 1.51 Playwright умеет генерировать подсказку по нажатию «Copy prompt». Кроме того, расширение Playwright для VS Code добавляет кнопку «AI Fix», которая анализирует падение и предлагает исправление в коде. Оба варианта облегчают подготовку запроса к ИИ, но требуют ручного копирования/вставки подсказки.
Плагин Cypress (cy-copy-prompt): аналогичная идея реализована и для Cypress. При падении теста этот плагин «вытаскивает» ошибки, стек-трейсы и заголовки теста, а затем формирует готовую подсказку для LLM. Это экономит ручной сбор контекста, но пользователь всё равно вручную запускает чат-бота.
Библиотека Auto Playwright: позволяет задавать тестовые действия естественным языком (ChatGPT сам управляет браузером)[5][6]. Это скорее про создание и выполнение тестов, нежели про отладку уже упавших. Тем не менее, это пример другого способа интеграции AI в Playwright-код.
Другие фреймворки и плагины: помимо этого, появляются AI-плагины для других инструментов. Например, Microsoft упомянула Playwright MCP (Model Context Protocol) как мост между LLM и браузером, который уже используется внутри GitHub Copilot’s Coding Agent. Пока что это больше исследовательские возможности для генерации и верификации тестов, но они показывают тенденцию обогащения контекста для ИИ.
То есть многие современные инструменты дают AI больше информации: одни просто копируют готовую подсказку для вставки, другие (как Copilot) могут прямо править код. При этом все эти решения не автоматизируют весь цикл: обычно приходится самим запускать чат-бот, оценивать его ответ и вносить правки в тесты.
Плагин @playwright-ai/auto-debug и как он работает
Пакет @playwright-ai/auto-debug призван автоматизировать именно рутинную часть: отправку ошибок в ИИ и получение рекомендаций. Его основной сценарий таков: после того как вы запустили npx playwright test и получили отчёт с множеством ошибок, вы запускаете npx playwright-ai. Плагин сканирует папку с результатами тестов (обычно это test-results), находит файлы ошибок (например, copy-prompt.txt, error.txt или другие), а затем поочерёдно отправляет их содержимое на анализ в выбранную AI-модель. После этого ответы ИИ автоматически встраиваются в отчёты: например, в HTML-отчёт каждая неудавшаяся проверка может получить «AI-блок» с описанием причины и предлагаемых исправлений, а если вы используете Allure, то ответы ИИ прикрепляются в виде вложений к упавшим тестам.
Использование довольно простое. Например:
# 1. Запустите тесты Playwright
npx playwright test # упавшие тесты создадут файлы ошибок в test-results/
# 2. Запустите AI-отладку
npx playwright-ai # анализирует все ошибки и добавляет AI-ответы в отчёты
При этом плагин не требует изменения конфигурации Playwright — он работает поверх обычного HTML- или Allure-отчёта. Конфигурация подключения к AI задаётся в файле ai.conf.js (или .env), где указывается ключ API, адрес сервера и модель, а также опциональные системные сообщения. Например, можно дать ИИ подсказку: «Ты – ассистент по отладке Playwright-тестов» и попросить его отвечать кратко и по существу.
import dotenv from 'dotenv';
dotenv.config();
export const ai_conf = {
api_key: process.env.API_KEY,
// Настройки AI сервера
ai_server: 'http://localhost:1234/v1/chat/completions',
model: 'qwen3-14b',
// Директории
results_dir: 'test-results',
report_dir: 'playwright-report',
ai_responses_dir: 'ai-responses',
// Настройки обработки
max_prompt_length: 2000,
request_delay: 1000,
stream: true,
// Паттерны файлов ошибок
error_file_patterns: [
'copy-prompt.txt',
'error-context.md',
'error.txt',
'test-error.md',
'*-error.txt',
'*-error.md'
],
// Сохранение AI ответов
save_ai_responses: true,
ai_responses_dir: 'allure-results',
ai_response_filename_template: 'ai-response-{timestamp}-{index}.md',
include_metadata: true,
// ? Allure интеграция - ВКЛЮЧЕНА
allure_integration: true,
allure_results_dir: 'allure-results',
// Настройки AI сообщений
messages: [
{
role: 'system',
content: 'You are an AI assistant for debugging Playwright tests. Analyze errors and offer specific solutions in English. Answer briefly and to the point with code examples.'
},
{
role: 'system',
content: 'When analyzing errors, keep in mind: this is a demo project for playwright-ai-auto-debug. Offer practical solutions taking into account modern testing practices.'
}
]
};
Ключевые возможности
Сквозное сканирование: находит все файлы с ошибками после запуска playwright test.
Отправка запросов и сбор ответов: на каждом файле генерируется отдельный запрос к выбранному AI (например, GPT или Mistral).
Встраивание результатов: готовые решения прикрепляются к тестам — в HTML-отчёте выводятся в едином стиле с остальной частью отчёта, а при использовании Allure добавляются как вложения к упавшим тестам (без создания новых записей тестов).
Умный подбор теста: начиная с версии 1.3.0 использует алгоритм «умного сопоставления» (Запуск с MCP Playwright), чтобы в точности привязать ответ ИИ к тому или иному тесту. Она анализирует названия тестов, стек-трейсы и ключевые слова, ставит баллы за совпадение и гарантирует, что каждому релевантному упавшему тесту прикрепится свой результат (а не только последнему тесту).
Умный подбор теста: начиная с версии 1.3.0 использует алгоритм «умного сопоставления» (Запуск с MCP Playwright), чтобы в точности привязать ответ ИИ к тому или иному тесту. Она анализирует названия тестов, стек-трейсы и ключевые слова, ставит баллы за совпадение и гарантирует, что каждому релевантному упавшему тесту прикрепится свой результат (а не только последнему тесту).
Потоковая трансляция: ответы ИИ можно видеть по мере их поступления, что удобно при больших объёмах данных (плагин выводит прогресс в консоль).
Чистая архитектура: код разделён на слои (domain, application, infrastructure, presentation), что упрощает добавление новых провайдеров ИИ или форматов отчётов без глобальных правок.
Таким образом, @playwright-ai/auto-debug автоматизирует процесс, который иначе QA-инженеру приходилось бы делать вручную: искать все «copy-prompt.txt» и т.п., открывать ChatGPT, копировать туда контекст и возвращать ответ в отчёт.
Сравнение с альтернативами
Выше я перечислил основные AI‑инструменты для отладки тестов. Основные отличия плагина @playwright-ai/auto-debug следующие:
Он полностью автоматизирован: достаточно одного запуска команды, чтобы получить ответы на все ошибки. Ни о каких «скопировать-подсказку-в-бот» никаких ручных действий не требуется — плагин сам за вас переберёт все файлы с ошибками и запишет ответы в отчёты.
В отличие от простого копирования подсказок, плагин напрямую интегрируется с отчётами (HTML и Allure). Как отмечено в документации, AI-ответы «неявно» встраиваются в отчёт Allure, автоматически прикрепляясь к упавшим тестам, «не создавая дополнительных результатов». То есть финальный отчет выглядит цельно и аккуратно.
Благодаря алгоритму сопоставления плагин пытается давать максимально релевантные решения именно к конкретному тесту. Анализ названий и путей файлов, стек-трейсов и ключевых слов позволяет снизить число «ложных срабатываний», когда ответ ИИ случайно присоединялся не к тому тесту.
По сравнению с auto-playwright – плагином другого рода – @playwright-ai/auto-debug не генерирует тестовые шаги, а именно анализирует ошибки существующих тестов. Auto Playwright упрощает написание тестов через ChatGPT, а @playwright-ai/auto-debug помогает понять, почему ваши тесты упали, и как их починить.
Среди прочих аналогов стоит упомянуть встроенный подход Playwright: на картинке выше (рис. 1) показана кнопка «Copy prompt». Она действительно облегчает создание подсказки, но ответ всё равно получаем вручную. В вариантах же, где контекст прост – например, без MCP – GPT часто выдает банальные советы. Как показывает опыт, если отправить в GPT только текст ошибки “Timeout ... waiting for selector "#submit-btn"”, он просто посоветует «увеличить таймаут», хотя реальная причина могла быть другая. После подключения MCP (получения снимка страницы и состояния элементов) ИИ уже видит, что кнопка существует, но disabled, и предлагает дождаться активации элемента.
? Без MCP GPT получает:
Error: Timeout 30000ms exceeded.
waiting for selector "#submit-btn"
✅ С MCP GPT получает:
{
"selector": "#submit-btn",
"action": "click",
"htmlSnapshot": "<div><button id='submit-btn' disabled>Send</button></div>",
"logs": ["click intercepted by disabled button"],
"testTitle": "should submit the form",
"location": "tests/form.spec.ts:23"
}
Встроенный Copy Prompt даёт подобную возможность лишь вручную: вы можете скопировать подсказку с контекстом и сами вставить в LLM. Плагин же стремится получить такой подробный контекст автоматически (есть опция --use-mcp), чтобы ответы были точнее.
Из этого следует, что @playwright-ai/auto-debug значительно экономит время на рутинном копировании и сборе контекста. В реальных проектах, где десятки тестов падают по самым разным причинам, плагин позволяет за минуты собрать решения в одном отчёте. Например, за счёт автоматизации интеграции можно совместно с командой быстро пройтись по всем падениям и сразу получить предложения по фиксам – вместо того, чтобы каждый инженер вручную смотрел на свой стек и задавал похожие вопросы в чат. Я надеюсь, что такой подход позволит сэкономить время на анализ ошибок.
Однако стоит помнить, что AI – не панацея. Подсказки могут быть неточными или очевидными (особенно без полной информации о состоянии страницы). Также плагин требует наличия ключа API и сетевого соединения. Но если использовать его грамотно (например, дополняя ai_conf нужными подсказками про проект или увеличивая таймауты запросов), он заметно ускоряет цикл отладки.
Ниже можно увидеть пример сформированного отчета с использованием MCP:
Выводы
Использование AI для отладки тестов – это стремление освободить разработчиков и QA от рутинной работы. @playwright-ai/auto-debug демонстрирует одну из форм такой автоматизации: он избавляет от ручного копирования ошибок в чат-бот, автоматически получает рекомендации и встраивает их в отчёты. В отличие от встроенных в Playwright функций, плагин предлагает «автофикс» на уровне отчёта и единый запуск всех запросов.
При этом ни один из инструментов не может гарантировать 100% решения всех проблем – ИИ по-прежнему лишь ассистент. Вероятны случаи, когда придётся проверить подсказку вручную или скорректировать её. Тем не менее систематизация процесса и возможность передать ему «вопросы» от всех упавших тестов одновременно – большое подспорье.
Сравнение с альтернативами показывает, что ключевое различие в степени автоматизации и интеграции. Например, встроенная кнопка Copy Prompt в отчётах Playwright всего лишь генерирует текст для ручной отправки в модель. Cypress-плагин упрощает сбор данных для ChatGPT. А @playwright-ai/auto-debug автоматизирует весь поток: от сканирования ошибок до прикрепления ответов, сохраняя чистоту и понятность отчётов.
В итоге эта библиотека может стать полезным дополнением к стандартным средствам отладки Playwright. Она позволяет команде быстрее видеть конкретные предложения по исправлению тестов и экономит до десятков часов на рутинных задачах. Конечно, решение не отменяет необходимости понимать логику тестов и приложения – но снимает большую часть «ручной копипасты» при обращении к AI.