Dela via


Snabbstart: Konfigurera kontinuerlig testning från slutpunkt till slutpunkt med Playwright Workspaces

I den här snabbstarten konfigurerar du kontinuerlig testning från slutpunkt till slutpunkt med Playwright Workspaces för att verifiera att webbappen körs korrekt i olika webbläsare och operativsystem med varje kodincheckning och felsöker tester som enkelt använder tjänstinstrumentpanelen. Lär dig hur du lägger till dina Playwright-tester i ett arbetsflöde för kontinuerlig integrering (CI), till exempel GitHub Actions, Azure Pipelines eller andra CI-plattformar.

När du har slutfört den här snabbstarten har du ett CI-arbetsflöde som kör din Playwright-testsvit i stor skala och hjälper dig att felsöka tester enkelt med Playwright Workspaces.

Förutsättningar

Hämta tjänstregionens slutpunkts-URL

I tjänstkonfigurationen måste du ange den regionspecifika tjänstslutpunkten. Slutpunkten beror på vilken Azure-region du valde när du skapade arbetsytan.

Utför följande steg för att hämta url:en för tjänstslutpunkten och lagra den som en CI-arbetsflödeshemlighet:

  1. Logga in på Azure-portalen med ditt Azure-konto och gå till din arbetsyta.

  2. Välj sidan Kom igång .

    Skärmbild som visar hur du navigerar till sidan Kom igång.

  3. I Lägg till regionslutpunkt i konfigurationen kopierar du url:en för tjänstslutpunkten.

    Slutpunkts-URL:en matchar den Azure-region som du valde när du skapade arbetsytan.

  4. Lagra tjänstens slutpunkts-URL i en CI-arbetsflödeshemlighet:

    Hemligt namn Värde
    PLAYWRIGHT_SERVICE_URL Klistra in slutpunkts-URL:en som du kopierade tidigare.

Lägg till tjänstkonfigurationsfil

Om du inte har konfigurerat Playwright-tester för körning med tjänsten lägger du till en tjänstkonfigurationsfil på lagringsplatsen. I nästa steg anger du sedan den här tjänstkonfigurationsfilen i Playwright CLI.

  1. Skapa en ny fil playwright.service.config.ts tillsammans med playwright.config.ts filen.

    Valfritt, använd playwright.service.config.ts filen i exempellagringsplatsen.

  2. Lägg till följande innehåll i det:

    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(),
      })
    );
    

    Med tjänstkonfigurationen kan du som standard påskynda bygg-pipelines genom att köra tester parallellt med hjälp av molnbaserade webbläsare.

  3. Spara och committa filen till din källkodsförvar.

Uppdatera package.json-filen

package.json Uppdatera filen på lagringsplatsen för att lägga till information om Playwright Workspaces-paketet i devDependencies avsnittet.

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

Installera tjänstpaket

Installera Playwright Workspaces-paketet i projektet.

dotnet add package Azure.Developer.Playwright.NUnit

Det här kommandot uppdaterar projektets csproj fil genom att lägga till information om tjänstpaket i ItemGroup avsnittet. Kom ihåg att checka in ändringarna.

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

Konfigurera tjänstkonfiguration

  1. Skapa en ny fil PlaywrightServiceNUnitSetup.cs i rotkatalogen för projektet. Den här filen underlättar autentisering av klienten med tjänsten.
  2. Lägg till följande innehåll i det:
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. Spara och committa filen till din källkodsförvar.

Konfigurera autentisering

CI-datorn som kör Playwright-tester måste autentisera med Playwright Workspaces-tjänsten för att få webbläsarna att köra testerna.

Tjänsten erbjuder två autentiseringsmetoder: Microsoft Entra-ID och åtkomsttoken. Vi rekommenderar starkt att du använder Microsoft Entra-ID för att autentisera dina pipelines.

Konfigurera autentisering med Microsoft Entra-ID

Om du använder GitHub Actions kan du ansluta till tjänsten med GitHub OpenID Connect. Följ stegen för att konfigurera integreringen:

Förutsättningar

Alternativ 1: Microsoft Entra-program

Alternativ 2: Användartilldelad hanterad identitet

Skapa GitHub-hemligheter
  • Lägg till de värden som du fick i föregående steg som hemligheter till din GitHub-lagringsplats. Se Konfigurera GitHub Action Secret. Dessa variabler används i GitHub Action-arbetsflödet i efterföljande steg.
GitHub-hemlighet Källa (Microsoft Entra-program eller hanterad identitet)
AZURE_CLIENT_ID Klient-ID
AZURE_SUBSCRIPTION_ID Prenumerations-ID
AZURE_TENANT_ID Katalog-ID (klientorganisation)

Anmärkning

För förbättrad säkerhet rekommenderar vi starkt att du använder GitHub-hemligheter för att lagra känsliga värden i stället för att inkludera dem direkt i arbetsflödesfilen.

Konfigurera autentisering med hjälp av åtkomsttoken

Försiktighet

Vi rekommenderar starkt att du använder Microsoft Entra-ID för autentisering till tjänsten. Om du använder åtkomsttoken, se hur du hanterar åtkomsttoken

Du kan generera en åtkomsttoken från din Playwright-arbetsyta och använda den i konfigurationen. Vi rekommenderar dock starkt Microsoft Entra-ID för autentisering på grund av den förbättrade säkerheten. Åtkomsttoken fungerar, även om de är praktiska, som långlivade lösenord och är mer mottagliga för att komprometteras.

  1. Autentisering med åtkomsttoken är inaktiverat som standard. Om du vill använda aktiverar du åtkomsttokenbaserad autentisering.

  2. Konfigurera autentisering med hjälp av åtkomsttoken.

  3. Lagra åtkomsttoken i en CI-arbetsflödeshemlighet och använd den i GitHub Actions-arbetsflödet eller Azure Pipeline yaml-filen.

Hemligt namn Värde
PLAYWRIGHT_SERVICE_ACCESS_TOKEN Klistra in värdet för åtkomsttoken som du skapade tidigare.

Uppdatera arbetsflödesdefinitionen

Uppdatera CI-arbetsflödesdefinitionen för att köra dina Playwright-tester med Playwright CLI. Skicka tjänstkonfigurationsfilen som en indataparameter för Playwright CLI. Du konfigurerar din miljö genom att ange miljövariabler.

  1. Öppna CI-arbetsflödesdefinitionen.

  2. Lägg till följande steg för att köra dina Playwright-tester i Playwright Workspaces.

    Följande steg beskriver arbetsflödesändringarna för GitHub Actions eller Azure Pipelines. På samma sätt kan du köra dina Playwright-tester med hjälp av Playwright CLI på andra CI-plattformar.

    
      # 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
    

Uppdatera CI-arbetsflödesdefinitionen för att köra dina Playwright-tester med Playwright NUnit CLI. Du konfigurerar din miljö genom att ange miljövariabler.

  1. Öppna CI-arbetsflödesdefinitionen.

  2. Lägg till följande steg för att köra dina Playwright-tester i Playwright Workspaces.

    Följande steg beskriver arbetsflödesändringarna för GitHub Actions eller Azure Pipelines. På samma sätt kan du köra dina Playwright-tester med hjälp av Playwright CLI på andra CI-plattformar.

    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. Spara och committa ändringarna.

    När CI-arbetsflödet utlöses körs dina Playwright-tester på din Playwright-arbetsyta i molnbaserade webbläsare, över 20 parallella arbetare. Resultaten publiceras till tjänsten och kan visas i Azure-portalen.

Försiktighet

Med Playwright Workspaces debiteras du baserat på antalet totalt antal förbrukade testminuter. Om du är en förstagångsanvändare eller kommer igång med en kostnadsfri utvärderingsversion kan du börja med att köra ett enskilt test i stor skala i stället för din fullständiga testsvit för att undvika att uttömma dina kostnadsfria testminuter.

När du har verifierat att testet körs framgångsrikt kan du gradvis öka testbelastningen genom att köra fler tester med tjänsten.

Du kan köra ett enskilt test med tjänsten med hjälp av följande kommandorad:

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

Visa testkörningar och resultat

Playwright kan samla in omfattande testartefakter som loggar, spårningar och skärmbilder på varje testkörning. Mer information om hur du visar testartefakter i din CI-pipeline finns i Dokumentation om Dramatiker.

Du har konfigurerat ett kontinuerligt testarbetsflöde från slutpunkt till slutpunkt för att köra dina Playwright-tester i stor skala i molnbaserade webbläsare.