Playwright v1.46.0. Дивимось, що всередині

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

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

Сьогодні Playwright релізнув нову версію 1.46. Що всередині?

TLS Client Certificates

Playwright тепер дозволяє підтримувати клієнтські сертифікати, щоб сервер міг верифікувати їх, як зазначено у TLS Client Authentication. Коли вказано клієнтські сертифікати, увесь трафік браузера перенаправляється через проксі-сервер, який встановлює безпечне TLS з’єднання , надає сертифікат клієнта до серверу і перевіряє сертифікати сервера.

Приклад:

import { defineConfig } from '@playwright/test';

export default defineConfig({
  // ...
  use: {
    clientCertificates: [{
      origin: 'https://example.com',
      certPath: './cert.pem',
      keyPath: './key.pem',
      passphrase: 'mysecretpassword',
    }],
  },
  // ...
});

Також можна надати клієнтські сертифікати для певного тестового проєкту або як параметри browser.newContext() і apiRequest.newContext().

—only-changed cli option

Нова опція в терміналі —only-changed дозволяє запускати лише тестові файли, які були змінені після останнього коміту git або з певного git «ref».

# запуск тільки незакомічених тестів
npx playwright test --only-changed
# запустити тести які відрізняються від "main" бранчі
npx playwrigh test --only-changed=main

Component Testing: New router fixture

Нова експериментальна фікстура router для перехоплення та обробки запитів під час компонентного тестування. Є два способи використання фікстури router:

  • виклик router.route(url, handler), схоже на page.route();
  • виклик router.use(handlers) і передача MSW хендлерів запитів до нього.

Приклад повторного використання наявних обробників MSW у тесті

import { handlers } from '@src/mocks/handlers';

test.beforeEach(async ({ router }) => {
  // встановіть тут загальні обробники перед кожним тестом
   await router.use(...handlers);
});

test('example test', async ({ mount }) => {
  // а тут уже обробники активні
   // ...
});

Але ця фікстура доступна тільки для компонентних тестів.

UI Mode / Trace Viewer Updates

  • Тестові анотації тепер відображаються в UI-режимі.
  • Вміст текстових вкладень тепер відображається вбудованим на панелі вкладень.
  • Нове налаштування для показу/приховання дій маршрутизації, таких як route.continue().
  • Метод і статус запиту відображаються на вкладці деталей нетворку.
  • Нова кнопка для копіювання вихідного файлу в буфер обміну.
  • На панелі метаданих тепер відображається baseURL.

Всяке різне

  • Нова опція maxRetries у apiRequestContext.fetch(), яка повторює спробу після помилки ECONNRESET.
  • Нова опція ізоляції фікстури, щоб мінімізувати вплив фікстури в звітах та повідомленнях про помилки.
    Приклад:
    import { test as base } from '@playwright/test';
    export const test = base.extend({
      helperFixture: [async ({}, use, testInfo) => {
        // ...
      }, { box: true }],
    });
    
  • Нова опція для надання кастомної назви фікстури для використання у звітах та повідомленнях про помилки.
    Приклад:
    import { test as base } from '@playwright/test';
    export const test = base.extend({
      innerFixture: [async ({}, use, testInfo) => {
        // ...
      }, { title: 'my fixture' }],
    });
    

Браузери

  • Chromium 128.0.6613.18
  • Mozilla Firefox 128.0
  • WebKit 18.0
  • Google Chrome 127
  • Microsoft Edge 127
👍ПодобаєтьсяСподобалось5
До обраногоВ обраному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

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