Playwright и ИИ: как проверить сгенерированный тест сайта

Обновлено 11 ноября 2026.
После правки поиска кнопка нажимается, страница не падает, но результат пропал. Агент способен написать тест, который проверит только нажатие и покажет зелёную строку. До генерации запишите, что должен увидеть посетитель. Затем убедитесь, что тест падает при неверном результате.
- 1ПоведениеОжидание задаёт человек
- 2ГенерацияПроверка результата
- 3Негативный контрольОшибка роняет тест
- 4Просмотр правокТребования сохранены
Задайте поведение до осмотра страницы
Учебный пример использует вымышленную локальную форму по адресу http://127.0.0.1:4173/search. В ней есть поле с ролью searchbox и доступным именем «Поиск по справке», кнопка «Найти» и одна область status. Запрос «резервная копия» должен выводить ровно «Найдено материалов: 1».
Это договорённость о фикстуре: заранее подготовленной странице и данных. Нужны одна известная запись, сброс состояния перед прогоном и отключённые почта, платежи и внешние API. На произвольном сайте таких элементов нет. Ожидаемое поведение задаёт владелец: агент может принять дефект изучаемой страницы за норму. Общий порядок проверки на копии сайта есть в гайде по обновлению CMS.
Разведите роли planner, generator и healer
В Playwright test agents planner исследует приложение и пишет план, generator превращает план в тесты, healer разбирает падения и предлагает исправления. Определения агентов под VS Code создаются командой ниже. Запускайте её в выделенном тестовом проекте с Playwright, где создание служебных файлов согласовано:
npx playwright init-agents --loop=vscode
План сначала читает человек: проверяется ли результат поиска, какие действия запрещены. Общий выбор ИИ-инструментов вебмастера не заменяет этой приёмки. Microsoft упоминает агентную проверку Playwright в обзоре от 28 октября 2026 года; TestMu AI показывает генерацию login-valid.spec.ts и ремонт локаторов.
Есть и опросное основание. В исследовании Temporal от 25.08.2026 тестирование кода назвали задачей агентов 52,7 % из 554 участников. Около двух третей выборки — из США; все участники уже пользовались агентами. Это не доля всех разработчиков и не замер использования самого Playwright, но для выбора темы свидетельство сильнее одного анонса.
Проверьте сообщение о результате
Ниже учебный пример обычного теста @playwright/test. Он не запускался в рамках статьи. Для запуска нужны описанная фикстура, настроенный тестовый проект, установленный браузер и локальный сервер на указанном порту. Реальных заявок и платежей в сценарии нет.
import { test, expect } from '@playwright/test';
test('поиск возвращает известный материал', async ({ page }) => {
await page.goto('http://127.0.0.1:4173/search');
await page.getByRole('searchbox', {
name: 'Поиск по справке', exact: true
}).fill('резервная копия');
await page.getByRole('button', {
name: 'Найти', exact: true
}).click();
await expect(page.getByRole('status'))
.toHaveText('Найдено материалов: 1');
});
Роль и доступное имя переживут смену CSS-класса, если смысл элемента сохранится. При нескольких совпадениях ограничьте поиск конкретной формой. Добавление .first() ради зелёного запуска может направить тест к другой кнопке.
toHaveText повторяет проверку до тайм-аута, поэтому фиксированная пауза не нужна. Пример подтверждает сообщение о числе результатов. Для самой выдачи добавьте ожидание конкретной ссылки; один такой тест не покрывает все ветки поиска.
Докажите, что неверный ответ будет замечен
Сначала чистая фикстура и исходное ожидание должны пройти проверку. Затем в отдельной временной копии учебного теста замените сообщение на заведомо неверное: «Найдено материалов: 99». Тест обязан упасть на сравнении текста. Менять рабочий репозиторий сайта для этого не требуется.
Падение из-за недоступного сервера или синтаксической ошибки не считается негативным контролем. Проверка должна увидеть фактическую единицу и ожидать 99. После контроля вернитесь к исходному тесту и повторите запуск. Дополнительно можно сломать обновление результата на копии фикстуры: исправный тест заметит отсутствие сообщения даже при работающей кнопке.
Не принимайте любое исправление healer
Документация допускает итог healer в виде пропущенного теста, если агент считает функциональность сломанной. Такой пропуск не подтверждает готовность функции к выкладке. Читайте зелёный отчёт вместе с изменениями файла, особенно в местах, где легко потерять требование:
- Не появились ли
test.skip,test.fixmeилиtest.only, меняющие состав выполненных проверок. - Не заменили ли точный ожидаемый результат проверкой «элемент виден».
- Не стали ли замалчивать исключения или увеличивать тайм-аут вместо устранения причины.
- Не переписали ли ожидание под ошибочное поведение страницы.
Ремонт локатора допустим, если элемент переименован по требованиям и проверка результата сохранена. Изменение смысла теста согласуйте отдельно. Если сломан поиск, оставьте явный дефект и исправляйте приложение; снятие проверки не должно незаметно разблокировать релиз.
Запускайте локально и проверяйте состав отчёта
После подготовки фикстуры запустите пример в выделенном тестовом проекте. Путь относится к нему:
npx playwright test tests/search.spec.ts --workers=1
Локальная страница тоже может загружать сторонние скрипты. Уберите такие подключения и ограничьте исходящие запросы среды. Не переносите cookies администратора и настоящие ключи. Права агента обсудите отдельно от прав браузера: это часть работы с браузерными агентами.
Сопоставляйте число запланированных, выполненных и пропущенных тестов. Трассировки и снимки сбоев проверяйте на чувствительные данные перед передачей внешнему ИИ. В приёмку включайте просмотр изменений и негативный контроль. Получится повторяемая проверка конкретного требования, с понятными границами покрытия.
Источники по агентам Playwright
Команду настройки сверяйте с документацией своей версии. Датированные публикации дают контекст 2026 года:
- Playwright: Test agents — роли агентов и возможность пропуска сломанного теста.
- Microsoft: VS Code Wrapped, 28.10.2026 — агентная проверка через Playwright.
- TestMu AI: разбор Playwright agents — публикация 14.04.2026, обновление 27.10.2026; генерация теста входа и ремонт локаторов.
Раздел практики: SEO и ИИ · навыки ИИ-агента · Git worktree для агентов.