Для того чтобы начать работать с Playwright в JavaScript, необходимо выполнить несколько шагов по установке и настройке необходимых инструментов.
Playwright является библиотекой для Node.js, поэтому перед его
использованием нужно установить сам Node.js. Это можно сделать с помощью
официального сайта nodejs.org или
через пакетный менеджер, такой как nvm.
Для установки Node.js через nvm на Unix-подобных системах (Linux/macOS) выполните следующие команды:
nvm install node
nvm use node
Для Windows можно воспользоваться установщиком, доступным на сайте.
После установки Node.js создается новый проект. Для этого необходимо создать директорию для проекта и инициализировать новый Node.js проект с помощью команды:
mkdir my-playwright-project
cd my-playwright-project
npm init -y
Это создаст файл package.json, который будет хранить все
зависимости проекта.
Для установки Playwright используется npm, который автоматически
добавит нужные зависимости в package.json. Для этого
выполните следующую команду:
npm i playwright
Эта команда установит сам Playwright, а также зависимости для браузеров (Chromium, Firefox, WebKit). Вы можете установить только один из браузеров, если это необходимо:
npm i playwright-chromium
npm i playwright-firefox
npm i playwright-webkit
Однако для большинства проектов достаточно установить полный пакет.
В зависимости от того, как планируется запускать тесты, потребуется дополнительная настройка. Playwright хорошо интегрируется с такими фреймворками для тестирования, как Jest или Mocha. Рассмотрим установку и настройку с Jest.
Для начала установим Jest:
npm i --save-dev jest
Затем, нужно добавить в package.json скрипт для запуска
тестов:
"scripts": {
"test": "jest"
}
Теперь Jest готов к использованию. Чтобы интегрировать Playwright с Jest, необходимо установить дополнительные пакеты:
npm i --save-dev @playwright/test
После установки Playwright, необходимо настроить сам инструмент. Для
начала можно создать файл playwright.config.js, в котором
будут прописаны основные параметры тестирования.
Пример базовой конфигурации:
// playwright.config.js
module.exports = {
timeout: 30000,
use: {
headless: false, // Запуск браузера в невидимом режиме
browserName: 'chromium', // Указываем, с каким браузером будем работать
baseURL: 'http://localhost:3000' // Устанавливаем базовый URL для тестов
}
};
Теперь можно приступить к написанию первого теста. Для этого создаем
новый файл, например, example.spec.js, и начинаем писать
тесты:
const { test, expect } = require('@playwright/test');
test('проверка доступности главной страницы', async ({ page }) => {
await page.goto('http://localhost:3000');
await expect(page).toHaveTitle(/Главная страница/);
});
В этом примере используется API Playwright для перехода на страницу и
проверки заголовка. Для асинхронных операций используется
await, чтобы дождаться завершения всех действий, таких как
переход на страницу и проверка.
Запуск тестов осуществляется через команду:
npx playwright test
Эта команда выполнит все тесты, написанные с использованием API Playwright. Также можно указать конкретный файл, если нужно запустить только определённый тест:
npx playwright test example.spec.js
Обычно для организации тестов создается следующая структура:
my-playwright-project/
│
├── node_modules/
│
├── tests/
│ ├── example.spec.js
│ └── another-test.spec.js
│
├── playwright.config.js
├── package.json
└── package-lock.json
Папка tests/ предназначена для хранения всех тестов. В
корне проекта расположены конфигурационные файлы и зависимости.
Для удобства можно настроить запуск тестов на различных браузерах или в различных условиях. Например, Playwright поддерживает запуск тестов в облачных сервисах CI/CD, таких как GitHub Actions, GitLab CI или Jenkins. Также доступны параметры для эмуляции мобильных устройств, настройка сессий и обработка ошибок.
Кроме того, Playwright поддерживает расширенные возможности, такие как создание скриншотов или запись видео во время выполнения тестов. Пример добавления скриншотов:
test('проверка доступности главной страницы', async ({ page }) => {
await page.goto('http://localhost:3000');
await page.screenshot({ path: 'screenshot.png' });
await expect(page).toHaveTitle(/Главная страница/);
});
Playwright легко интегрируется с различными системами CI/CD. Для использования в таких системах важно убедиться, что все тесты запускаются на удаленных машинах и учитываются все особенности окружения.
Для GitHub Actions можно настроить файл workflow следующим образом:
name: Playwright Test
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: '14'
- name: Install dependencies
run: npm install
- name: Run tests
run: npm test
Этот файл автоматически будет запускать тесты при каждом push или pull request в репозиторий.
После выполнения всех шагов проект готов для использования Playwright для тестирования веб-приложений. В дальнейшем можно расширять конфигурацию и добавлять более сложные сценарии тестирования, включая обработку ошибок, тестирование производительности, а также настройку окружения для тестов.