メインコンテンツへスキップ

フィクスチャ

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.browserfixtures.context、および fixtures.page を構成することもできます。


プロパティ

browser

追加バージョン: v1.10 fixtures.browser

Browser インスタンスは、同じワーカー 内のすべてのテスト間で共有されます - これにより、テストが効率的になります。ただし、各テストは分離された 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'
}
});
// ...
});