библиотека для e2e автоматизации браузера
| Плюсы | Минусы |
|---|---|
| ЯП незывисымый | нужна прослойка в виде драйвера |
| есть стандарт | актуализация драйвера зависит от браузеров |
| Существует давно | может быть медлительным |
| универсальные возможности | плохо масштабируется |
| поддержка облачных провайдеров |
Посылает команды напрямую в chrome
| Плюсы | Минусы |
|---|---|
| работает напрямую с chrome devtools protocol | документация не всегда актуальна |
| более широкий функционал чем у selenium | не стандартизирован |
| Есть эмуляция мобильного разрешения | контролирует google |
| можно перехватывать запросы | нет поддержки облачных решений* |
Обертка в виде библиотеки для javascript
Изначальную команду купили в microsoft(puppeteer)
работает только для chrome
npm init playwright@latest<root>
`playwright.config.ts
`package.json
`package-lock.json
`tests/
`example.spec.ts
`tests-examples/
`demo-todo-app.spec.tsimport { 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'] },
},
],
});
npx playwright test --workers 4// playwright.config.ts
import { defineConfig } from '@playwright/test';
export default defineConfig({
workers: 4,
reporter: 'blob'
});
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 может сегментировать набор тестов, чтобы его можно было выполнять на нескольких машинах
npx playwright merge-reports --reporter html ./all-blob-reports