Питання на співбесіді з Playwright з відповідями
Автоматизація end-to-end тестів на Playwright: локатори й автоочікування, web-first перевірки, фікстури й проєкти, авторизація через storageState, мокання мережі й тестування API, трейси й налагодження, паралельний запуск, шардинг і CI, нестабільні тести й архітектура набору.
227 запитань для співбесіди з теми Playwright з відповідями й поясненнями - рівні Junior, Middle і Senior. Приклади запитань, онлайн-тести й задачі на код.
- Локатори
- Фікстури
- Мокання мережі
- Trace viewer
- CI і шардинг
Запитання за рівнями
Junior
Базові поняття та синтаксис · 50 запитань
Middle
Практика, нюанси й оптимізація · 50 запитань
Senior
Архітектура, внутрішня будова, edge cases · 50 запитань
Приклади запитань
Кілька запитань із кожного рівня з правильною відповіддю й поясненням.
Playwright · Junior
- Яка команда створює новий проєкт Playwright Test з конфігом і прикладом тесту?
Показати відповідь
Правильна відповідь:
npm init playwright@latestКоманда init ставить кілька запитань (TypeScript чи JavaScript, тека тестів, workflow для GitHub Actions), встановлює
@playwright/testі браузери та створюєplaywright.config.tsз прикладом тесту. - Що робить
npx playwright install?Показати відповідь
Правильна відповідь: Завантажує збірки браузерів, потрібні Playwright
Кожна версія Playwright перевірена з конкретними збірками Chromium, Firefox і WebKit.
npx playwright installзавантажує їх;--with-depsще й ставить системні бібліотеки, що зручно на Linux-машинах у CI. - Які три браузерні рушії Playwright Test підтримує з коробки?
Показати відповідь
Правильна відповідь: Chromium, Firefox і WebKit
Playwright постачає збірки Chromium, Firefox і WebKit. Брендовані Chrome та Edge він теж може запускати через опцію
channel. - Яка команда запускає всі тести Playwright у проєкті?
Показати відповідь
Правильна відповідь:
npx playwright testnpx playwright testзнаходить файли тестів уtestDir, запускає їх паралельно в налаштованих проєктах і виводить результати через задані репортери.
Playwright · Middle
- Що змінює
fullyParallel: true?Показати відповідь
Правильна відповідь: Тести всередині одного файлу теж ідуть паралельно
За замовчуванням файли йдуть паралельно, а тести всередині файлу - по черзі в одному воркері.
fullyParallelрозподіляє окремі тести між воркерами, і для цього кожен тест має бути незалежним. - Чому в багатьох конфігах пишуть
workers: process.env.CI ? 1 : undefined?Показати відповідь
Правильна відповідь: CI-машини часто слабкі, і один воркер стабільніший
Локально Playwright бере приблизно половину ядер процесора. На слабкому CI-раннері багато браузерів б'ються за CPU й ловлять таймаути. Команди з потужнішими раннерами чи шардингом збільшують число.
- Чого досягає
retries: process.env.CI ? 2 : 0?Показати відповідь
Правильна відповідь: Повторює падіння в CI, а локально показує їх одразу
Локально падіння треба бачити одразу. У CI повтори гасять рідкісні збої інфраструктури, а тести, що пройшли з повтору, позначаються як flaky, щоб їх полагодили.
- Що означає тест із позначкою "flaky" у звіті Playwright?
Показати відповідь
Правильна відповідь: Спершу впав, а з повтору пройшов
Flaky-тести не валять запуск, але потребують уваги: вони ховають гонки чи спільний стан.
--fail-on-flaky-testsперетворює їх на падіння.
Playwright · Senior
- Набір Playwright іде 50 хвилин у CI. Який перший крок зазвичай найдієвіший?
Показати відповідь
Правильна відповідь: Знайти повільні тести й підготовку, шардити, переносити перевірки нижче
Звіт показує, куди йде час: входи через UI, довгі сценарії, очікування. Виправлення цього, перенесення перевірок логіки в API- чи юніт-тести й шардинг між машинами зазвичай дають найбільший виграш.
- Як
--shard=2/4ділить роботу?Показати відповідь
Правильна відповідь: Запускає приблизно чверть тестів, другу частину
Шарди ділять тести між машинами. З
fullyParallel: trueподіл іде по тестах, і це балансує краще, ніж поділ по файлах. - Чому
fullyParallelдопомагає балансувати шарди?Показати відповідь
Правильна відповідь: Між шардами розподіляються тести, а не цілі файли
Без нього шард отримує цілі файли, тож один величезний файл може зробити цей шард набагато повільнішим за інші.
- Як отримати один звіт із чотирьох шардованих CI-джобів?
Показати відповідь
Правильна відповідь: Blob-репортер у кожному й
merge-reportsнаприкінціКожен шард вивантажує свій blob-звіт як артефакт, а фінальний джоб зливає їх в один HTML-звіт.
Збірні тести з цією темою
Запитання з кількох тем одразу - як на співбесіді на конкретну вакансію.
Задачі на код
Напишіть рішення просто в браузері - тести перевірять його одразу. Класика співбесід на JavaScript (debounce, deepClone, Promise.all, LRU-кеш), на TypeScript (дженерики, звуження й утилітні типи, перевіряє справжній компілятор), серверна логіка на Node.js (middleware, обмеження частоти, черги задач), SQL-запити в справжньому PostgreSQL і на React: компоненти й хуки на кшталт списку справ, вкладок, useDebounce та useInterval.
Відкрити задачі →