次の方法で共有


Playwright シャーディングで Microsoft Playwright Testing レポート プレビューを使用する

この記事では、Playwright のシャーディング機能を使用するテストの実行で Microsoft Playwright Testing サービスのレポート機能を使用する方法について学びます。

Playwright のシャーディングを使用すると、複数のマシンで同時に実行するようにテスト スイートを分割できます。 この機能を利用して、テストを並列で実行できます。

Playwright Testing のレポート機能を使用すると、シャーディングを使用したテストの実行の統合レポートを取得できます。 テストの実行の runId がすべてのシャードで同じであることを確かめます。

重要

Microsoft Playwright Testing は現在、プレビュー段階です。 ベータ版、プレビュー版、または一般提供としてまだリリースされていない Azure の機能に適用される法律条項については、「Microsoft Azure プレビューの追加使用条件」を参照してください。

前提条件

Playwright サービス構成ファイルを更新する

セットアップで playwright.service.config.ts ファイルに runId を追加または更新します。


export default defineConfig(
  config,
  getServiceConfig(config, {
  runId: process.env.PLAYWRIGHT_SERVICE_RUN_ID, //Set runId for the test run
  }),
);

セットアップで PLAYWRIGHT_SERVICE_RUN_ID 変数を使用して、runId がすべてのシャードで同じままであることを確かめることができます。

変数を設定する

runId 設定は、テストの実行を区別するために Playwright Testing サービスによって識別子として使用されます。 同じ runId を持つ複数の実行の結果は、Playwright ポータルで同じ実行に対して報告されます。

既定では、レポート機能を使用するテストの実行では、値を自分で明示的に設定しない限り、一意の runId が自動的に生成されます。 この変数の値が複数の実行にわたって同じになっている場合、結果は、Playwright ポータルで同じ実行の中にまとめて報告されます。

ヒント

Microsoft Playwright Testing サービスで提供される、クラウドでホストされるブラウザーを使用してテストを実行する場合、この変数は設定済みである可能性があります。 上書きを回避するために、設定するのは必ず 1 回だけにしてください。

シャーディングを使用している場合、結果がまとめて報告されるように、すべてのシャードで同じ runId が設定されていることを確認します。 変数 PLAYWRIGHT_SERVICE_RUN_ID を使用し、すべてのシャードで同じ値を設定します。

GitHub Actions を使用してそれをパイプラインで設定する方法の例を、次に示します。

  name: Playwright Tests (Microsoft Playwright Testing)
  on:
    push:
      branches: [ main, master ]
    pull_request:
      branches: [ main, master ]
    workflow_dispatch:
      strategy:
          fail-fast: false
          matrix:
          shardIndex: [1, 2, 3, 4]
          shardTotal: [4]
  permissions: # Required when using Microsoft Entra ID to authenticate
    id-token: write
    contents: read
  jobs:
    test:
      timeout-minutes: 60
      runs-on: ubuntu-latest
      steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: 18
        # This step is to sign-in to Azure to run tests from GitHub Action workflow.
        # You can choose how set up Authentication to Azure from GitHub Actions, this is one example. 
      - name: Login to Azure with AzPowershell (enableAzPSSession true) 
        uses: azure/login@v2 
        with: 
          client-id: ${{ secrets.AZURE_CLIENT_ID }} # Required when using Microsoft Entra ID to authenticate
          tenant-id: ${{ secrets.AZURE_TENANT_ID }}  
          subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}  
          enable-AzPSSession: true 

      - name: Install dependencies
        working-directory: path/to/playwright/folder # update accordingly
        run: npm ci

      - name: Run Playwright tests
        working-directory: path/to/playwright/folder # update accordingly
        env:
          # Regional endpoint for Microsoft Playwright Testing
          PLAYWRIGHT_SERVICE_URL: ${{ secrets.PLAYWRIGHT_SERVICE_URL }}
          PLAYWRIGHT_SERVICE_RUN_ID: ${{ github.run_id }}-${{ github.run_attempt }}-${{ github.sha } #This Run_ID will be unique and will remain same across all shards
        run: npx playwright test --shard=${{ matrix.shardIndex }}/${{ matrix.shardTotal }}