クイックスタート: Microsoft Playwright Testing (プレビュー) を使用して、大規模なエンド ツー エンドテストを実行する
このクイックスタートでは、Microsoft Playwright Testing (プレビュー) を使用して高度に並列的なクラウド ブラウザーで Playwright テストを実行する方法について学習します。 クラウド インフラストラクチャを使用して、複数のブラウザー、デバイス、オペレーティング システムにわたってアプリケーションを検証します。
このクイックスタートを完了すると、大規模な Playwright テストを実行するための Microsoft Playwright Testing ワークスペースが完成します。
重要
Microsoft Playwright Testing は現在、プレビュー段階です。 ベータ版、プレビュー版、または一般提供としてまだリリースされていない Azure の機能に適用される法律条項については、「Microsoft Azure プレビューの追加使用条件」を参照してください。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 Azure サブスクリプションをお持ちでない場合は、始める前に無料アカウントを作成してください。
- Azure アカウントには、所有者、共同作成者、または従来の管理者の役割のいずれかが必要です。
- Playwright プロジェクト。 プロジェクトがない場合は、Playwright 入門ドキュメントを使用してプロジェクトを作成するか、Microsoft Playwright Testing サンプル プロジェクトを使用します。
ワークスペースの作成
クラウド ブラウザーで大規模な Playwright テストの実行を開始するには、まず Playwright ポータルで Microsoft Playwright Testing ワークスペースを作成します。
Azure アカウントを使用して、Playwright ポータルにサインインします。
ワークスペースが既にある場合は、既存のワークスペースを選択し、次の手順に進みます。
ヒント
複数のワークスペースがある場合、別のワークスペースに切り替えるには、ページ上部にあるワークスペース名を選択します。その後、[すべてのワークスペースの管理] を選択します。
まだワークスペースがない場合は、[+ 新しいワークスペース] を選択し、次の情報を入力します。
フィールド 説明 ワークスペース名 ワークスペースを識別する一意の名前を入力します。
名前には英数字のみを使用できます。また、3 から 64 文字の間で指定する必要があります。Azure サブスクリプション この Microsoft Playwright Testing ワークスペースに使用する Azure サブスクリプションを選択します。 リージョン ワークスペースをホストする地理的な場所を選択します。
これは、ワークスペースのテストの実行データが保存される場所です。[ワークスペースの作成] を選択して、サブスクリプションにワークスペースを作成します。
ワークスペースの作成時に、新しいリソース グループと Microsoft Playwright Testing Azure リソースが Azure サブスクリプションに作成されます。
ワークスペースの作成が完了すると、セットアップ ガイドにリダイレクトされます。
サービス認証用のアクセス トークンを作成する
Microsoft Playwright Testing では、アクセス トークンを使用して、ユーザーがサービスで Playwright テストを実行することを承認します。 まず、Playwright ポータルでサービス アクセス トークンを生成し、その値を環境変数に保存します。
アクセス トークンを生成するには、次の手順を実行します。
ワークスペースのセットアップ ガイドの [アクセス トークンを作成する] で [トークンの生成] を選択します。
ワークスペースのアクセス トークンをコピーします。
アクセス トークンの値は、後の手順で環境を構成するときに必要です。
サービス リージョン エンドポイントを構成する
サービス構成では、リージョン固有のサービス エンドポイントを指定する必要があります。 エンドポイントは、ワークスペースの作成時に選択した Azure リージョンによって異なります。
サービス エンドポイント URL を取得するには、次の手順を実行します。
[セットアップのリージョン エンドポイントの追加] で、ワークスペースのリージョン エンドポイントをコピーします。
エンドポイント URL は、ワークスペースの作成時に選択した Azure リージョンと一致します。
環境を設定する
環境を設定するには、前の手順で取得した値を使用して PLAYWRIGHT_SERVICE_ACCESS_TOKEN
環境変数と PLAYWRIGHT_SERVICE_URL
環境変数を構成する必要があります。
dotenv
モジュールを使用して環境を管理することをお勧めします。 dotenv
を使用して、.env
ファイルで環境変数を定義します。
dotenv
モジュールをプロジェクトに追加します。npm i --save-dev dotenv
Playwright プロジェクト内の
playwright.config.ts
ファイルと共に.env
ファイルを作成します。PLAYWRIGHT_SERVICE_ACCESS_TOKEN={MY-ACCESS-TOKEN} PLAYWRIGHT_SERVICE_URL={MY-REGION-ENDPOINT}
{MY-ACCESS-TOKEN}
と{MY-REGION-ENDPOINT}
テキスト プレースホルダーを、先程コピーした値に置き換えてください。
注意事項
アクセス トークン値が漏洩しないように、.env
ファイルはソース コード リポジトリに追加しないようにしてください。
サービス構成ファイルを追加する
Microsoft Playwright Testing ワークスペースで Playwright テストを実行するには、Playwright 構成ファイルと一緒にサービス構成ファイルを追加する必要があります。 サービス構成ファイルは環境変数を参照して、ワークスペース エンドポイントとアクセス トークンを取得します。
サービス構成をプロジェクトに追加するには:
新しいファイル
playwright.service.config.ts
をplaywright.config.ts
ファイルと一緒に作成します。必要に応じて、サンプル リポジトリの
playwright.service.config.ts
ファイルを使用します。それに次のコンテンツを追加します。
/* * This file enables Playwright client to connect to remote browsers. * It should be placed in the same directory as playwright.config.ts. */ import { defineConfig } from '@playwright/test'; import config from './playwright.config'; import dotenv from 'dotenv'; // Define environment on the dev box in .env file: // .env: // PLAYWRIGHT_SERVICE_ACCESS_TOKEN=XXX // PLAYWRIGHT_SERVICE_URL=XXX // Define environment in your GitHub workflow spec. // env: // PLAYWRIGHT_SERVICE_ACCESS_TOKEN: ${{ secrets.PLAYWRIGHT_SERVICE_ACCESS_TOKEN }} // PLAYWRIGHT_SERVICE_URL: ${{ secrets.PLAYWRIGHT_SERVICE_URL }} // PLAYWRIGHT_SERVICE_RUN_ID: ${{ github.run_id }}-${{ github.run_attempt }}-${{ github.sha }} dotenv.config(); // Name the test run if it's not named yet. process.env.PLAYWRIGHT_SERVICE_RUN_ID = process.env.PLAYWRIGHT_SERVICE_RUN_ID || new Date().toISOString(); // Can be 'linux' or 'windows'. const os = process.env.PLAYWRIGHT_SERVICE_OS || 'linux'; export default defineConfig(config, { // Define more generous timeout for the service operation if necessary. // timeout: 60000, // expect: { // timeout: 10000, // }, workers: 20, // Enable screenshot testing and configure directory with expectations. // https://learn.microsoft.com/azure/playwright-testing/how-to-configure-visual-comparisons ignoreSnapshots: false, snapshotPathTemplate: `{testDir}/__screenshots__/{testFilePath}/${os}/{arg}{ext}`, use: { // Specify the service endpoint. connectOptions: { wsEndpoint: `${process.env.PLAYWRIGHT_SERVICE_URL}?cap=${JSON.stringify({ // Can be 'linux' or 'windows'. os, runId: process.env.PLAYWRIGHT_SERVICE_RUN_ID })}`, timeout: 30000, headers: { 'x-mpt-access-key': process.env.PLAYWRIGHT_SERVICE_ACCESS_TOKEN! }, // Allow service to access the localhost. exposeNetwork: '<loopback>' } }, // Tenmp workaround for config merge bug in OSS https://github.com/microsoft/playwright/pull/28224 projects: config.projects? config.projects : [{}] });
ファイルを保存します。
Microsoft Playwright Testing を使用して大規模なテストを実行する
これで、Microsoft Playwright Testing を使用してクラウドで Playwright テストを実行するための構成の準備ができました。 Playwright CLI を使用してテストを実行するか、Playwright Test Visual Studio Code 拡張機能を使用できます。
1 つのテストを大規模に実行する
Microsoft Playwright Testing では、テストの合計分数に基づいて課金されます。 初めてのユーザーの場合、または無料試用版の使用を開始している場合は、完全なテスト スイートの代わりに大規模な 1 つのテストを実行することで、無料のテスト時間を使い果たさないようにすることができます。
テストが正常に実行されたことを検証したら、サービスでさらに多くのテストを実行することで、テストの負荷を徐々に増やすことができます。
次の手順を使用して、Microsoft Playwright Testing で 1 つの Playwright テストを実行します。
Playwright CLI を使用して Microsoft Playwright Testing でテストを実行するには、コマンド ライン パラメーターとしてサービス構成ファイルを渡します。
ターミナル ウィンドウを開きます。
次のコマンドを入力して、ワークスペース内のリモート ブラウザーで Playwright テストを実行します。
{name-of-file.spec.ts}
テキスト プレースホルダーをテスト仕様ファイルの名前に置き換えます。npx playwright test {name-of-file.spec.ts} --config=playwright.service.config.ts
テストが完了したら、ターミナルでテストの状態を表示できます。
Running 1 test using 1 worker 1 passed (2.2s) To open last HTML report run: npx playwright show-report
これで、サービスで複数のテストを実行したり、リモート ブラウザーでテスト スイート全体を実行したりできるようになりました。
注意事項
テスト スイートのサイズによっては、割り当てられた無料テスト分数を超えてテスト分数の追加料金が発生する場合があります。
完全なテスト スイートを大規模に実行する
Microsoft Playwright Testing で 1 つのテストを実行できることを検証したので、完全な Playwright テスト スイートを大規模に実行できます。
Microsoft Playwright Testing で完全な Playwright テスト スイートを実行するには、次の手順を使用します。
Microsoft Playwright Testing を使用して複数の Playwright テストまたは完全なテスト スイートを実行する場合は、必要に応じて、コマンド ライン パラメーターとして並列 worker の数を指定できます。
ターミナル ウィンドウを開きます。
次のコマンドを入力して、ワークスペース内のリモート ブラウザーで Playwright テスト スイートを実行します。
npx playwright test --config=playwright.service.config.ts --workers=20
このコマンドを実行すると、テスト スイートのサイズに応じて、最大 20 個の並列ワーカーでテストが実行されます。
テストが完了したら、ターミナルでテストの状態を表示できます。
Running 6 tests using 6 workers 6 passed (18.2s) To open last HTML report run: npx playwright show-report
Playwright ポータルでテストの実行を表示する
Playwright ポータルに移動して、ワークスペースのテスト実行メタデータとアクティビティ ログを表示します。
アクティビティ ログには、各テスト実行のテスト完了までの合計時間、並列ワーカーの数、テスト時間 (分) などの詳細が表示されます。
Playwright ポータルでテスト結果を表示する
Microsoft Playwright Testing で、Playwright ポータルでのテスト結果の表示がサポートされるようになりました。 この機能は招待者限定の機能としてのみ利用できます。
重要
Microsoft Playwright Testing サービスのレポート機能は、招待者限定プレビュー期間中は無料です。 ただし、クラウドでホストされているブラウザーの既存の機能は、Azure の価格プランに従って引き続き課金されます。
テスト結果にアクセスできるようになったら、次の手順を使用してテストを設定します。
ワークスペースのホーム ページから、[設定] に移動します。
[設定] から [全般] を選択し、レポートが [有効] になっていることを確認します。
「環境のセットアップ」セクションで説明されているように、環境が正しく設定されていることを確認します。
レポート パッケージのインストール
この機能は現在公開されていないため、パッケージをインストールするにはいくつかの追加の手順を実行する必要があります。 この機能が公開されると、これらの手順は必要ありません。
Playwright 構成ファイルと同じ場所に
.npmrc
という名前のファイルを作成します。次の内容をファイルに追加して保存します。
@microsoft:registry=https://npm.pkg.github.com
これらの手順に従って、GitHub 個人用アクセス トークンを作成します。
トークンに
read:packages
アクセス許可を付与する必要があります。 この記事ではこれ以降、このトークンをPAT_TOKEN_PACKAGE
と呼ぶこととします。Playwright 構成ファイルの場所で、ターミナルで次のコマンドを実行します。
PAT_TOKEN_PACKAGE
を前の手順で生成されたトークンに置き換えます。npm set //npm.pkg.github.com/:_authToken PAT_TOKEN_PACKAGE
package.json ファイルをパッケージで更新します。
"dependencies": { "@microsoft/mpt-reporter": "0.1.0-22052024-private-preview" }
npm install
を実行して、パッケージをインストールします。
Playwright.config ファイルを更新する
他のレポーターを使用するのと同じ方法で、Playwright Testing レポーターを
Playwright.config.ts
に追加します。import { defineConfig } from '@playwright/test'; export default defineConfig({ reporter: [ ['list'], ['json', { outputFile: 'test-results.json' }], ['@microsoft/mpt-reporter'] // Microsoft Playwright Testing reporter ], });
トラブルシューティングを改善するため、構成で成果物が有効になっていることを確認します。
use: { // ... trace: 'on-first-retry', video:'retain-on-failure', screenshot:'only-on-failure', }
Playwright テストを実行する
npx playwright test
コマンドを実行して、Playwright Testing ポータルで結果と成果物を表示できます。
ヒント
Microsoft Playwright Testing サービスを使用すると、クラウドでホストされているブラウザー機能に関係なく、テスト結果をポータルに公開できます。
並列ワーカー構成を最適化する
サービスでテストがスムーズに実行されたら、並列ワーカーの数を変えて実験し、テスト完了までの時間を最小限に抑えられる最適な構成を判断します。
Microsoft Playwright Testing では、最大 50 個の並列ワーカーで実行することができます。 プロジェクトの最適な構成は、クライアント コンピューターの CPU、メモリ、ネットワーク リソース、ターゲット アプリケーションの負荷処理容量、テストで実行されるアクションの種類など、複数の要因の影響を受けます。
Playwright CLI コマンド ラインで並列 worker の数を指定するか、Playwright サービス構成ファイルで workers
プロパティを構成できます。
詳細については、テスト スイートの完了を最適化する最適な構成を判断する方法に関するページを参照してください。
次のステップ
Playwright ポータルで Microsoft Playwright Testing ワークスペースを正常に作成し、クラウド ブラウザーで Playwright テストを実行しました。
次のクイックスタートでは、CI/CD ワークフローで Playwright テストを実行して、エンドツーエンドの継続的なテストを設定します。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示