Playwright релізнув нову версію 1.50, з цікавого я бачу що pw інвестує в visual testing, напилюють там фічі потрохи, думаю це пов'язано з тим що рано чи пізно з додаванням AI цей спосіб валідації стане одним з основних.
Раніше це був суцільний біль який було неможливо підтримувати в робочому стані. Зараз я чую про успішні кейси з таким типом перевірки, як наприклад Наташа поділилась своїм досвідом роботи з цим у
💫Секретному чатіку
💫➿➿➿➿➿➿➿➿➿➿➿➿➿➿➿➿➿➿➿➿➿➿➿➿Новий параметр
timeout
Дозволяє вказати максимальний час виконання для окремого кроку тесту. Якщо крок перевищує встановлений час, тест завершиться з помилкою.
test('some test', async ({ page }) => {
await test.step('a step', async () => {
// Цей крок може завершитися з тайм-аутом незалежно від усього тесту
}, { timeout: 1000 });
});
Новий метод
test.step.skip()
Дозволяє пропускати виконання окремих кроків тесту.
test('some test', async ({ page }) => {
await test.step('before running step', async () => {
// Звичайний крок
});
await test.step.skip('not yet ready', async () => {
// Цей крок буде пропущено
});
await test.step('after running step', async () => {
// Цей крок виконається, навіть якщо попередній був пропущений
});
});
➡️Оновлення
expect(locator).toMatchAriaSnapshot()
Дозволяє зберігати ARIA-скріншоти у окремих YAML-файлах.
Новий метод
expect(locator).toHaveAccessibleErrorMessage()
Перевіряє, чи елемент, на який вказує локатор, має вказане повідомлення про помилку (
aria-errormessage
).
➡️ Параметр
testConfig.updateSnapshots
Додано новий елемент конфігурації
changed
.
-
changed: оновлює лише ті знімки, які були змінені.
-
all: оновлює всі знімки, незалежно від наявності змін.
➡️ Новий параметр
testConfig.updateSourceMethod
Визначає спосіб оновлення вихідного коду під час використання
testConfig.updateSnapshots
.
Додано режими:
-
overwrite: переписує зміни у вихідному коді.
-
3-way: записує зміни у вихідному коді з використанням трьохстороннього об’єднання.
-
patch (за замовчуванням): створює патч-файл.
npx playwright test --update-snapshots=changed --update-source-method=3way
Новий параметр
testConfig.webServer.gracefulShutdown
Додає можливість вказувати сигнал завершення процесу, відмінний від стандартного
SIGKILL
.
Оновлення
testStep.attachments
API репортера тепер дозволяє отримувати всі вкладення, створені для певного кроку.
---
💫Оновлення інтерфейсу
- Оновлений HTML-репортер для покращеного відображення вкладень.
- Додано кнопку для вибору елементів з метою створення ARIA-скріншотів.
- У трасах тепер відображаються додаткові деталі (наприклад, натиснуті клавіші).
- Відображення контенту
canvas
у трасах тепер за замовчуванням вимкнено, але його можна увімкнути у налаштуваннях UI.
- Панелі "Call" та "Network" тепер показують додаткову інформацію про час.
---
❗️Зміни, що порушують зворотну сумісність
1.
expect(locator).toBeEditable()
та
locator.isEditable()
тепер генерують помилку, якщо цільовий елемент не є
<input>
,
<select>
або іншим редагованим елементом.
2.
testConfig.updateSnapshots
у режимі
all
тепер оновлює всі знімки (навіть без змін). Для збереження старої поведінки використовуйте новий режим
changed
.
---
Версії браузерів
-
Chromium: 133.0.6943.16
-
Mozilla Firefox: 134.0
-
WebKit: 18.2
Ця версія також протестована зі стабільними каналами:
-
Google Chrome: 132
-
Microsoft Edge: 132