Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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
Ett Azure-konto med en aktiv prenumeration. Om du inte har en Azure-prenumeration, skapa ett gratis konto innan du börjar.
En dramatikerarbetsyta. Slutför snabbstarten : kör Playwright-tester i stor skala och skapa en arbetsyta.
- Ett GitHub-konto. Om du inte har något GitHub-konto kan du skapa ett kostnadsfritt.
- En GitHub-lagringsplats som innehåller dina Playwright-testspecifikationer och GitHub Actions-arbetsflöde. Information om hur du skapar en lagringsplats finns i Skapa en ny lagringsplats.
- Ett GitHub Actions-arbetsflöde. Om du behöver hjälp med att komma igång med GitHub Actions kan du läsa skapa ditt första arbetsflöde
- Konfigurera autentisering från GitHub Actions till Azure. Se Använda GitHub Actions för att ansluta till Azure.
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:
Logga in på Azure-portalen med ditt Azure-konto och gå till din arbetsyta.
Välj sidan Kom igång .
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.
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.
Skapa en ny fil
playwright.service.config.tstillsammans medplaywright.config.tsfilen.Valfritt, använd
playwright.service.config.tsfilen i exempellagringsplatsen.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.
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
- Skapa en ny fil
PlaywrightServiceNUnitSetup.csi rotkatalogen för projektet. Den här filen underlättar autentisering av klienten med tjänsten. - 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
}
}
- 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
Skapa ett Microsoft Entra-program med en tjänsthuvudman via Azure-portalen, Azure CLI eller Azure PowerShell.
Kopiera värdena för klient-ID, prenumerations-ID och katalog-ID (klientorganisation) som ska användas senare i ditt GitHub Actions-arbetsflöde.
OwnerTilldela rollen ellerContributortill tjänstens huvudnamn som skapades i föregående steg. Dessa roller måste tilldelas på arbetsytan Dramatiker. Mer information finns i hantera åtkomst.Konfigurera en federerad identitetsautentiseringsuppgift i ett Microsoft Entra-program för att lita på token som utfärdats av GitHub Actions till din GitHub-lagringsplats.
Alternativ 2: Användartilldelad hanterad identitet
Kopiera värdena för klient-ID, prenumerations-ID och katalog-ID (klientorganisation) som ska användas senare i ditt GitHub Actions-arbetsflöde.
Tilldela
Owner-rollen ellerContributor-rollen till den användartilldelade hanterade identiteten som skapades i föregående steg. Dessa roller måste tilldelas på arbetsytan Dramatiker. Mer information finns i hantera åtkomst.Konfigurera en federerad identitetsautentiseringsuppgift för en användartilldelad hanterad identitet för att lita på token som utfärdats av GitHub Actions till din GitHub-lagringsplats.
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.
Autentisering med åtkomsttoken är inaktiverat som standard. Om du vill använda aktiverar du åtkomsttokenbaserad autentisering.
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.
Öppna CI-arbetsflödesdefinitionen.
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.
Öppna CI-arbetsflödesdefinitionen.
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
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.
Relaterat innehåll
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.