Настройка Playwright с Next.js
Playwright — это фреймворк для тестирования, который позволяет автоматизировать работу с Chromium, Firefox и WebKit через единый API. Его можно использовать для написания сквозных тестов (E2E). В этом руководстве показано, как настроить Playwright с Next.js и написать первые тесты.
Быстрый старт
Самый быстрый способ начать — использовать create-next-app
с примером with-playwright. Это создаст проект Next.js с предварительно настроенным Playwright.
npx create-next-app@latest --example with-playwright with-playwright-app
Ручная настройка
Для установки Playwright выполните следующую команду:
npm init playwright
# или
yarn create playwright
# или
pnpm create playwright
Это запустит серию подсказок для настройки и конфигурации Playwright в вашем проекте, включая добавление файла playwright.config.ts
. Подробное руководство см. в документации Playwright по установке.
Создание первого E2E-теста на Playwright
Создайте две новые страницы Next.js:
import Link from 'next/link'
export default function Page() {
return (
<div>
<h1>Главная</h1>
<Link href="/about">О нас</Link>
</div>
)
}
import Link from 'next/link'
export default function Page() {
return (
<div>
<h1>О нас</h1>
<Link href="/">Главная</Link>
</div>
)
}
Затем добавьте тест для проверки работы навигации:
import { test, expect } from '@playwright/test'
test('должен переходить на страницу "О нас"', async ({ page }) => {
// Начинаем с главной страницы (baseURL задаётся через webServer в playwright.config.ts)
await page.goto('http://localhost:3000/')
// Находим элемент с текстом "О нас" и кликаем по нему
await page.click('text=О нас')
// Новый URL должен быть "/about" (baseURL используется здесь)
await expect(page).toHaveURL('http://localhost:3000/about')
// Новая страница должна содержать заголовок h1 с текстом "О нас"
await expect(page.locator('h1')).toContainText('О нас')
})
Полезно знать: Вместо
page.goto("http://localhost:3000/")
можно использоватьpage.goto("/")
, если добавить"baseURL": "http://localhost:3000"
в конфигурационный файлplaywright.config.ts
.
Запуск тестов Playwright
Playwright будет имитировать действия пользователя в трёх браузерах: Chromium, Firefox и Webkit. Для этого требуется, чтобы сервер Next.js был запущен. Рекомендуется запускать тесты против production-кода, чтобы точнее имитировать поведение приложения.
Выполните npm run build
и npm run start
, затем в другом терминале запустите npx playwright test
для выполнения тестов Playwright.
Полезно знать: Альтернативно можно использовать функцию
webServer
, чтобы Playwright сам запускал сервер разработки и ждал его полной готовности.
Запуск Playwright в Continuous Integration (CI)
По умолчанию Playwright запускает тесты в режиме без графического интерфейса (headless). Для установки всех зависимостей Playwright выполните npx playwright install-deps
.
Дополнительные ресурсы о Playwright и Continuous Integration: