QA та тестування
Що таке Playwright?
Playwright — це сучасний інструмент від Microsoft для автоматизації браузерів і E2E-тестування. Він керує Chromium, Firefox і WebKit через один API і одразу розв’язує головну проблему автотестів — нестабільність через проблеми з часом очікування.
Головна особливість — автоматичне очікування: перед кожною дією Playwright сам чекає, поки елемент з’явиться і стане доступним для натискання. Тому не потрібні ручні паузи, через які тести падають без видимої причини.
У комплекті є зручні інструменти: запис сценарію кліками, трасування тесту, що впав, з історією кроків і скриншотами, паралельний запуск, перехоплення мережевих запитів. Тести найчастіше пишуть на TypeScript або Python.
Де застосовується
Playwright частіше обирають у продуктових командах і нових проєктах, де фронтенд написаний на JavaScript чи TypeScript: тести зберігаються в тому ж репозиторії і пишуться тією ж мовою, що й застосунок. Один набір перевірок працює в Chromium, Firefox і WebKit без змін.
Інструмент закриває і суміжні задачі: запис сценарію за діями в браузері, покрокове налагодження, трасування з відео і скриншотами при падінні, підміна мережевих запитів, імітація мобільних пристроїв. Це значно скорочує час на розбір нестабільних запусків.
Приклад
Тест відкриває каталог, застосовує фільтр за ціною і перевіряє, що у видачі немає товарів дорожчих за вказану суму. Playwright сам чекає на оновлений список, тож писати паузи вручну не потрібно.
import { test, expect } from '@playwright/test';
test('submits a consultation request', async ({ page }) => {
await page.goto('/glossary');
await page.getByRole('button', { name: 'Записатися' }).click();
await page.getByLabel("Ім'я").fill('Анна');
await page.getByLabel('Телефон').fill('+380991234567');
await page.getByRole('button', { name: 'Надіслати' }).click();
await expect(page.getByText('Дякуємо за заявку')).toBeVisible();
});
Playwright чи Selenium
Selenium — стандарт галузі з підтримкою найбільшої кількості мов і браузерів, його частіше використовують у великих і старих проєктах, особливо на Java. Playwright молодший, швидше запускається і стабільніший за замовчуванням, тому його частіше обирають для нових проєктів. Для кар’єри в QA Automation корисно знати обидва.
Часті запитання
Чим Playwright кращий за Selenium?
Насамперед вбудованим очікуванням: він сам чекає, поки елемент стане видимим і активним, і це прибирає головну причину нестабільних тестів. Крім того, він простіше встановлюється, працює з трьома браузерними рушіями і має зручне трасування помилок.
Якими мовами можна писати тести на Playwright?
Офіційно підтримуються TypeScript і JavaScript, Python, Java та C#. Найповніше і найраніше нові можливості з’являються у версії для TypeScript — її використовує більшість команд, і саме до неї більшість документації та прикладів.
Чи підходить Playwright для тестування API?
Так, у ньому є вбудований клієнт для HTTP-запитів. Це зручно у змішаних сценаріях: підготувати дані через API, а потім перевірити, як вони показуються в інтерфейсі. Для повноцінного набору API-тестів частіше використовують спеціалізовані інструменти.
Чи варто переводити наявні тести із Selenium?
Лише якщо є реальні проблеми: постійні падіння, довгі запуски, складна підтримка. Переписування великого набору тестів займає тижні. Часто залишають наявні тести, а все нове пишуть на Playwright, поступово змінюючи співвідношення.
Навчання тестуванню в OWU
Опануйте професію QA-інженера на практичних курсах із менторами та реальними проєктами.
Обрати курс