Питання на співбесіді з Playwright (Senior) з відповідями
77 запитань для співбесіди з теми Playwright (Senior) - з правильними відповідями, поясненнями й посиланнями на документацію.
Пройти цей тест- 1.Набір Playwright іде 50 хвилин у CI. Який перший крок зазвичай найдієвіший?
- 2.Як
--shard=2/4ділить роботу? - 3.Чому
fullyParallelдопомагає балансувати шарди? - 4.Як отримати один звіт із чотирьох шардованих CI-джобів?
- 5.Що робить
--only-changed? - 6.З чим допомагає
maxFailuresу конфігу? - 7.Що обмежує
globalTimeout? - 8.Чому E2E-тести не мають покривати кожне бізнес-правило?
- 9.Як вирішити, які сценарії заслуговують на E2E-тести?
- 10.Як спроєктувати фікстури для пулу тестових акаунтів у паралельних запусках?
- 11.Чому збережений
storageStateможе валити тести через кілька днів? - 12.Як тестувати застосунок, що входить через зовнішнього SSO-провайдера?
- 13.Як E2E-тестам впоратися з двофакторною автентифікацією через TOTP-застосунок?
- 14.Як протестувати сценарій, що надсилає лист із підтвердженням?
- 15.Мокання всіх API робить E2E-тести швидкими. Який головний ризик?
- 16.Як не дати HAR-мокам застаріти?
- 17.Чому
page.routeможе не перехопити деякі запити? - 18.Як замокати WebSocket-сервер у тесті Playwright?
- 19.Які обмеження мобільної емуляції в Playwright?
- 20.Тест проходить у Chromium, але падає у WebKit. Що розумно зробити?
- 21.Чому headless- і headed-запуски можуть поводитися по-різному?
- 22.Як налагодити падіння, що трапляється лише в CI?
- 23.Який патерн часто дає нестабільні тести після клацання, що веде на іншу сторінку?
- 24.Чому введення в поле пошуку з debounce може давати нестабільні результати?
- 25.Чому клацання може влучити не в той елемент списку, що з'являється з анімацією?
- 26.Як вимірювати нестабільність набору з часом?
- 27.Що робити з тестом, який часто flaky?
- 28.Який компроміс у спільній сторінці для тестів через фікстуру воркера?
- 29.Чому контексти браузера дешеві порівняно із запуском браузерів?
- 30.Як додати власний матчер на кшталт
toHaveCartTotal? - 31.Що дає
expect.configure({ timeout: 15_000 })? - 32.Коли варто писати власний репортер?
- 33.Що робить
box: trueуtest.step? - 34.Як фікстура може валити тести, що виводять помилки в консоль?
- 35.Куди тест має писати тимчасові файли, щоб паралельні тести не конфліктували?
- 36.Яка головна проблема підтримки величезного page object, що знає все?
- 37.Яка альтернатива глибокому наслідуванню page object?
- 38.Як вибирати локатори в застосунку з кількома мовами?
- 39.Що має казати правило команди про
data-testid? - 40.Коли розумно заповнювати дані напряму в базі?
- 41.Як прибирати дані, створені E2E-тестами?
- 42.Навіщо запускати E2E-тести на preview-деплоях кожного pull request?
- 43.Яке розумне використання тестів Playwright проти продакшену?
- 44.Чому Playwright - поганий інструмент для навантажувального тестування?
- 45.Як Playwright може збирати дані продуктивності сторінки?
- 46.Який компроміс у використанні CDP-сесій у тестах Playwright?
- 47.Які обмеження компонентного тестування в Playwright?
- 48.Коли окуповується візуальне регресійне тестування?
- 49.Як зробити скриншот-тести стабільними на різних машинах?
- 50.Що робить
toHaveScreenshot, щоб зменшити нестабільність перед порівнянням? - 51.Що таке тестові агенти Playwright?
- 52.Який головний ризик, якщо дати ШІ-агенту «лікувати» тести, що падають?
- 53.Які обмеження коду, записаного через
codegen? - 54.Як запускати Playwright для кількох застосунків у монорепо?
- 55.Як запустити кілька сервісів перед тестами?
- 56.Як тестувати платіжний сценарій в E2E?
- 57.Чому після надсилання форми може знадобитися
page.waitForURL? - 58.Як команді діяти з тестами, яким потрібні хвилини, як-от великі імпорти?
- 59.Що додає нічний повний запуск до запусків меншого набору на PR?
- 60.Як перевірити, що жоден маршрут не має серйозних порушень доступності?
- 61.Що дає перевірити
page.clock.install(), коли справжні таймери незручні? - 62.Як протестувати застосунок на Electron через Playwright?
- 63.Чому фікстури не мають ховати головну дію тесту?
- 64.Яке розумне правило для
test.skipіfixmeу великому наборі? - 65.Чому у великих наборах варто тримати файли трейсів маленькими?
- 66.Як переконатися, що тести не залежать від порядку запуску?
- 67.Що перевірити першим, коли тест падає з таймаутом на
click()? - 68.Як перевірити, що фіча за прапорцем працює в обох станах?
- 69.Чому тести, що проходять з одним воркером, можуть падати з багатьма?
- 70.Як рев'ювати код E2E-тестів?
- 71.Для чого потрібні
test.info().annotations? - 72.Чому великому набору варто уникати
beforeAll, що створює спільний стан для файлу? - 73.Як впоратися зі сторонніми скриптами на кшталт чат-віджетів, що сповільнюють тести?
- 74.Яка головна перевага запуску кожної мови чи тенанта окремим проєктом Playwright?
- 75.Коли перевірка мережевого рівня в E2E-тестах краща за перевірку UI?
- 76.Яке повідомлення про падіння E2E добре для команди?
- 77.Яка роль Playwright у тестовій стратегії поруч із юніт- і API-тестами?