Конфигурация (использование)
Введение
Помимо настройки средства запуска тестов, можно также настроить эмуляцию, сеть и запись для браузера или контекста браузера. Эти параметры передаются объекту use: {} в конфигурации Playwright.
Основные параметры
Задайте базовый URL и состояние хранилища для всех тестов:
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
// Base URL to use in actions like `await page.goto('/')`.
baseURL: 'http://localhost: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'
|
Режимы трассировки
Параметр trace поддерживает несколько режимов, различающихся тем, какие запуски записываются и какие записи сохраняются после завершения теста. Первый запуск теста — это «первый запуск»; последующие запуски, вызванные повторными попытками, — это «повторные попытки».
| Режим | Когда записывается трассировка | Когда трассировка сохраняется |
|---|---|---|
'off' |
никогда | — |
'on' |
при каждом запуске | всегда |
'retain-on-failure' |
при каждом запуске | если этот запуск завершился с ошибкой |
'retain-on-first-failure' |
только при первом запуске | если первый запуск завершился с ошибкой |
'retain-on-failure-and-retries' |
при каждом запуске | если этот запуск завершился с ошибкой или является повторной попыткой |
'on-first-retry' |
только при первой повторной попытке | всегда |
'on-all-retries' |
при каждой повторной попытке | всегда |
В следующей таблице показано, какие трассировки сохраняются в нескольких распространенных сценариях при условии, что настроен параметр retries: 2:
| Режим | Успех при первом запуске | Ошибка, затем успех при повторной попытке | Ошибка при каждом запуске |
|---|---|---|---|
'off' |
— | — | — |
'on' |
первый запуск | первый запуск + повторная попытка | все три запуска |
'retain-on-failure' |
— | первый запуск | все три запуска |
'retain-on-first-failure' |
— | первый запуск | первый запуск |
'retain-on-failure-and-retries' |
— | первый запуск + повторная попытка | все три запуска |
'on-first-retry' |
— | первая повторная попытка | первая повторная попытка |
'on-all-retries' |
— | первая повторная попытка | обе повторные попытки |
Режимы записи видео
Параметр video поддерживает те же режимы, что и trace, и запись с сохранением выполняется по тем же правилам.
| Режим | Когда записывается видео | Когда видео сохраняется |
|---|---|---|
'off' |
никогда | — |
'on' |
при каждом запуске | всегда |
'retain-on-failure' |
при каждом запуске | если этот запуск завершился с ошибкой |
'retain-on-first-failure' |
только при первом запуске | если первый запуск завершился с ошибкой |
'retain-on-failure-and-retries' |
при каждом запуске | если этот запуск завершился с ошибкой или является повторной попыткой |
'on-first-retry' |
только при первой повторной попытке | всегда |
'on-all-retries' |
при каждой повторной попытке | всегда |
В следующей таблице показано, какие видео сохраняются в нескольких распространенных сценариях при условии, что настроен параметр retries: 2:
| Режим | Успех при первом запуске | Ошибка, затем успех при повторной попытке | Ошибка при каждом запуске |
|---|---|---|---|
'off' |
— | — | — |
'on' |
первый запуск | первый запуск + повторная попытка | все три запуска |
'retain-on-failure' |
— | первый запуск | все три запуска |
'retain-on-first-failure' |
— | первый запуск | первый запуск |
'retain-on-failure-and-retries' |
— | первый запуск + повторная попытка | все три запуска |
'on-first-retry' |
— | первая повторная попытка | первая повторная попытка |
'on-all-retries' |
— | первая повторная попытка | обе повторные попытки |
Другие параметры
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() или browserType.connect(), можно поместить соответственно в launchOptions, contextOptions или connectOptions в разделе use.
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
launchOptions: {
slowMo: 50,
},
},
}); Однако наиболее распространенные параметры, например headless или viewport, доступны непосредственно в разделе use — см. разделы «Основные параметры», «Эмуляция» или «Сеть».
Явное создание контекста и наследование параметров
Во время выполнения теста или хука каждый контекст браузера, созданный через экземпляр Playwright, используемый средством запуска тестов, наследует параметры контекста из раздела use. Сюда входят контексты, созданные с помощью встроенной фикстуры browser, отдельно запущенного браузера, browserType.launchPersistentContext() или прямого импорта playwright-core, который разрешается в тот же экземпляр. Явно заданные параметры контекста имеют приоритет:
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 }) => {
// ...
});
}); Сброс параметра
Можно сбросить параметр до значения, заданного в файле конфигурации. Рассмотрим следующую конфигурацию, в которой задан baseURL:
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
baseURL: 'https://playwright.dev',
},
}); Теперь можно настроить baseURL для файла, а также отключить его для отдельного теста.
import { test } from '@playwright/test';
// Configure baseURL for this file.
test.use({ baseURL: 'https://playwright.dev/docs/intro' });
test('check intro contents', async ({ page }) => {
// This test will use "https://playwright.dev/docs/intro" base url as defined above.
});
test.describe(() => {
// Reset the value to a config-defined one.
test.use({ baseURL: undefined });
test('can navigate to intro from the home page', async ({ page }) => {
// This test will use "https://playwright.dev" base url as defined in the config.
});
}); Чтобы полностью сбросить значение до undefined, используйте полную запись фикстуры.
import { test } from '@playwright/test';
// Completely unset baseURL for this file.
test.use({
baseURL: [async ({}, use) => use(undefined), { scope: 'test' }],
});
test('no base url', async ({ page }) => {
// This test will not have a base url.
});
© 2026 Microsoft
Licensed under the Apache License, Version 2.0.
https://playwright.dev/docs/test-use-options