Spec-Zone.ru › Playwright

Варианты использования тестов

Введение​

Помимо настройки исполнителя тестов, вы также можете настроить Эмуляцию, Сеть и Запись для браузера или контекста браузера. Эти параметры передаются объекту use: {} в конфигурации Playwright.

Основные параметры​

Установите базовый URL и состояние хранилища для всех тестов:

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

export default defineConfig({
  use: {
    // Base URL to use in actions like `await page.goto('/')`.
    baseURL: 'http://127.0.0.1:3000',

    // Populates context with given storage state.
    storageState: 'state.json',
  },
});
Параметр Описание
testOptions.baseURL Базовый URL, используемый для всех страниц в контексте. Позволяет переходить по пути, например page.goto('/settings').
testOptions.storageState Заполняет контекст заданным состоянием хранилища. Полезно для лёгкой аутентификации, подробнее.

Параметры эмуляции​

С помощью Playwright вы можете эмулировать реальное устройство, такое как мобильный телефон или планшет. Смотрите наше руководство по проектам для получения дополнительной информации об эмуляции устройств. Вы также можете эмулировать "geolocation", "locale" и "timezone" для всех тестов или для определённого теста, а также установить "permissions" для отображения уведомлений или изменить "colorScheme". Обратитесь к нашему руководству по эмуляции, чтобы узнать больше.

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

export default defineConfig({
  use: {
    // Emulates `'prefers-colors-scheme'` media feature.
    colorScheme: 'dark',

    // Context geolocation.
    geolocation: { longitude: 12.492507, latitude: 41.889938 },

    // Emulates the user locale.
    locale: 'en-GB',

    // Grants specified permissions to the browser context.
    permissions: ['geolocation'],

    // Emulates the user timezone.
    timezoneId: 'Europe/Paris',

    // Viewport used for all pages in the context.
    viewport: { width: 1280, height: 720 },
  },
});
Параметр Описание
testOptions.colorScheme Эмулирует 'prefers-colors-scheme' медиа-характеристику, поддерживаемые значения - 'light' и 'dark'
testOptions.geolocation Контекст геопозиционирования.
testOptions.locale Эмулирует языковые настройки пользователя, например en-GB, de-DE, и т.д.
testOptions.permissions Список разрешений для всех страниц в контексте.
testOptions.timezoneId Изменяет часовой пояс контекста.
testOptions.viewport Область видимости для всех страниц в контексте.

Параметры сети​

Доступные параметры для настройки сетевого взаимодействия:

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

export default defineConfig({
  use: {
    // Whether to automatically download all the attachments.
    acceptDownloads: false,

    // An object containing additional HTTP headers to be sent with every request.
    extraHTTPHeaders: {
      'X-My-Header': 'value',
    },

    // Credentials for HTTP authentication.
    httpCredentials: {
      username: 'user',
      password: 'pass',
    },

    // Whether to ignore HTTPS errors during navigation.
    ignoreHTTPSErrors: true,

    // Whether to emulate network being offline.
    offline: true,

    // Proxy settings used for all pages in the test.
    proxy: {
      server: 'http://myproxy.com:3128',
      bypass: 'localhost',
    },
  },
});
Параметр Описание
testOptions.acceptDownloads Автоматически загружать все вложения, по умолчанию true. Дополнительная информация о работе с загрузками.
testOptions.extraHTTPHeaders Объект, содержащий дополнительные HTTP-заголовки, которые будут отправляться с каждым запросом. Все значения заголовков должны быть строками.
testOptions.httpCredentials Данные для HTTP-аутентификации.
testOptions.ignoreHTTPSErrors Игнорировать ошибки HTTPS при переходе.
testOptions.offline Эмулировать отсутствие подключения к сети.
testOptions.proxy Настройки прокси для всех страниц в тесте.
замечание

Для имитации сетевых запросов не нужно ничего настраивать. Просто определите пользовательский маршрут, который имитирует сеть для контекста браузера. Обратитесь к нашему руководству по имитации сети для получения дополнительной информации.

Параметры записи​

Playwright позволяет делать скриншоты, записывать видео, а также следить за выполнением ваших тестов. По умолчанию они отключены, но вы можете включить их, установив screenshot, video и trace параметры в вашем файле playwright.config.js.

Файлы трассировки, скриншоты и видео будут появляться в каталоге выходных данных тестов, как правило, test-results.

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

export default defineConfig({
  use: {
    // Capture screenshot after each test failure.
    screenshot: 'only-on-failure',

    // Record trace only when retrying a test for the first time.
    trace: 'on-first-retry',

    // Record video only when retrying a test for the first time.
    video: 'on-first-retry'
  },
});
Параметр Описание
testOptions.screenshot Сохранить скриншоты вашего теста. Параметры включают 'off', 'on' и 'only-on-failure'
testOptions.trace Playwright может создавать трассировки тестов во время их выполнения. Позже вы можете просмотреть трассировку и получить подробную информацию о выполнении Playwright, открыв Просмотрщик трассировок. Параметры включают: 'off', 'on', 'retain-on-failure' и 'on-first-retry'
testOptions.video Playwright может записывать видео для ваших тестов. Параметры включают: 'off', 'on', 'retain-on-failure' и 'on-first-retry'

Другие параметры​

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

export default defineConfig({
  use: {
    // Maximum time each action such as `click()` can take. Defaults to 0 (no limit).
    actionTimeout: 0,

    // Name of the browser that runs tests. For example `chromium`, `firefox`, `webkit`.
    browserName: 'chromium',

    // Toggles bypassing Content-Security-Policy.
    bypassCSP: true,

    // Channel to use, for example "chrome", "chrome-beta", "msedge", "msedge-beta".
    channel: 'chrome',

    // Run browser in headless mode.
    headless: false,

    // Change the default data-testid attribute.
    testIdAttribute: 'pw-test-id',
  },
});
Параметр Описание
testOptions.actionTimeout Таймаут для каждого действия Playwright в миллисекундах. По умолчанию 0 (без таймаута). Подробнее о таймаутах и о том, как установить их для отдельного теста.
testOptions.browserName Имя браузера, который выполняет тесты. По умолчанию 'chromium'. Доступные варианты: chromium, firefox, или webkit.
testOptions.bypassCSP Включает/отключает обход Content-Security-Policy. Полезно, когда CSP включает исходный код производства. По умолчанию false.
testOptions.channel Канал браузера для использования. Подробнее о различных браузерах и каналах.
testOptions.headless Выполнять браузер в бестемном режиме (без отображения браузера во время выполнения тестов). По умолчанию true.
testOptions.testIdAttribute Изменяет значение атрибута data-testid по умолчанию, используемого локаторами Playwright.

Дополнительные параметры браузера и контекста​

Любые параметры, принимаемые browserType.launch() или browser.newContext(), могут быть помещены в launchOptions или contextOptions соответственно в разделе use.

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

export default defineConfig({
  use: {
    launchOptions: {
      slowMo: 50,
    },
  },
});

Однако, наиболее распространённые, такие как headless или viewport, доступны непосредственно в разделе use - см. основные параметры, эмуляцию или сеть.

Создание контекста и наследование параметров​

Если вы используете встроенное browser фикстуру, вызов browser.newContext() создаст контекст с параметрами, унаследованными от конфигурации:

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

export default defineConfig({
  use: {
    userAgent: 'some custom ua',
    viewport: { width: 100, height: 100 },
  },
});

Пример теста, иллюстрирующий, как задаются начальные параметры контекста:

test('should inherit use options on context when using built-in browser fixture', async ({
  browser,
}) => {
  const context = await browser.newContext();
  const page = await context.newPage();
  expect(await page.evaluate(() => navigator.userAgent)).toBe('some custom ua');
  expect(await page.evaluate(() => window.innerWidth)).toBe(100);
  await context.close();
});

Области конфигурации​

Вы можете настроить Playwright глобально, по проекту или по тесту. Например, вы можете установить используемый язык по умолчанию, добавив locale в опцию use конфигурации Playwright, а затем переопределить её для определённого проекта, используя опцию project в конфигурации. Вы также можете переопределить её для конкретного теста, добавив test.use({}) в файл теста и передав в него параметры.

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

export default defineConfig({
  use: {
    locale: 'en-GB'
  },
});

Вы можете переопределить параметры для определённого проекта, используя опцию project в конфигурации Playwright.

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

export default defineConfig({
  projects: [
    {
      name: 'chromium',
      use: {
        ...devices['Desktop Chrome'],
        locale: 'de-DE',
      },
    },
  ],
});

Вы можете переопределить параметры для конкретного файла тестов, используя метод test.use() и передав в него параметры. Например, чтобы запустить тесты с французским языком для определённого теста:

import { test, expect } from '@playwright/test';

test.use({ locale: 'fr-FR' });

test('example', async ({ page }) => {
  // ...
});

То же самое работает внутри блока describe. Например, чтобы запустить тесты в блоке describe с французским языком:

import { test, expect } from '@playwright/test';

test.describe('french language block', () => {

  test.use({ locale: 'fr-FR' });

  test('example', async ({ page }) => {
    // ...
  });
});

© 2024 Microsoft
Licensed under the Apache License, Version 2.0.
https://playwright.dev/docs/test-use-options

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API