Playwright 1.50: Таймаути, скіпи та знімки

💡 Усі статті, обговорення, новини про тестування — в одному місці. Приєднуйтесь до QA спільноти!

Вітаю. З вами Артур!

Сьогодні 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.

Всім гарного дня, стабільних тестів та буду радий бачити у своїй групі, щоб слідкувати за оновленнями світу тестування та розробки!

👍ПодобаєтьсяСподобалось10
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Підписатись на коментарі