Блог

Отчёты с комментариями от AI: Allure + playwright-ai/auto-debug

Отчёты с комментариями от AI: Allure + playwright-ai/auto-debug

ИИ стал неотъемлемой частью повседневного процесса разработки. Чем больше контекста у ИИ-помощника, тем точнее его ответы — поэтому возможность интегрировать его с традиционными инструментами (например, IDE) в разы увеличивает эффективность.
Сейчас такие возможности появляются и у тестировщиков. Плагин playwright-ai/auto-debug автоматически анализирует упавшие тесты, и добавляет свои рекомендации к отчёту. Вместо того, чтобы искать сообщения об ошибках, копировать их в браузер или искать чаты с уже решёнными проблемами, вы теперь можете просто посмотреть в отчёт, где к каждому тесту будет приложена рекомендация.
Кроме того, с помощью MCP playwright-ai/auto-debug может получить доступ к полному контексту тестируемой страницы и давать гораздо более точные подсказки.
Playwright-ai/auto-debug интегрируется с Allure Report “из коробки”. Это делает использование инструмента в разы удобнее — например, вложения с рекомендациями нейросети сохраняются в истории отчётов. Благодаря этому к старым ошибкам можно вернуться, просто открыв историю запуска теста.
Попробуем запустить запустить тесты на Playwright и отладить их с помощью playwright-ai/auto-debug.

Код демонстрации:

https://github.com/rattus-aristarchus/guide-ai-playwright-auto-debug

Что вам понадобится:

Для нашего примера скачаем чистый проект с JavaScript и Playwright на Allure Start:
Установим зависимости, выполнив в корне проекта:
`npm install`
Установим также браузер для Playwright с помощью команды:
`npx playwright install chromium`

1. API-ключ

Плагин playwright-ai/auto-debug пользуется сторонними провайдерами нейросетей. Для нашего примера воспользуемся бесплатной версией Mistral AI. Вначале нам понадобиться API-ключ.
  • Щелкните Create new secret key:
  • Введите имя ключа и дату истечения срока действия. Щелкните Create new key
  • Ключ сгенерирован. Щелкните Copy key, чтобы скопировать его, и сохраните в надёжном месте — Mistral его вам больше не покажет.

2. Настройка playwright-ai/auto-debug

Установим плагин playwright-ai-auto-debug в наш проект. Для этого выполним в корне проекта:
npm install playwright-ai-auto-debug
Дальше создадим в корне файл настроек ai.conf.js:
export const ai_conf = {
    // API ключ - установите через переменную окружения или замените на свой
    api_key: process.env.API_KEY || 'your-api-key-here',
    
    // Настройки AI сервера
    ai_server: 'https://api.mistral.ai/v1/chat/completions',
    model: 'mistral-tiny',
    
    // Директории
    results_dir: 'test-results/',
    report_dir: 'playwright-report',
    ai_responses_dir: 'ai-responses',
    
    // Настройки обработки
    max_prompt_length: 2000,
    request_delay: 20000,
    
    
    // Параметры потоковой обработки
    stream: true,
    parallel_enabled: true,
    parallel_limit: 4,
    
    // Паттерны файлов ошибок
    error_file_patterns: [
      'copy-prompt.txt',
      '**/error-context.md',
      '*-attachment.md',
      'error.txt',
      'test-error.md',
      '*-error.txt',
      '*-error.md',
      '*-result.json'
    ],
    
    // Сохранение AI ответов
    save_ai_responses: true,
    ai_responses_dir: 'test-results',
    ai_responses_filename_template: 'ai-response-{timestamp}-{index}.md',
    include_metadata: true,
    
    // 🎯 Allure интеграция
    allure_integration: true,
    allure_results_dir: 'allure-results',
    
    summary_report: true,
    summary_report_formats: ['html', 'markdown', 'json'],
};
Для `api_key` укажем API-ключ, который мы только что сгенерировали.
Поменяем также для простоты параметр resultsDir для allure-playwright в файле playwright.config.js с ./out/allure-results на ./allure-results. Нужно, чтобы это значение совпадало с путём к результатам Аллюра, который мы указали в ai.conf.js.
Чтобы запустить модуль playwright-ai, анализирующий покрытие тестов, выполним:
npx playwright-ai coverage init
Убедимся, что всё работает исправно, с помощью следующих команд:
npx playwright-ai validate
npx playwright-ai doctor –fix

3. Запуск тестов и анализ результатов

Плагин анализирует только “красные” тесты, поэтому напишем в test/sample.test.js простейший тест, который всегда будет давать ошибку:
test("always fails", async () => {
  await test.step('Navigate to page', async () => {
    await page.goto('https://playwright.dev');
  });
 
  await test.step('Check wrong title', async () => {
    // Намеренная ошибка: проверяем неправильный заголовок
    await expect(page).toHaveTitle('This should break the test');
  });
});
Выполним тесты:
npx playwright test
Запустим наш ИИ-помощник:
npx playwright-ai
И, наконец, откроем Allure-отчёт:
allure serve allure-results
Все эти шаги можно, конечно же, объединить в один скрипт для удобства.
В приложении к упавшему тесту в нашем отчёте появился анализ ошибки от нейросети:
Внутри файла мы увидим анализ структуры страницы и самой ошибки; в частности, нам советуют:
## 💡 AI Recommended Solution

It appears that there is a discrepancy between the expected title of the page and the actual title received. The expected title is "This should break the test", but the received title is "Fast and reliable end-to-end testing for modern web apps | Playwright".

4. Настройка промптов

Предположим, мы хотели бы общаться с нейросетью по-русски, и попросить её быть лаконичнее. Это реализуемо! Промпты можно настроить в ai.conf.js, например, так:
messages: [
  {
    role: 'system',
    content: 'Ты AI помощник по отладке Playwright тестов. Анализируй ошибки и предлагай конкретные решения на русском языке. Отвечай кратко и по делу.'
  }
]
Теперь получим вывод на русском языке:
## 💡 AI Recommended Solution

ошибка в ассерте `toHaveTitle`. Тест проверяет, что заголовок страницы равен "This should break the test", но полученный заголовок "Fast and reliable end-to-end testing for modern web apps | Playwright".

Решение:

1. Проверьте, что текст заголовка страницы на сайте, который вы тестируете, соответствует ожидаемому значению.

2. Если текст заголовка не соответствует ожидаемому значению, проверьте, что страница, на которую переходите, корректна и содержит нужный контент.

3. Если все еще не получается, попробуйте добавить задержку перед проверкой заголовка, чтобы дать странице загрузиться полностью.

5. Анализ покрытия

Playwright-ai способен анализировать покрытие элементов страницы тестами. Чтобы его включить, в тестах нужно заменить стандартный импорт playwright:
import { test, expect } from '@playwright/test';
…на следующий:
import { test, expect } from './coverage-lib/fixture.js';
Помните, при настройке мы выполнили вызов coverage init? Благодаря нему в package.json должны были появиться новые команды для запуска тестов. С этими командами мы можем получить отчёт о покрытии:
npm run test:coverage
Открываем отчёт так:
npm run coverage:open
В итоге мы увидим общее покрытие элементов страницы тестами, с возможностью подробного анализа каждой страницы, разбивкой по тестам и селекторами для непокрытых тестов.

6. Прочие фичи

В файле ai.conf.js можно настроить параллельный анализ тестов, что позволит плагину отрабатывать гораздо быстрее:
parallel_enabled: true,
parallel_limit: 4,
Если вы хотите, чтобы модель давала ответы, более релевантные проекту, можно подключить MCP; инструкцию можно найти здесь.
В репозитории playwright-ai/auto-debug можно также найти более полный демонстрационный проект; а если вы хотели бы узнать больше о состоянии автоматизированной отладки с AI на сегодняшний день, рекомендую статью автора плагина.

Заключение

Playwright-ai/auto-debug в связке с Allure резко сокращает затраты времени на анализ сбоев. В особенности он полезен командам с настроенным CI-CD пайплайном: вместо того, чтобы каждый тестировщик по отдельности вручную передавал ошибки в нейросеть и получал общие размытые ответы, мы получаем следующие преимущества:
  • Ответы даются с учётом контекста
  • Ответы автоматически прикрепляются к соответствующему тесту
  • С помощью алгоритма “умного сопоставления” ответы привязываются не только к последнему тесту, но и ко всем релевантным