Отказ от ответственности: это статья для заметок.

Предположим, у вас уже есть приложение, и вы хотите добавить Playwright в качестве инструмента комплексного тестирования.

Добавьте зависимость от разработчиков.

Давайте добавим нашу зависимость для разработчиков, используя Yarnв наш package.json. Вы также можете использовать npm.

yarn add --dev @playwright/test

Обратите внимание, что я буду использовать @playwright/test (Тест драматурга), а не playwright. См. https://playwright.dev/docs/library

Создайте первый тест

Все монолитные PHP-фреймворки имеют эту папку tests, и я буду использовать эту папку для своего первого теста. Но если ваш внешний интерфейс отделен от внутреннего, то есть не является монолитной настройкой, вы можете создать отдельную папку tests на своем внешнем интерфейсе. А пока давайте придерживаться основного.

Давайте создадим наш новый тестовый файл, выполнив команду ниже.

# Don't use hypen (ex. home-test.js)
touch tests/home.test.js

И ставим наш основной тест.

// tests/home.test.js
import { test, expect } from '@playwright/test';

test('should be titled', async ({ page }) => {
 await page.goto('https://collideborate.me/web/songs/lyrics-chords?songId=38');
 await expect(page).toHaveTitle('God is good all the time');
});

Нет необходимости объяснять, что делает код, потому что API прост для понимания. Теперь побегаем…

npx playwright test tests
# OR
npx playwright test tests/home.test
# OR
npx playwright test tests/home.test.js

Мы должны получить результат ниже.

Running 1 test using 1 worker
✓ 1 tests/home.test.js:5:5 › should be titled (755ms)
1 passed (1.6s)

Конфигурация

Если вы хотите запустить тест с собственной конфигурацией (https://playwright.dev/docs/api/class-testconfig). Мы можем сделать следующее:

// playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
 timeout: 30000,
 globalTimeout: 600000,
 reporter: 'list',
 testDir: './tests',
});

Запустите тест с нашей конфигурацией.

npx playwright test --config=playwright.config.js

Поиск неисправностей

Если вы столкнулись с приведенной ниже ошибкой при запуске npx playwright test testsв CentOS…

Host system is missing dependencies to run browsers.
Missing libraries:
libatk-1.0.so.0
libatk-bridge-2.0.so.0
libcups.so.2
libatspi.so.0
libXcomposite.so.1
libXrandr.so.2
libxkbcommon.so.0
libpango-1.0.so.0
libcairo.so.2
libasound.so.2

Установите эту системную зависимость.

yum -y install libappindicator-gtk3
yum -y install liberation-fonts
yum -y install alsa-lib

Создание тестов с помощью CodeGen

Написание тестов — утомительное занятие, и здесь в дело вступает CodeGen. Вы можете использовать этот инструмент, установив расширение VSCode или выполнив команду на своем терминале.

[Продолжение следует]

Вся слава принадлежит Богу наверху!