Playwright — это мощный инструмент для автоматизированного тестирования веб-приложений, разработанный компанией Microsoft. С помощью Playwright вы можете писать тесты, которые будут работать во всех современных браузерах, таких как Chrome, Firefox и Safari, и обеспечивать высокую степень надёжности и быстродействия.
Playwright, это в первую очередь, инструмент предназначенный для автоматизаторов, которые в тестах воспроизводят сценарии использования веб-приложения. Подобные тесты легко читаются и, фактически, автоматизируют ручное тестирование, где тестировщик ходит по сайту, заполняет формы и выполняет любые другие действия.
Помимо взаимодействия с браузером, Playwright предоставляет Test Runner, с помощью которой описываются и запускаются сами тесты. В этом смысле он заменяет собой Jest.
// Пример теста на Playwright
import { test, expect } from '@playwright/test'
test('load users button functionality', async ({ page }) => {
await page.goto('https://http.hexlet.app/js-playwright/users-list')
// Нажимаем на кнопку для загрузки пользователей
await page.click('#loadDataBtn')
// Ожидаем, что пользователи загрузятся и отобразятся на странице
const userNames = await page.getByRole('listitem').allTextContents()
})
Playwright не единственный инструмент на рынке. Кроме него широко известны и активно используются: Cypress, Selenium и Puppeteer. Но нельзя не отметить, что происходит постепенное движение в сторону Playwright.
Почему Playwright?
- Кросс-браузерность: Playwright поддерживает одновременное тестирование во всех возможных браузерах и устройствах, что позволяет убедиться в том, что ваше приложение работает корректно в любом окружении.
- Мульти-платформенность: Вы можете запускать тесты на различных операционных системах, включая Windows, macOS и Linux. Playwright отлично работает в локальном окружении и на CI в headless-режиме.
- Современные возможности: Playwright предоставляет доступ ко всем последним возможностям браузеров, таким как работа с веб-сокетами, геолокацией и сенсорными устройствами.
- Автоматические ожидания: Playwright следит за появлением и пропаданием элементов на странице, устраняя необходимость самостоятельно использовать механизм ожиданий, одну из главных причин нестабильных тестов, которые то работают, то не работают.
- Полная изоляция: Playwright создает независимый контекст браузера с нулевым оверхедом для каждого теста, что дает полную изоляцию тестов друг от друга.
- Инструменты разработки: Playwright предоставляет мощнейшие инструменты генерации и отладки тестов, позволяющие по шагам проходить процесс тестирования вперед и назад с возможностью визуально оценивать изменения
Это лишь небольшой список того, что есть в Playwright. На текущий момент, ни один другой подобный инструмент не имеет всего этого в своем арсенале, поэтому мы наблюдаем постепенную миграцию компаний в его сторону.
Общее количество фич этого инструмента просто огромно и хорошо описано в документации. В этом курсе мы пройдемся по ключевым возможностям для написания типовых тестов и подходах, которые позволяют эти тесты делать быстрыми, компактными и надежными.
Для удобства, большая часть примеров в уроках базируется на проекте https://demo.playwright.dev/todomvc/, который предоставляют нам разработчики Playwright. Так вам легче будет понять что происходит, плюс вы всегда сможете повторить любой тест "ручками".
Как работает Playwright?
Playwright взаимодействует с браузерами напрямую, через их встроенные API (DevTool), без необходимости использовать адаптеры или посредников, как в, например, Selenium. Это обеспечивает более точное и быстрое выполнение тестов. Отсутствие необходимости в адаптерах уменьшает количество зависимостей и сложность настройки тестовой среды. Это делает Playwright более простым в использовании и интеграции в существующие проекты.
Дополнительные материалы
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.