Playwright 1.52: класні класи, розумні снепшоти та контроль над flaky

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

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

Сьогодні Playwright релізнув нову версію 1.52. Тож подивимось, що всередині.

Найголовніші апдейти

  • Новий метод expect(locator).toContainClass() — шо удобно було перевірити наявність окремих класів у елемента.
<div class='middle selected row' id='component'></div>

const locator = page.locator('#component');
await expect(locator).toContainClass('middle selected row');
await expect(locator).toContainClass('selected');
await expect(locator).toContainClass('row middle');
  • Aria Snapshots отримали дві нові властивості: /children для жосткого порівняння вкладених елементів, /url для перевірки посилань.

приклад:

await expect(locator).toMatchAriaSnapshot(`
  - list
    - /children: equal
    - listitem: Feature A
    - listitem:
      - link "Feature B":
        - /url: "https://playwright.dev"
`);

про снепшоти є класний відос у них тут:

https://www.youtube.com/watch?v=P4R6hnsE0UY&t=1s&ab_channel=Playwright

Test Runner

  • Нова властивість testProject.workers дозволяє вказати кількість паралельних воркерів для проєкту. Загальне обмеження testConfig.workers все ще діє.
  • Опція testConfig.failOnFlakyTests дозволяє завершити тестовий прогін з помилкою, якщо виявлено нестабільні (flaky) тести — аналогічно до --fail-on-flaky-tests. Корисно для CI/CD, щоб впевнитися в стабільності тестів перед релізом.
import { defineConfig } from '@playwright/test';
export default defineConfig({
  failOnFlakyTests: !!process.env.CI,
});
  • Нова властивість testResult.annotations містить анотації для кожного ретраю тесту.

Всяке різне

  • Нова опція maxRedirects в apiRequest.newContext() — обмеження максимальної кількості редиректів.
  • Нова опція ref в locator.ariaSnapshot() — дозволяє створити посилання на елемент у snapshot, яке згодом можна використати для пошуку цього елемента.
  • HTML-звіт тепер підтримує фільтрацію з виключенням(NOT) тегів, файлів і проєктів через !@my-tag, !my-file.spec.ts або !p:my-project.

Breaking Changes

  • Зміни в шаблонах URL для методів, таких як page.route():
    • ? більше не підтримується як шаблон.
    • Діапазони/сети [] більше не підтримуються — переходьте на регулярні вирази.
  • Метод route.continue() більше не дозволяє перевизначати заголовок Cookie. Якщо такий заголовок передано, він буде проігнорований. Куки будуть завантажені з cookie store браузера. Щоб задати свої куки, використовуйте browserContext.addCookies().
  • macOS 13 більше не підтримується і не отримуватиме оновлень WebKit.

Browser Versions

  • Chromium 136.0.7103.25
  • Mozilla Firefox 137.0
  • WebKit 18.4

P.S.

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

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

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