← Блог

· обновлено

Отчёты с комментариями от 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

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

npm и node.js Allure Report

Для нашего примера скачаем чистый проект с 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

Все эти шаги можно, конечно же, объединить в один скрипт для удобства.

В приложении к упавшему тесту в нашем отчёте появился анализ ошибки от нейросети:

Внутри файла мы увидим анализ структуры страницы и самой ошибки; в частности, нам советуют:

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

Предположим, мы хотели бы общаться с нейросетью по-русски, и попросить её быть лаконичнее. Это реализуемо! Промпты можно настроить в ai.conf.js, например, так:

messages: [
  {
    role: 'system',
    content: 'Ты AI помощник по отладке Playwright тестов. Анализируй ошибки и предлагай конкретные решения на русском языке. Отвечай кратко и по делу.'
  }
]

Теперь получим вывод на русском языке:

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 пайплайном: вместо того, чтобы каждый тестировщик по отдельности вручную передавал ошибки в нейросеть и получал общие размытые ответы, мы получаем следующие преимущества:

  • Ответы даются с учётом контекста
  • Ответы автоматически прикрепляются к соответствующему тесту
  • С помощью алгоритма “умного сопоставления” ответы привязываются не только к последнему тесту, но и ко всем релевантным