Найти в Дзене
IT life

Как начать писать тесты на JavaScript с использованием Playwright

Оглавление

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

Что такое Playwright?

Playwright — это инструмент для автоматизации тестирования веб-приложений, разработанный компанией Microsoft. Playwright позволяет запускать тесты на нескольких браузерах одновременно, упрощает взаимодействие с веб-страницами и обеспечивает высокую скорость работы.

Как начать использовать Playwright?

Шаг 1: Установка Node.js

Перед тем, как начать использовать Playwright, необходимо установить Node.js на свой компьютер, если он еще не установлен. Node.js — это среда выполнения JavaScript, которая позволяет запускать JavaScript на стороне сервера. Вы можете скачать установщик Node.js с официального сайта Node.js.

Шаг 2: Создание проекта Node.js

После установки Node.js необходимо создать новый проект Node.js. Вы можете использовать команду npm init для создания нового проекта. В этом проекте вы будете писать свои тесты на JavaScript с использованием Playwright.

Шаг 3: Установка Playwright

После создания проекта необходимо установить Playwright, используя команду npm install playwright. Это установит Playwright и все необходимые зависимости.

Шаг 4: Создание файла с тестами

Создайте файл с тестами и добавьте в него необходимые импорты, например:

const { chromium } = require('playwright');

(async () => {
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
// здесь можно добавить тестовые сценарии
await browser.close();
})();

Шаг 5: Добавление тестовых сценариев

Добавьте необходимые тестовые сценарии в свой файл с тестами. Например:

const { chromium } = require('playwright');

(async () => {
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto('https://example.com');

// Проверяем заголовок страницы
expect(await page.title()).toBe('Example Domain');

// Заполняем форму на странице и отправляем ее
await page.fill('#username', 'user123');
await page.fill('#password', 'pass123');
await page.click('#submit-button');

// Проверяем, что мы перешли на новую страницу
expect(page.url()).toContain('/dashboard');

await browser.close();
})();

Шаг 6: Запуск тестов

После написания тестовых сценариев вы можете запустить свои тесты, используя команду npm test.

Шаг 7: Настройка тестового окружения

Вы можете настроить свое тестовое окружение, чтобы использовать различные браузеры, например, Chromium, Firefox или WebKit. Вы можете выбрать браузер, используя следующий код:

const { chromium, firefox, webkit } = require('playwright');

const browserType = process.env.BROWSER || 'chromium';
let browser;

switch (browserType) {
case 'chromium':
browser = chromium;
break;
case 'firefox':
browser = firefox;
break;
case 'webkit':
browser = webkit;
break;
default:
console.error('Invalid browser type');
process.exit(1);
}

(async () => {
const browser = await browserType.launch();
// ваш код тестирования
await browser.close();
})();

Вы можете указать тип браузера, используя переменную среды BROWSER. Например, если вы хотите запустить тесты в Firefox, используйте команду BROWSER=firefox npm test.

Добавлю несколько лайфхаков, которые могут помочь вам при работе с Playwright.
  1. Используйте функцию waitForSelector для ожидания появления элемента на странице перед выполнением действия.
await page.waitForSelector('#my-element');
await page.click('#my-element');

2. Для удобства вы можете использовать метод fillForm для заполнения формы на странице.

await page.fillForm('form', {
'input[name="username"]': 'user123',
'input[name="password"]': 'pass123',
});
await page.click('button[type="submit"]');

3. Чтобы визуально убедиться, что тесты выполняются правильно, вы можете использовать параметр headless: false при запуске браузера. Таким образом, браузер будет запущен в режиме отображения окна, и вы сможете увидеть, как выполняются ваши тесты.

const browser = await chromium.launch({ headless: false });

4. Если вы хотите запустить тесты в нескольких браузерах одновременно, вы можете использовать функцию Promise.all.

const [browser1, browser2, browser3] = await Promise.all([
chromium.launch(),
firefox.launch(),
webkit.launch(),
]);

5. Используйте метод evaluate для выполнения JavaScript кода на странице.

const pageTitle = await page.evaluate(() => document.title);
console.log(pageTitle);

6. Для симуляции долгой нагрузки или задержки на странице вы можете использовать метод waitForTimeout.

await page.click('#my-element');
await page.waitForTimeout(1000); // ждем 1 секунду
await page.click('#my-other-element');

Надеюсь, эти лайфхаки помогут вам улучшить ваш опыт работы с Playwright!

В заключение:

Playwright — это мощный инструмент для автоматизации тестирования веб-приложений на JavaScript. Он позволяет упростить процесс тестирования, ускорить его и улучшить качество. Начать использование Playwright не сложно, достаточно выполнить несколько простых шагов, и вы сможете начать писать тесты на JavaScript с помощью Playwright.