Spec-Zone.ru › Playwright

Фикстуры

Тестирование 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();
  // ...
});

Тип

  • Browser

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());
  // ...
});

Тип

  • BrowserContext

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();
  // ...
});

Тип

  • Page

request​

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

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

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

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

Тип

  • APIRequestContext

© 2024 Microsoft
Licensed under the Apache License, Version 2.0.
https://playwright.dev/docs/api/class-fixtures

Spec-Zone.ru

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