К содержанию
SEO и вебмастерство
Меню сайта

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


Проверка локальной формы тестом Playwright и просмотр изменений теста

Обновлено 11 ноября 2026.

После правки поиска кнопка нажимается, страница не падает, но результат пропал. Агент способен написать тест, который проверит только нажатие и покажет зелёную строку. До генерации запишите, что должен увидеть посетитель. Затем убедитесь, что тест падает при неверном результате.

От требования до проверенного теста
  1. 1ПоведениеОжидание задаёт человек
  2. 2ГенерацияПроверка результата
  3. 3Негативный контрольОшибка роняет тест
  4. 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 года:

Раздел практики: SEO и ИИ · навыки ИИ-агента · Git worktree для агентов.