Partager via


Utiliser les rapports Microsoft Playwright Testing en préversion avec le partitionnement Playwright

Dans cet article, vous découvrez comment utiliser la fonctionnalité de création de rapports du service Microsoft Playwright Testing avec des séries de tests qui utilisent les fonctionnalités de partitionnement de Playwright.

Le partitionnement de Playwright vous permet de fractionner votre suite de tests pour l’exécuter simultanément sur plusieurs machines. Cette fonctionnalité permet d’exécuter des tests en parallèle.

Vous pouvez utiliser la fonctionnalité de création de rapports de Playwright Testing pour obtenir un rapport consolidé d’une série de tests avec partitionnement. Vérifiez que le runId de la série de tests est identique sur toutes les partitions.

Important

Microsoft Playwright Testing est actuellement en préversion. Pour connaître les conditions juridiques qui s’appliquent aux fonctionnalités Azure en version bêta, en préversion ou plus généralement non encore en disponibilité générale, consultez l’Avenant aux conditions d’utilisation des préversions de Microsoft Azure.

Prérequis

Mettre à jour le fichier de configuration de service Playwright

Ajoutez ou mettez à jour runId avec le fichier playwright.service.config.ts dans votre configuration.


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

Vous pouvez utiliser la variable PLAYWRIGHT_SERVICE_RUN_ID dans votre configuration pour garantir que le runId reste le même sur toutes les partitions.

Configurer des variables

Le paramètre runId est utilisé comme identificateur par le service Playwright Testing pour faire la distinction entre les séries de test. Les résultats de plusieurs exécutions avec le même runId sont signalés pour la même exécution sur le portail Playwright.

Par défaut, une série de tests qui utilise la fonctionnalité de création de rapports génère automatiquement un runId unique, sauf si vous définissez explicitement la valeur vous-même. Si la valeur de la variable reste identique entre les exécutions, les résultats sont signalés ensemble dans la même exécution sur le portail Playwright.

Conseil

Si vous utilisez les navigateurs hébergés dans le cloud fournis par le service Microsoft Playwright Testing pour exécuter vos tests, vous avez peut-être déjà défini cette variable. Pour éviter les remplacements, veillez à ne la définir qu’une seule fois.

Lors de l’utilisation du partitionnement, vérifiez que le même runId est défini sur toutes les partitions pour que les résultats soient signalés ensemble. Utilisez la variable PLAYWRIGHT_SERVICE_RUN_ID et définissez la même valeur sur toutes les partitions.

Voici un exemple de la façon dont vous pouvez le définir dans votre pipeline via 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 }}