Фикстуры
Тестирование Playwright основано на концепции фикстур тестов. Фикстуры тестов используются для настройки среды для каждого теста, предоставляя тесту все необходимое и ничего лишнего.
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
Экземпляр Browser используется совместно всеми тестами в одном и том же работнике — это повышает эффективность тестирования. Однако каждый тест выполняется в изолированном BrowserContext и получает свежую среду.
Узнайте, как настроить браузер, и посмотрите доступные параметры.
Использование
test.beforeAll(async ({ browser }) => {
const page = await browser.newPage();
// ...
}); Тип
browserName
Имя браузера, в котором выполняются тесты. По умолчанию 'chromium'. Полезно для аннотирования тестов на основе браузера.
Использование
test('skip this test in Firefox', async ({ page, browserName }) => {
test.skip(browserName === 'firefox', 'Still working on it');
// ...
}); Тип
- "chromium" | "firefox" | "webkit"
context
Изолированный экземпляр BrowserContext, создаваемый для каждого теста. Поскольку контексты изолированы друг от друга, каждый тест получает свежую среду, даже когда несколько тестов выполняются в одном Browser для максимальной эффективности.
Узнайте, как настроить контекст, и посмотрите доступные параметры.
Фикстура fixtures.page по умолчанию принадлежит этому контексту.
Использование
test('example test', async ({ page, context }) => {
await context.route('*external.com/*', route => route.abort());
// ...
}); Тип
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
Изолированный экземпляр APIRequestContext для каждого теста.
Использование
import { test, expect } from '@playwright/test';
test('basic test', async ({ request }) => {
await request.post('/signin', {
data: {
username: 'user',
password: 'password'
}
});
// ...
}); Тип
© 2024 Microsoft
Licensed under the Apache License, Version 2.0.
https://playwright.dev/docs/api/class-fixtures