
Интервьюер:
…. Мы видим в твоём резюме опыт с Playwright на Python. Расскажи, как ты использовал этот инструмент в проектах?
Кандидат:
Да, я использую Playwright с Python для end-to-end тестирования веб-приложений. В одном из проектов у нас была админка с динамическими таблицами и фильтрами, и я автоматизировал сценарии с авторизацией, валидацией форм и проверками данных в UI.
Я использовал pytest как фреймворк, Page Object Model для структуры, и запускал тесты в CI через GitHub Actions.
Интервьюер:
Как ты организовываешь структуру тестов с использованием Page Object в Playwright?
Кандидат:
Я создаю папку pages, где каждая страница — отдельный класс, с методами, описывающими действия над элементами. Например, LoginPage, DashboardPage.
Также есть locators.py — чтобы при необходимости быстро менять локаторы.
Сами тесты размещаются в папке tests, и каждый файл покрывает отдельный функциональный модуль.
Интервьюер:
Playwright позволяет работать с несколькими контекстами и браузерами. Использовал ли ты это?
Кандидат:
Да, использовал. Особенно удобно для параллельного запуска тестов и тестирования нескольких ролей — например, админ и пользователь.
Я создавал отдельный browser_context и page для каждого пользователя в conftest.py, и переключал их во время теста. Это удобно и быстро, особенно с async API.
Интервьюер:
Расскажи, как ты работаешь с ожиданиями в Playwright? Были ли проблемы с flaky тестами?
Кандидат:
В основном я использую встроенные ожидания, такие как page.locator(...).wait_for() или просто locator().click() — Playwright автоматически ждет появления элемента.
Flaky тесты были в местах, где менялось состояние элементов, и приходилось добавлять проверки assert element.is_visible() перед действием.
Если страница перегружалась — использовал expect(page).to_have_url() или to_have_title() до следующего шага.
Интервьюер:
Как запускаешь тесты локально и в CI? Используешь ли репортеры?
Кандидат:
Локально — через pytest, а в CI (GitHub Actions) — workflow, где тесты запускаются в headless-режиме.
Добавляю pytest-html или allure для отчетов, и в случае падения теста сохраняю скриншоты и логи (context.tracing.start() / tracing.stop(path=...)).
Интервьюер:
Какой самый интересный баг ты нашел с помощью Playwright?
Кандидат:
На одном проекте мы тестировали редактирование профиля, и при быстрой последовательности действий (редактировать → сохранить → сразу назад) сервер сохранял пустой профиль.
Я написал тест, который выполнял действия с минимальными ожиданиями — баг был воспроизводим только в автоматике, руками его сложно поймать.
Готов прокачать навыки и повысить ценность на рынке QA?
Мы также присутствуем в социальных сетях! Подписывайтесь на нас и получайте последние новости, акции, скидки, бесплатные тренинги и участие в марафонах.
Будем рады видеть вас в нашем сообществе!
Публичная оферта. Авторское право © 2024 Школа подготовки тестировщиков