Prog Academy
RU UA
QA та тестування

Що таке Playwright?

Playwright — сучасний інструмент Microsoft для автоматизації браузерів та E2E-тестування. Він керує Chromium, Firefox і WebKit одним API та з коробки розвʼязує головний біль автотестів — нестабільність через тайминги.

Ключова особливість — автоочікування: перед дією Playwright сам дочікується, поки елемент зʼявиться й стане клікабельним. Це прибирає ручні паузи, через які тести падають через раз без жодної причини.

У комплекті йдуть зручні інструменти: запис сценарію кліками, трасування тесту, що впав, з історією кроків і скриншотами, паралельний запуск, перехоплення мережевих запитів. Пишуть тести найчастіше на TypeScript або Python.

Де застосовується

Playwright частіше обирають у продуктових командах і нових проєктах, де фронтенд написаний на JavaScript чи TypeScript: тести живуть у тому самому репозиторії і тією самою мовою, що й застосунок. Один набір перевірок при цьому виконується в Chromium, Firefox і WebKit без переписування.

Крім самих тестів інструмент закриває й суміжні задачі: запис сценарію за діями у браузері, налагодження з покроковим переглядом, трасування з відео і знімками екрана при падінні, підміна мережевих запитів та емуляція мобільних пристроїв. Це помітно скорочує час на розбір нестабільних прогонів.

Приклад

Тест відкриває каталог, застосовує фільтр за ціною і перевіряє, що у видачі не лишилося товарів дорожчих за задану суму. Очікування появи оновленого списку відбувається автоматично — писати паузи вручну не доводиться.

import { test, expect } from '@playwright/test';

test('submits a consultation request', async ({ page }) => {
  await page.goto('/ua/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: вбудовані очікування знімають потребу в паузах.

Playwright чи Selenium

Selenium — галузевий стандарт із максимальною підтримкою мов і браузерів, частіше трапляється у великих і давніх проєктах, особливо на Java. Playwright молодший, швидший у запуску та стабільніший за замовчуванням, тому його частіше обирають у нових проєктах. Для карʼєри в QA Automation корисно знати обидва.

Часті запитання

Чим Playwright кращий за Selenium?

Насамперед вбудованими очікуваннями: він сам дочікується, поки елемент стане видимим і активним, що прибирає основну причину нестабільних тестів. Додайте до цього швидше встановлення, роботу з трьома рушіями браузерів і зручне трасування падінь.

Якими мовами можна писати тести?

Офіційно підтримуються TypeScript і JavaScript, Python, Java та C#. Найповніше і найраніше можливості виходять у версії для TypeScript — саме її використовує більшість команд і більша частина документації та прикладів у мережі.

Чи підходить Playwright для тестування API?

Так, у ньому є вбудований клієнт для HTTP-запитів. Це зручно у змішаних сценаріях: підготувати дані запитом до API, а потім перевірити, як вони відображаються в інтерфейсі. Для повноцінного набору API-тестів частіше беруть спеціалізовані інструменти.

Чи варто переводити наявні тести із Selenium?

Лише за реального болю: постійні падіння, довгі прогони, складна підтримка. Переписування великого набору — це тижні роботи. Часта практика — лишити наявні тести і писати на Playwright усе нове, поступово зміщуючи баланс.

Повʼязані терміни