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

77 запитань для співбесіди з теми Playwright (Senior) - з правильними відповідями, поясненнями й посиланнями на документацію.

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