Pytania rekrutacyjne Playwright z odpowiedziami
Automatyzacja testów end-to-end w Playwright: lokatory i auto-waiting, asercje web-first, fixtures i projekty, logowanie przez storageState, mockowanie sieci i testy API, trace'y i debugowanie, uruchamianie równoległe, sharding i CI, niestabilne testy i architektura zestawu.
227 pytań na rozmowę rekrutacyjną z tematu Playwright z odpowiedziami i wyjaśnieniami - poziomy Junior, Middle i Senior. Przykładowe pytania, testy online i zadania z kodu.
- Lokatory
- Fixtures
- Mockowanie sieci
- Trace viewer
- CI i sharding
Pytania według poziomu
Junior
Podstawowe pojęcia i składnia · 50 pytań
Middle
Praktyka, niuanse i optymalizacja · 50 pytań
Senior
Architektura, mechanizmy wewnętrzne, przypadki brzegowe · 50 pytań
Przykładowe pytania
Kilka pytań z każdego poziomu z poprawną odpowiedzią i wyjaśnieniem.
Playwright · Junior
- Które polecenie tworzy nowy projekt Playwright Test z konfiguracją i przykładowym testem?
Pokaż odpowiedź
Poprawna odpowiedź:
npm init playwright@latestPolecenie init zadaje kilka pytań (TypeScript czy JavaScript, folder testów, workflow GitHub Actions), instaluje
@playwright/testi przeglądarki oraz tworzyplaywright.config.tsz przykładowym testem. - Co robi
npx playwright install?Pokaż odpowiedź
Poprawna odpowiedź: Pobiera wersje przeglądarek potrzebne Playwright
Każda wersja Playwright jest testowana z konkretnymi buildami Chromium, Firefox i WebKit.
npx playwright installje pobiera;--with-depsinstaluje też biblioteki systemowe, co przydaje się na linuksowych maszynach CI. - Jakie trzy silniki przeglądarek Playwright Test obsługuje od razu?
Pokaż odpowiedź
Poprawna odpowiedź: Chromium, Firefox i WebKit
Playwright dostarcza buildy Chromium, Firefox i WebKit. Markowe Chrome i Edge może też uruchamiać przez opcję
channel. - Które polecenie uruchamia wszystkie testy Playwright w projekcie?
Pokaż odpowiedź
Poprawna odpowiedź:
npx playwright testnpx playwright testznajduje pliki testów wtestDir, uruchamia je równolegle w skonfigurowanych projektach i wypisuje wyniki przez ustawione reportery.
Playwright · Middle
- Co zmienia
fullyParallel: true?Pokaż odpowiedź
Poprawna odpowiedź: Testy w jednym pliku też działają równolegle
Domyślnie pliki działają równolegle, ale testy w pliku idą po kolei w jednym workerze.
fullyParallelrozkłada pojedyncze testy między workery, co wymaga niezależności każdego testu. - Dlaczego wiele konfiguracji ma
workers: process.env.CI ? 1 : undefined?Pokaż odpowiedź
Poprawna odpowiedź: Maszyny CI bywają słabe, a jeden worker jest stabilny
Lokalnie Playwright używa około połowy rdzeni CPU. Na małym runnerze CI wiele przeglądarek walczy o CPU i dostaje timeouty. Zespoły z większymi runnerami lub shardingiem zwiększają liczbę.
- Co daje
retries: process.env.CI ? 2 : 0?Pokaż odpowiedź
Poprawna odpowiedź: Powtarza awarie w CI, a lokalnie pokazuje je od razu
Lokalnie chcesz od razu zobaczyć awarię. W CI powtórki pochłaniają rzadkie problemy infrastruktury, a testy przechodzące przy powtórce są oznaczane jako flaky do naprawy.
- Co oznacza test oznaczony jako "flaky" w raporcie Playwright?
Pokaż odpowiedź
Poprawna odpowiedź: Najpierw padł, a przy powtórce przeszedł
Testy flaky nie oblewają uruchomienia, ale wymagają uwagi: ukrywają wyścigi lub wspólny stan.
--fail-on-flaky-testszamienia je w porażki.
Playwright · Senior
- Zestaw Playwright trwa w CI 50 minut. Jaki pierwszy krok jest zwykle najskuteczniejszy?
Pokaż odpowiedź
Poprawna odpowiedź: Znaleźć wolne testy i setup, shardować i przenieść sprawdzenia niżej
Raport pokazuje, gdzie idzie czas: logowanie przez UI, długie ścieżki, czekanie. Naprawa tego, przeniesienie sprawdzeń logiki do testów API lub jednostkowych i sharding między maszynami zwykle dają największy zysk.
- Jak
--shard=2/4dzieli pracę?Pokaż odpowiedź
Poprawna odpowiedź: Uruchamia mniej więcej ćwierć testów, drugą część
Shardy dzielą testy między maszyny. Z
fullyParallel: truepodział idzie per test, co równoważy lepiej niż per plik. - Dlaczego
fullyParallelpomaga równoważyć shardy?Pokaż odpowiedź
Poprawna odpowiedź: Między shardy trafiają testy, a nie całe pliki
Bez niego shard dostaje całe pliki, więc jeden ogromny plik może uczynić ten shard dużo wolniejszym od innych.
- Jak dostać jeden raport z czterech shardowanych jobów CI?
Pokaż odpowiedź
Poprawna odpowiedź: Reporter blob w każdym i
merge-reportsna końcuKażdy shard wysyła raport blob jako artefakt, a końcowy job scala je w jeden raport HTML.
Testy łączone z tym tematem
Pytania z kilku tematów naraz - jak na rozmowie rekrutacyjnej na konkretne stanowisko.
Zadania z kodu
Napisz rozwiązanie prosto w przeglądarce, a testy od razu je sprawdzą. Klasyka rozmów rekrutacyjnych z JavaScriptu (debounce, deepClone, Promise.all, cache LRU), z TypeScriptu (generyki, zawężanie i typy narzędziowe, sprawdza prawdziwy kompilator), logika backendu w Node.js (middleware, limity żądań, kolejki zadań), zapytania SQL w prawdziwym PostgreSQL i z Reacta: komponenty i hooki, takie jak lista zadań, zakładki, useDebounce i useInterval.
Otwórz zadania →