Playwright 1.57. Speedboard, Chrome for Testing та розширені можливості тестів

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

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

Playwright релізнув нову версію 1.57.

Коротенький огляд того що там всередині.

Speedboard

спіймайте самого повільного теста без зусиль :D тепер це дуже легко стало. Нова вкладка показує всі тести, відсортовані за тривалістю виконання. Загляніть — буде поле для рефакторінгу вам :)

Chrome for Testing

По суті для вас зміниться тіки іконка :D

Обіцяють, що всі тести й надалі працюватимуть без змін — схрестили пальці при першому запуску після оновлення.На Arm64 Linux Playwright і далі використовує Chromium.

Очікування логів веб-сервера

У testConfig.webServer з’явилося поле wait:

Ти передаєш регулярний вираз, і Playwright чекає, поки у stdout/stderr веб-сервера з’явиться лог, що відповідає цьому виразу.

import { defineConfig } from '@playwright/test';
export default defineConfig({
  webServer: {
    command: 'npm run start',
    wait: {
      stdout: '/Listening on port (?<my_server_port>\\d+)/'
    },
  },
});

Якщо в regex’і є іменована група, її значення буде прокидатися в середовище як змінна оточення.

import { test, expect } from '@playwright/test';
test.use({ baseUrl: `http://localhost:${process.env.MY_SERVER_PORT ?? 3000}` });
test('homepage', async ({ page }) => {
  await page.goto('/');
});

Це корисно не лише для динамічних портів dev-серверів, а й для сервісів, які сигналізують готовність через лог, а не HTTP-healthcheck.

Breaking change

Повністю видалили давно задепрекований API Page#accessibility. Якщо потрібно тестувати доступність сторінки — пропонують використовувати зовнішні бібліотеки, наприклад Axe, та інтегрувати їх згідно з гайдом Playwright для Node.js

Нові API та фішечки

  • testConfig.tag дозволяє додати тег до всіх тестів конкретного прогону (зручно разом з merge-reports).
  • Події для Web Worker’ів
    worker.on('console') виникає, коли JavaScript усередині воркера викликає один з методів консольного API, наприклад, console.log або console.dir; є також worker.waitForEvent() для очікування таких подій.
  • locator.description() повертає опис локатора, попередньо встановлений за допомогою locator.describe(), а Locator.toString() тепер використовує цей опис — зручніше дебажити та читати репорти.
  • Опція steps у locator.click() та locator.dragTo()
    Дозволяє налаштовувати, скільки mousemove-ів генерується під час переміщення курсора до елемента — більш тонкий контроль над симуляцією руху.
  • Service Workers
    • Запити з Service Worker’ів тепер видно і можуть бути перехоплені на рівні BrowserContext.
    • Логи console з Service Worker’ів теж доступні через worker.on('console').
    • Обидві речі можна вимкнути змінними PLAYWRIGHT_DISABLE_SERVICE_WORKER_NETWORK та PLAYWRIGHT_DISABLE_SERVICE_WORKER_CONSOLE

Browser Versions

Chromium 143.0.7499.4
Mozilla Firefox 142.0.1
WebKit 26.0

P.S.

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

👍ПодобаєтьсяСподобалось2
До обраногоВ обраному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

Бездушний АІ генерований огляд!

РУКАМИ написано! ЖИВИМИ! )))

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