Partager via


Démarrage rapide : Configurer des tests de bout en bout continus avec des espaces de travail playwright

Dans ce guide de démarrage rapide, vous configurez des tests continus de bout en bout avec les espaces de travail Playwright afin de vérifier que votre application web fonctionne correctement sur différents navigateurs et systèmes d'exploitation à chaque validation de code, et de dépanner facilement les tests à l'aide du tableau de bord du service. Découvrez comment ajouter vos tests Playwright à un workflow d’intégration continue (ou « CI », pour « Continuous Integration »), tel que GitHub Actions, Azure Pipelines ou d’autres plateformes de CI.

Une fois cette procédure de démarrage rapide terminée, vous disposez d'un workflow CI qui exécute votre suite de tests Playwright à grande échelle et vous aide à dépanner facilement les tests avec les espaces de travail Playwright.

Conditions préalables

Obtenir l’URL du point de terminaison de région de service

Dans la configuration du service, vous devez fournir le point de terminaison de service spécifique à la région. Le point de terminaison dépend de la région Azure sélectionnée lors de la création de l’espace de travail.

Pour obtenir l’URL du point de terminaison de service et la stocker en tant que secret de workflow de CI, procédez comme suit :

  1. Connectez-vous au portail Azure avec votre compte Azure et accédez à votre espace de travail.

  2. Sélectionnez la page Prise en main .

    Capture d’écran montrant comment accéder à la page Prise en main.

  3. Dans Ajouter un point de terminaison de région dans votre configuration, copiez l’URL du point de terminaison de service.

    L’URL du point de terminaison correspond à la région Azure que vous avez sélectionnée lors de la création de l’espace de travail.

  4. Stockez l’URL du point de terminaison de service dans un secret de workflow de CI :

    Nom du secret Valeur
    PLAYWRIGHT_SERVICE_URL Collez l’URL du point de terminaison que vous avez copiée précédemment.

Ajouter un fichier de configuration de service

Si vous n’avez pas configuré des tests Playwright pour les exécuter avec le service, ajoutez un fichier de configuration de service à votre référentiel. Lors de l’étape suivante, vous spécifierez ce fichier de configuration de service en utilisant l’interface de ligne de commande de Playwright.

  1. Créez un fichier playwright.service.config.ts en même temps que le fichier playwright.config.ts.

    Si vous le souhaitez, utilisez le fichier playwright.service.config.ts dans l’exemple de référentiel.

  2. Ajoutez le contenu suivant :

    import { defineConfig } from '@playwright/test';
    import { createAzurePlaywrightConfig, ServiceOS } from '@azure/playwright';
    import { DefaultAzureCredential } from '@azure/identity';
    import config from './playwright.config';
    
    /* Learn more about service configuration at https://aka.ms/pww/docs/config */
    export default defineConfig(
      config,
      createAzurePlaywrightConfig(config, {
        exposeNetwork: '<loopback>',
        connectTimeout: 3 * 60 * 1000, // 3 minutes
        os: ServiceOS.LINUX,
        credential: new DefaultAzureCredential(),
      })
    );
    

    Par défaut, la configuration du service vous permet d’accélérer les pipelines de génération en exécutant des tests en parallèle à l’aide de navigateurs hébergés dans le cloud.

  3. Enregistrez et validez le fichier dans votre référentiel de code source.

Mettre à jour le fichier package.json

Mettez à jour le fichier dans votre référentiel pour ajouter des détails sur le package.json package des espaces de travail Playwright dans la devDependencies section.

"devDependencies": {
    "@azure/playwright": "latest"
}

Installer le package de service

Dans votre projet, installez le package Espaces de travail Playwright.

dotnet add package Azure.Developer.Playwright.NUnit

Cette commande met à jour le fichier csproj de votre projet en ajoutant les détails du package de service à la section ItemGroup. Pensez à valider les modifications.

  <ItemGroup>
    <PackageReference Include="Azure.Developer.Playwright.NUnit" Version="1.0.0" />
  </ItemGroup>

Définir la configuration du service

  1. Créez un fichier PlaywrightServiceNUnitSetup.cs dans le répertoire racine de votre projet. Ce fichier facilite l’authentification de votre client auprès du service.
  2. Ajoutez le contenu suivant :
using Azure.Developer.Playwright.NUnit;
using Azure.Identity;
using System.Runtime.InteropServices;
using System;

namespace PlaywrightService.SampleTests; // Remember to change this as per your project namespace

[SetUpFixture]
public class PlaywrightServiceNUnitSetup : PlaywrightServiceBrowserNUnit
{
    public PlaywrightServiceNUnitSetup() : base(
        credential: new DefaultAzureCredential(),
    )
    {
        // no-op
    }
}
  1. Enregistrez et validez le fichier dans votre référentiel de code source.

Configurer l’authentification

La machine CI exécutant des tests Playwright doit s’authentifier auprès du service des espaces de travail Playwright pour obtenir les navigateurs pour exécuter les tests.

Le service offre deux méthodes d’authentification : Microsoft Entra ID et les Jetons d’accès. Nous vous recommandons vivement d’utiliser Microsoft Entra ID pour authentifier vos pipelines.

Configurer l’authentification à l’aide de Microsoft Entra ID

Si vous utilisez GitHub Actions, vous pouvez vous connecter au service en utilisant GitHub OpenID Connect. Suivez les étapes pour configurer l’intégration :

Conditions préalables

Option 1 : application Microsoft Entra

Option 2 : identité managée affectée par l’utilisateur

Créer des secrets GitHub
  • Ajoutez comme secrets dans votre référentiel GitHub les valeurs obtenues dans l’étape précédente. Consultez configurer un secret d’action GitHub. Ces variables sont utilisées dans le workflow GitHub Action dans les étapes suivantes.
Secret GitHub Source (identité managée ou application Microsoft Entra)
AZURE_CLIENT_ID ID de client
AZURE_SUBSCRIPTION_ID Identifiant d’abonnement
AZURE_TENANT_ID ID de répertoire (locataire)

Remarque

Pour renforcer la sécurité, vous vous recommandons vivement d’utiliser des secrets GitHub pour stocker des valeurs sensibles, au lieu de les inclure directement dans votre fichier de workflow.

Configurer l’authentification à l’aide de jetons d’accès

Avertissement

Nous vous recommandons vivement d’utiliser Microsoft Entra ID pour l’authentification au service. Si vous utilisez des jetons d’accès, consultez Comment gérer les jetons d’accès

Vous pouvez générer un jeton d’accès à partir de votre espace de travail Playwright et l’utiliser dans votre configuration. Toutefois, nous recommandons vivement Microsoft Entra ID pour l’authentification en raison de sa sécurité renforcée. Les jetons d’accès, bien que pratiques, fonctionnent comme des mots de passe de longue durée et sont plus susceptibles d’être compromis.

  1. L’authentification à l’aide de jetons d’accès est désactivée par défaut. Pour l’utiliser, Activer l’authentification basée sur les jetons d’accès.

  2. Configurez l’authentification en utilisant des jetons d’accès.

  3. Stockez le jeton d’accès dans un secret de workflow d’intégration continue et utilisez-le dans le workflow GitHub Actions ou le fichier YAML Azure Pipeline.

Nom du secret Valeur
PLAYWRIGHT_SERVICE_ACCESS_TOKEN Collez la valeur du jeton d’accès précédemment créé.

Mettre à jour la définition du workflow

Mettez à jour la définition de workflow de CI pour exécuter vos tests Playwright en utilisant l’interface de ligne de commande de Playwright. Transmettez le fichier de configuration de service en tant que paramètre d’entrée pour l’interface de ligne de commande de Playwright. Vous configurez votre environnement en spécifiant des variables d’environnement.

  1. Ouvrez la définition de workflow de CI.

  2. Ajoutez les étapes suivantes pour exécuter vos tests playwright dans les espaces de travail playwright.

    Les étapes suivantes décrivent les modifications de workflow pour GitHub Actions ou Azure Pipelines. De même, vous pouvez exécuter vos tests Playwright en utilisant l’interface de ligne de commande de Playwright dans d’autres plateformes de CI.

    
      # This step is to sign-in to Azure to run tests from GitHub Action workflow. 
      # Choose how to set up authentication to Azure from GitHub Actions. This is one example. 
      name: Playwright Tests (Playwright Workspaces)
      on:
        push:
          branches: [main, master]
        pull_request:
          branches: [main, master]
    
      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@v4
    
            - name: Login to Azure with AzPowershell (enableAzPSSession true)
              uses: azure/login@v2
              with:
                client-id: ${{ secrets.AZURE_CLIENT_ID }} # GitHub Open ID connect values copied in previous steps
                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 Playwright Workspaces
                PLAYWRIGHT_SERVICE_URL: ${{ secrets.PLAYWRIGHT_SERVICE_URL }}
                # PLAYWRIGHT_SERVICE_ACCESS_TOKEN: ${{ secrets.PLAYWRIGHT_SERVICE_ACCESS_TOKEN }} # Not recommended, use Microsoft Entra ID authentication. 
              run: npx playwright test -c playwright.service.config.ts --workers=20
    
            - name: Upload Playwright report
              uses: actions/upload-artifact@v3
              if: always()
              with:
                name: playwright-report
                path: path/to/playwright/folder/playwright-report/ # update accordingly
                retention-days: 10
    

Mettez à jour la définition de workflow de CI pour exécuter vos tests Playwright en utilisant l’interface de ligne de commande NUnit de Playwright. Vous configurez votre environnement en spécifiant des variables d’environnement.

  1. Ouvrez la définition de workflow de CI.

  2. Ajoutez les étapes suivantes pour exécuter vos tests playwright dans les espaces de travail playwright.

    Les étapes suivantes décrivent les modifications de workflow pour GitHub Actions ou Azure Pipelines. De même, vous pouvez exécuter vos tests Playwright en utilisant l’interface de ligne de commande de Playwright dans d’autres plateformes de CI.

    on:
      push:
        branches: [ main, master ]
      pull_request:
        branches: [ main, master ]
    permissions: # Required when using AuthType as EntraId
      id-token: write
      contents: read
    jobs:
      test:
        timeout-minutes: 60
        runs-on: ubuntu-latest
          steps:
          - uses: actions/checkout@v4
        # This step is to sign-in to Azure to run tests from GitHub Action workflow. 
        # Choose how to 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 }} # GitHub Open ID connect values copied in previous steps
              tenant-id: ${{ secrets.AZURE_TENANT_ID }}  
              subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}  
              enable-AzPSSession: true 
    
          - name: Setup .NET
            uses: actions/setup-dotnet@v4
            with:
              dotnet-version: 8.0.x
    
          - name: Restore dependencies
            run: dotnet restore
            working-directory: path/to/playwright/folder # update accordingly
    
          - name: Build
            run: dotnet build --no-restore
            working-directory: path/to/playwright/folder # update accordingly
    
          - name: Run Playwright tests
              working-directory: path/to/playwright/folder # update accordingly
            env:
              # Regional endpoint for Playwright Workspaces
              PLAYWRIGHT_SERVICE_URL: ${{ secrets.PLAYWRIGHT_SERVICE_URL }}
              # PLAYWRIGHT_SERVICE_ACCESS_TOKEN: ${{ secrets.PLAYWRIGHT_SERVICE_ACCESS_TOKEN }} # Not recommended, use Microsoft Entra ID authentication. 
            run: dotnet test -- NUnit.NumberOfTestWorkers=20
    
          - name: Upload Playwright report
            uses: actions/upload-artifact@v3
            if: always()
            with:
              name: playwright-report
              path: path/to/playwright/folder/playwright-report/ # update accordingly
              retention-days: 10
    
  1. Enregistrez et validez vos modifications.

    Lorsque le flux de travail CI est déclenché, vos tests Playwright s’exécutent dans votre espace de travail Playwright sur les navigateurs hébergés dans le cloud, sur 20 travailleurs parallèles. Les résultats sont publiés sur le service et peuvent être consultés dans le portail Azure.

Avertissement

Avec les espaces de travail Playwright, vous êtes facturé(e) en fonction du nombre total de minutes de test consommées. Si vous êtes un nouvel utilisateur ou si vous commencez avec un essai gratuit, vous pouvez commencer par exécuter un test unique à grande échelle à la place de votre suite de tests complète afin d’éviter d’épuiser vos minutes de test gratuites.

Après avoir validé que le test s’exécute correctement, vous pouvez augmenter progressivement la charge de test en exécutant davantage de tests avec le service.

Vous pouvez exécuter un test unique avec le service à l’aide de la ligne de commande suivante :

npx playwright test {name-of-file.spec.ts} --config=playwright.service.config.ts

Afficher les exécutions de test et les résultats

Playwright peut collecter des artefacts de test riches tels que les journaux, les traces et les captures d’écran sur chaque exécution de test. Pour savoir comment afficher les artefacts de test dans votre pipeline CI, consultez la documentation Playwright.

Vous avez correctement configuré un workflow de test de bout en bout continu pour exécuter vos tests Playwright à grande échelle sur les navigateurs hébergés dans le cloud.