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.
Всім гарного дня, стабільних тестів та буду радий бачити у своїй групі, щоб слідкувати за оновленнями світу тестування та розробки!
Немає коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів