← Усі теми

Питання на співбесіді з Playwright з відповідями

Автоматизація end-to-end тестів на Playwright: локатори й автоочікування, web-first перевірки, фікстури й проєкти, авторизація через storageState, мокання мережі й тестування API, трейси й налагодження, паралельний запуск, шардинг і CI, нестабільні тести й архітектура набору.

227 запитань для співбесіди з теми Playwright з відповідями й поясненнями - рівні Junior, Middle і Senior. Приклади запитань, онлайн-тести й задачі на код.

Запитання за рівнями

Приклади запитань

Кілька запитань із кожного рівня з правильною відповіддю й поясненням.

Playwright · Junior

  1. Яка команда створює новий проєкт Playwright Test з конфігом і прикладом тесту?
    Показати відповідь

    Правильна відповідь: npm init playwright@latest

    Команда init ставить кілька запитань (TypeScript чи JavaScript, тека тестів, workflow для GitHub Actions), встановлює @playwright/test і браузери та створює playwright.config.ts з прикладом тесту.

  2. Що робить npx playwright install?
    Показати відповідь

    Правильна відповідь: Завантажує збірки браузерів, потрібні Playwright

    Кожна версія Playwright перевірена з конкретними збірками Chromium, Firefox і WebKit. npx playwright install завантажує їх; --with-deps ще й ставить системні бібліотеки, що зручно на Linux-машинах у CI.

  3. Які три браузерні рушії Playwright Test підтримує з коробки?
    Показати відповідь

    Правильна відповідь: Chromium, Firefox і WebKit

    Playwright постачає збірки Chromium, Firefox і WebKit. Брендовані Chrome та Edge він теж може запускати через опцію channel.

  4. Яка команда запускає всі тести Playwright у проєкті?
    Показати відповідь

    Правильна відповідь: npx playwright test

    npx playwright test знаходить файли тестів у testDir, запускає їх паралельно в налаштованих проєктах і виводить результати через задані репортери.

Усі 75 запитань з відповідями →

Playwright · Middle

  1. Що змінює fullyParallel: true?
    Показати відповідь

    Правильна відповідь: Тести всередині одного файлу теж ідуть паралельно

    За замовчуванням файли йдуть паралельно, а тести всередині файлу - по черзі в одному воркері. fullyParallel розподіляє окремі тести між воркерами, і для цього кожен тест має бути незалежним.

  2. Чому в багатьох конфігах пишуть workers: process.env.CI ? 1 : undefined?
    Показати відповідь

    Правильна відповідь: CI-машини часто слабкі, і один воркер стабільніший

    Локально Playwright бере приблизно половину ядер процесора. На слабкому CI-раннері багато браузерів б'ються за CPU й ловлять таймаути. Команди з потужнішими раннерами чи шардингом збільшують число.

  3. Чого досягає retries: process.env.CI ? 2 : 0?
    Показати відповідь

    Правильна відповідь: Повторює падіння в CI, а локально показує їх одразу

    Локально падіння треба бачити одразу. У CI повтори гасять рідкісні збої інфраструктури, а тести, що пройшли з повтору, позначаються як flaky, щоб їх полагодили.

  4. Що означає тест із позначкою "flaky" у звіті Playwright?
    Показати відповідь

    Правильна відповідь: Спершу впав, а з повтору пройшов

    Flaky-тести не валять запуск, але потребують уваги: вони ховають гонки чи спільний стан. --fail-on-flaky-tests перетворює їх на падіння.

Усі 75 запитань з відповідями →

Playwright · Senior

  1. Набір Playwright іде 50 хвилин у CI. Який перший крок зазвичай найдієвіший?
    Показати відповідь

    Правильна відповідь: Знайти повільні тести й підготовку, шардити, переносити перевірки нижче

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

  2. Як --shard=2/4 ділить роботу?
    Показати відповідь

    Правильна відповідь: Запускає приблизно чверть тестів, другу частину

    Шарди ділять тести між машинами. З fullyParallel: true поділ іде по тестах, і це балансує краще, ніж поділ по файлах.

  3. Чому fullyParallel допомагає балансувати шарди?
    Показати відповідь

    Правильна відповідь: Між шардами розподіляються тести, а не цілі файли

    Без нього шард отримує цілі файли, тож один величезний файл може зробити цей шард набагато повільнішим за інші.

  4. Як отримати один звіт із чотирьох шардованих CI-джобів?
    Показати відповідь

    Правильна відповідь: Blob-репортер у кожному й merge-reports наприкінці

    Кожен шард вивантажує свій blob-звіт як артефакт, а фінальний джоб зливає їх в один HTML-звіт.

Усі 77 запитань з відповідями →

Збірні тести з цією темою

Запитання з кількох тем одразу - як на співбесіді на конкретну вакансію.

Задачі на код

Напишіть рішення просто в браузері - тести перевірять його одразу. Класика співбесід на JavaScript (debounce, deepClone, Promise.all, LRU-кеш), на TypeScript (дженерики, звуження й утилітні типи, перевіряє справжній компілятор), серверна логіка на Node.js (middleware, обмеження частоти, черги задач), SQL-запити в справжньому PostgreSQL і на React: компоненти й хуки на кшталт списку справ, вкладок, useDebounce та useInterval.

Відкрити задачі →