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.ts

Playwright.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/4

Playwright Test может сегментировать набор тестов, чтобы его можно было выполнять на нескольких машинах

Playwright. Шардирование

npx playwright merge-reports --reporter html ./all-blob-reports

 Шардирование

References

pw 01. intro

By vitalic gorodkov

pw 01. intro

  • 148