Playwright

Agenda
- Что такое playwright
- Что было до playwright
- Как работает playwright
- Как начать работать с pw
Что такое Playwright
библиотека для e2e автоматизации браузера
Что было до Playwright
- Selenium
- Puppeteer
Что такое selenium

Что такое selenium

Selenium
| Плюсы | Минусы |
|---|---|
| ЯП незывисымый | нужна прослойка в виде драйвера |
| есть стандарт | актуализация драйвера зависит от браузеров |
| Существует давно | может быть медлительным |
| универсальные возможности | плохо масштабируется |
| поддержка облачных провайдеров |
CDP
Посылает команды напрямую в chrome

CDP
| Плюсы | Минусы |
|---|---|
| работает напрямую с chrome devtools protocol | документация не всегда актуальна |
| более широкий функционал чем у selenium | не стандартизирован |
| Есть эмуляция мобильного разрешения | контролирует google |
| можно перехватывать запросы | нет поддержки облачных решений* |
Puppeteer
Обертка в виде библиотеки для javascript
Изначальную команду купили в microsoft(puppeteer)
работает только для chrome
Playwright
- Библиотека
- Тестовый фреимворк
- работает для firefox, safari
Как начать работать с Playwright
npm init playwright@latestКак начать работать с Playwright
<root>
`playwright.config.ts
`package.json
`package-lock.json
`tests/
`example.spec.ts
`tests-examples/
`demo-todo-app.spec.tsPlaywright.config
import { defineConfig, devices } from '@playwright/test';
export default defineConfig({
testDir: './tests',
fullyParallel: true,
forbidOnly: !!process.env.CI,
retries: process.env.CI ? 2 : 0,
workers: process.env.CI ? 1 : undefined,
reporter: 'html',
use: {
trace: 'on-first-retry',
},
projects: [
{
name: 'chromium',
use: { ...devices['Desktop Chrome'] },
},
],
});
Playwright.config
npx playwright test --workers 4// playwright.config.ts
import { defineConfig } from '@playwright/test';
export default defineConfig({
workers: 4,
reporter: 'blob'
});
Playwright. Шардирование
npx playwright test --shard=1/4
npx playwright test --shard=2/4
npx playwright test --shard=3/4
npx playwright test --shard=4/4Playwright Test может сегментировать набор тестов, чтобы его можно было выполнять на нескольких машинах
Playwright. Шардирование
npx playwright merge-reports --reporter html ./all-blob-reportsШардирование

References
- chrome devtools protocol
- selenium
- playwright - sharding
- playwight - get started
pw 01. intro
By vitalic gorodkov
pw 01. intro
- 148