Playwright 1.50: Таймаути, скіпи та знімки
Вітаю. З вами Артур!
Сьогодні Playwright релізнув нову версію 1.50. Тож подивимось, що всередині.
Тест раннер
- Зʼявилась нова опція
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()тепер може зберіати знімки у окремих YAML-файлах.- Новий метод
expect(locator).toHaveAccessibleErrorMessage()шоб понять чи елемент містить повідомлення про помилку. Прикладconst locator = page.getByTestId('username-input'); await expect(locator).toHaveAccessibleErrorMessage('Username is required.'); testConfig.updateSnapshotsтепер підтримує новий тип —changed.changedоновити тіки змінені знімки.allоновити всі знімки.
- Нова опція
testConfig.updateSourceMethodпрацює у связке зupdateSnapshots. Є режимoverwriteта3way, які записують зміни безпосередньо у вихідний код, а також єpatch, що створює патч-файл. Приклад
npx playwright test --update-snapshots=changed --update-source-method=3way
testConfig.webServerтепер маєgracefulShutdownдля вказування сигналу завершення процесу, відмінного від стандартногоSIGKILL.- В Reporterʼі є тепер
testStep.attachmentsдля отримання всіх вкладень, створених під час виконання кроку.
UI апдейти
- У дефолтному HTML-репортері покращили відображення атачментів.
- Додали нову кнопку для вибору елементів, щоб створювати знімки.
- У трейсах тепер відображаються додаткові деталі (наприклад, натиснуті клавіші).
- Відображення вмісту
canvasу трасах за замовчуванням вимкнено через ненадійність. Його можна увімкнути в налаштуванняхDisplay canvas content. - Панелі «Call» та «Network» тепер показують додаткову часову інформацію.
БРЕЙКІНГ ЧЕНЖІ
expect(locator).toBeEditable()таlocator.isEditable()тепер викликають помилку, якщо цільовий елемент не є<input>,<select>або іншим редагованим елементом.testConfig.updateSnapshotsтепер оновлює всі знімки, якщо встановлена вall, замість лише змінених чи невдалих. Для збереження старої функціональності використовуйте новий типchanged.
Ну і як завжди браузери нові підʼїхали
- Chromium: 133.0.6943.16
- Mozilla Firefox: 134.0
- WebKit: 18.2
P.S.
Всім гарного дня, стабільних тестів та буду радий бачити у своїй групі, щоб слідкувати за оновленнями світу тестування та розробки!

Немає коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів