Skip to main content

Fixtures

Playwright Test основан на концепции тестовых фикстур. Тестовые фикстуры используются для создания окружения для каждого теста, предоставляя тесту все необходимое и ничего лишнего.

Playwright Test анализирует каждое объявление теста, определяет набор фикстур, необходимых для теста, и подготавливает эти фикстуры специально для теста. Значения, подготовленные фикстурами, объединяются в один объект, который доступен для test, хуков, аннотаций и других фикстур в качестве первого параметра.

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

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

В приведенном выше тесте Playwright Test настроит фикстуру page перед выполнением теста и уничтожит ее после завершения теста. Фикстура page предоставляет объект Page, который доступен для теста.

Playwright Test поставляется с предустановленными фикстурами, перечисленными ниже, и вы также можете добавлять свои собственные фикстуры. Playwright Test также предоставляет параметры для настройки fixtures.browser, fixtures.context и fixtures.page.


Свойства

browser

Добавлено в: v1.10 fixtures.browser

Экземпляр Browser разделяется между всеми тестами в одном и том же worker — это делает тестирование более эффективным. Однако каждый тест выполняется в изолированном BrowserContext и получает новое окружение.

Узнайте, как настроить браузер и посмотрите доступные параметры.

Использование

test.beforeAll(async ({ browser }) => {
const page = await browser.newPage();
// ...
});

Тип


browserName

Добавлено в: v1.10 fixtures.browserName

Имя браузера, в котором выполняются тесты. По умолчанию 'chromium'. Полезно для аннотирования тестов в зависимости от браузера.

Использование

test('skip this test in Firefox', async ({ page, browserName }) => {
test.skip(browserName === 'firefox', 'Still working on it');
// ...
});

Тип

  • "chromium" | "firefox" | "webkit"

context

Добавлено в: v1.10 fixtures.context

Изолированный экземпляр BrowserContext, созданный для каждого теста. Поскольку контексты изолированы друг от друга, каждый тест получает новое окружение, даже когда несколько тестов выполняются в одном Browser для максимальной эффективности.

Узнайте, как настроить контекст и посмотрите доступные параметры.

По умолчанию fixtures.page принадлежит этому контексту.

Использование

test('example test', async ({ page, context }) => {
await context.route('*external.com/*', route => route.abort());
// ...
});

Тип


page

Добавлено в: v1.10 fixtures.page

Изолированный экземпляр Page, созданный для каждого теста. Страницы изолированы между тестами благодаря изоляции fixtures.context.

Это самая распространенная фикстура, используемая в тесте.

Использование

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

test('basic test', async ({ page }) => {
await page.goto('/signin');
await page.getByLabel('User Name').fill('user');
await page.getByLabel('Password').fill('password');
await page.getByText('Sign in').click();
// ...
});

Тип


request

Добавлено в: v1.10 fixtures.request

Изолированный экземпляр APIRequestContext для каждого теста.

Использование

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

test('basic test', async ({ request }) => {
await request.post('/signin', {
data: {
username: 'user',
password: 'password'
}
});
// ...
});

Тип