Консольные утилиты

Для работы с Playwright в проектах на JavaScript используется пакет @playwright/test. Установка выполняется через npm:

npm init -y
npm install -D @playwright/test
npx playwright install

Первая команда создаёт package.json, вторая устанавливает сам Playwright с его тестовым фреймворком, а третья загружает браузеры (Chromium, Firefox, WebKit) для автоматизации. После установки создаётся структура проекта с папками tests и конфигурационным файлом playwright.config.js.

Ключевой момент: Playwright поддерживает как локальные браузеры, так и запуск в headless-режиме, что важно для CI/CD.

// playwright.config.js
import { defineConfig } from '@playwright/test';

export default defineConfig({
  use: {
    headless: true,
    viewport: { width: 1280, height: 720 },
    screenshot: 'only-on-failure',
    video: 'retain-on-failure',
    trace: 'on-first-retry',
  },
});

Основные команды консоли Playwright

Playwright поставляется с мощным CLI для генерации тестов, их запуска и отладки.

  • Запуск тестов:
npx playwright test

По умолчанию выполняются все тесты в папке tests.

  • Запуск конкретного файла:
npx playwright test tests/login.spec.js
  • Режим отладки:
npx playwright test --debug

Этот режим открывает графический интерфейс, позволяет пошагово выполнять тесты, проверять селекторы и анализировать поведение браузера.

  • Генерация тестов через запись действий пользователя:
npx playwright codegen https://example.com

Команда запускает браузер и записывает действия пользователя в формате JavaScript или TypeScript, что ускоряет создание автотестов.

Особенность: кодогенератор умеет подбирать уникальные селекторы, добавлять ожидания для элементов и может создавать шаблоны для сложных сценариев.


Навигация и управление проектом через CLI

Playwright CLI позволяет:

  1. Запуск тестов в нескольких браузерах одновременно:
npx playwright test --project=firefox
  1. Фильтрацию тестов по тегам или имени:
npx playwright test --grep "логин"
  1. Параллельное выполнение тестов:
npx playwright test --workers=4
  1. Очистку артефактов:
npx playwright show-report
npx playwright test --update-snapshots

Выделение ключевого момента: Playwright интегрируется с CI/CD системами без сложной настройки, благодаря понятной структуре команд и наличию артефактов (скриншоты, видео, трассы).


Просмотр и анализ отчётов

После выполнения тестов Playwright генерирует интерактивный HTML-отчёт:

npx playwright show-report

Отчёт содержит:

  • Статус каждого теста
  • Скриншоты и видео при падении
  • Полный лог действий и трассировки

Совет: включение trace: 'on-first-retry' позволяет сохранять трассы только при первой переиспытании, что экономит место на диске, но сохраняет полную информацию для отладки.


Сценарии использования консоли

  1. Локальная отладка сложных сценариев через --debug
  2. Автоматическая генерация кода с помощью codegen
  3. Интеграция с CI/CD через запуск тестов и просмотр отчётов
  4. Массовое обновление снимков (snapshots) при изменении интерфейса

Встроенные утилиты для тестирования

Playwright CLI предоставляет дополнительные команды:

  • Запуск тестов в браузере без headless режима:
npx playwright test --headed
  • Открытие отдельного браузера для интерактивного эксперимента:
npx playwright open https://example.com
  • Сохранение и восстановление состояния между тестами:
npx playwright test --storage-state=state.json
  • Инспекция элементов через консоль браузера:
npx playwright codegen --target javascript

Ключевой момент: эти утилиты ускоряют разработку, повышают стабильность тестов и позволяют интегрировать Playwright в сложные пайплайны автоматизации.


Настройка и расширение CLI

Конфигурация CLI полностью настраивается через playwright.config.js. Можно создавать несколько проектов, каждый с отдельными параметрами браузера, viewport, retries и артефактами.

Пример нескольких проектов:

projects: [
  { name: 'chromium', use: { browserName: 'chromium' } },
  { name: 'firefox', use: { browserName: 'firefox' } },
  { name: 'webkit', use: { browserName: 'webkit' } },
]

Это позволяет одновременно запускать тесты на всех браузерах и получать отдельные отчёты для каждого проекта.


Работа с пакетными и кастомными скриптами

Для упрощения запуска часто используют npm-скрипты в package.json:

"scripts": {
  "test": "playwright test",
  "test:debug": "playwright test --debug",
  "test:report": "playwright show-report"
}

Преимущество: команды становятся короткими и единообразными, что упрощает командную работу и настройку CI/CD.