Розділ 1 з 12

Раннер і бібліотека: що таке Playwright Test

Playwright існує у двох формах. Бібліотека playwright вміє керувати браузером. Пакет @playwright/test додає до неї повноцінний тестовий фреймворк: раннер, assertions, ізоляцію, паралельність і інструменти для налагодження.

Документація описує Playwright Test як end-to-end фреймворк для сучасних вебзастосунків, в який уже вбудовано test runner, assertions, ізоляцію, паралелізацію та інструменти. Він працює з Chromium, WebKit і Firefox на Windows, Linux і macOS, локально й у CI, у headless- або headed-режимі, з емуляцією мобільних Chrome для Android і Mobile Safari.

Щоб відчути різницю, порівняйте той самий сценарій у двох формах. У бібліотеці ви самі запускаєте браузер, створюєте контекст і сторінку, закриваєте все у finally і пишете перевірки вручну. У раннері ці обов'язки бере на себе інфраструктура: ви оголошуєте, що вам потрібна page, і отримуєте готову сторінку в новому ізольованому контексті.

Той самий сценарій: бібліотека проти раннера

Перемкніть режим. Позначки біля рядків показують, яку роботу бере на себе раннер.

Коли потрібна бібліотека, а коли раннер

Проблема. Новачки інколи пишуть тести як скрипти: вручну запускають chromium.launch() і перевіряють результат через if.

Чому це погано. Такий скрипт не має ізоляції між тестами, звітів, повторів, паралельного запуску й assertions з автоочікуванням. Усе це доведеться будувати самому, і це буде гірше, ніж у раннері.

Рішення. Для тестування беріть @playwright/test і вбудовані фікстури (page, context, request).

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