Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Schnellstart richten Sie kontinuierliche End-to-End-Tests mit Playwright-Arbeitsbereichen ein, um zu überprüfen, ob Ihre Web-App in verschiedenen Browsern und Betriebssystemen mit jedem Codecommit ordnungsgemäß ausgeführt wird, und um Probleme bei den Tests mithilfe des Dienst-Dashboards ganz einfach zu beheben. Erfahren Sie, wie Sie Ihre Playwright-Tests einem CI-Workflow (Continuous Integration) hinzufügen, z. B. GitHub Actions, Azure-Pipelines oder anderen CI-Plattformen.
Nachdem Sie diesen Schnellstart abgeschlossen haben, verfügen Sie über einen CI-Workflow mit Microsoft Playwright-Arbeitsbereichen, der Ihre Playwright-Testsammlung im großen Stil ausführt und Ihnen bei der Problembehandlung für Tests hilft.
Voraussetzungen
Ein Azure-Konto mit einem aktiven Abonnement. Wenn Sie noch kein Azure-Abonnement haben, erstellen Sie ein kostenloses Konto, bevor Sie beginnen.
Ein Playwright-Arbeitsbereich. Schließen Sie den Schnellstart: Playwright-Tests im großen Stil ausführen ab, und erstellen Sie einen Arbeitsbereich.
- Ein GitHub-Konto. Falls Sie kein GitHub-Konto besitzen, können Sie kostenlos eines erstellen.
- Ein GitHub-Repository, das Ihre Playwright-Testspezifikationen und GitHub Actions-Workflow enthält. Informationen zum Erstellen eines Repositorys finden Sie unter Erstellen eines neuen Repositorys.
- Ein GitHub Actions-Workflow. Informationen zu den ersten Schritten mit GitHub Actions finden Sie bei Bedarf unter Erstellen Ihres ersten Workflows
- Richten Sie die Authentifizierung von GitHub Actions zu Azure ein. Siehe Verwenden von GitHub Actions zum Herstellen einer Verbindung mit Azure.
Abrufen der Endpunkt-URL für die Dienstregion
In der Dienstkonfiguration müssen Sie den regionsspezifischen Dienstendpunkt bereitstellen. Der Endpunkt hängt von der Azure-Region ab, die Sie beim Erstellen des Arbeitsbereichs ausgewählt haben.
Führen Sie die folgenden Schritte aus, um die Dienstendpunkt-URL zu erhalten und sie als CI-Workflow-Geheimnis zu speichern:
Melden Sie sich mit Ihrem Azure-Konto beim Azure-Portal an, und navigieren Sie zu Ihrem Arbeitsbereich.
Wählen Sie die Seite Erste Schritte aus.
Kopieren Sie unter Endpunkt der Region in Ihrem Setup hinzufügen die URL des Dienstes.
Die Endpunkt-URL entspricht der Azure-Region, die Sie beim Erstellen des Arbeitsbereichs ausgewählt haben.
Speichern Sie die Dienstendpunkt-URL in einem CI-Workflow-Geheimnis:
Geheimer Name Wert PLAYWRIGHT_SERVICE_URL Fügen Sie die Endpunkt-URL ein, die Sie zuvor kopiert haben.
Dienstkonfigurationsdatei hinzufügen
Wenn Sie keine Playwright-Tests für die Ausführung mit Service konfiguriert haben, fügen Sie eine Konfigurationsdatei für den Dienst zu Ihrem Repository hinzu. Im nächsten Schritt geben Sie diese Dienstkonfigurationsdatei in der Playwright CLI an.
Erstellen Sie neben der
playwright.service.config.ts-Datei eine neueplaywright.config.ts-Datei.Optional können Sie die Datei
playwright.service.config.tsim Beispielrepository verwenden.Fügen Sie ihr den folgenden Inhalt hinzu:
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(), }) );Standardmäßig können Sie mit der Dienstkonfiguration Buildpipelines beschleunigen, indem Sie Tests parallel mit in der Cloud gehosteten Browsern ausführen.
Speichern Sie die Datei, und führen Sie einen Commit für die Datei in Ihr Quellcode-Repository durch.
Aktualisieren der Datei „package.json“
Aktualisieren Sie die Datei package.json in Ihrem Repository, um Details zum Paket „Playwright-Arbeitsbereiche“ im Abschnitt devDependencies hinzuzufügen.
"devDependencies": {
"@azure/playwright": "latest"
}
Installieren des Dienstpakets
Installieren Sie in Ihrem Projekt das Paket „Playwright-Arbeitsbereiche“.
dotnet add package Azure.Developer.Playwright.NUnit
Durch diesen Befehl wird die Datei „csproj“ Ihres Projekts aktualisiert, indem im Abschnitt „ItemGroup“ die Dienstpaketdetails hinzugefügt werden. Denken Sie daran, diese Änderungen zu committen.
<ItemGroup>
<PackageReference Include="Azure.Developer.Playwright.NUnit" Version="1.0.0" />
</ItemGroup>
Einrichten der Dienstkonfiguration
- Erstellen Sie eine neue
PlaywrightServiceNUnitSetup.cs-Datei im Stammverzeichnis Ihres Projekts. Diese Datei erleichtert die Authentifizierung Ihres Clients mit dem Dienst. - Fügen Sie ihr den folgenden Inhalt hinzu:
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
}
}
- Speichern Sie die Datei, und führen Sie einen Commit für die Datei in Ihr Quellcode-Repository durch.
Authentifizierung einrichten
Der CI-Computer, auf dem Playwright-Tests ausgeführt werden, muss sich beim Paket „Playwright-Arbeitsbereichsdienst authentifizieren, um die Browser zum Ausführen der Tests abzurufen.
Der Dienst bietet zwei Authentifizierungsmethoden: Microsoft Entra ID und Zugriffstoken. Es wird dringend empfohlen, Microsoft Entra ID zur Authentifizierung Ihrer Pipelines zu verwenden.
Einrichten der Authentifizierung mithilfe von Microsoft Entra ID
Wenn Sie GitHub Actions verwenden, können Sie mithilfe von GitHub OpenID Connect eine Verbindung mit dem Dienst herstellen. Befolgen Sie die Schritte, um die Integration einzurichten:
Voraussetzungen
Option 1: Microsoft Entra-Anwendung
Erstellen Sie eine Microsoft Entra-Anwendung mit einem Dienstprinzipal im Azure-Portal, mit Azure CLI oder Azure PowerShell.
Kopieren Sie die Werte für Client-ID, Abonnement-ID, und Verzeichnis-ID (Mandanten-ID), um sie später in Ihrem GitHub Actions-Workflow zu verwenden.
Weisen Sie dem Dienstprinzipal, der im vorherigen Schritt erstellt wurde, die Rolle
OwneroderContributorzu. Diese Rollen müssen im Playwright-Arbeitsbereich zugewiesen werden. Weitere Informationen finden Sie unter Verwalten des Zugriffs.Konfigurieren Sie Verbundidentitäts-Anmeldeinformationen für eine Microsoft Entra-Anwendung, um Token zu vertrauen, die von GitHub Actions an Ihr GitHub-Repository ausgestellt wurden.
Option 2: Benutzerseitig zugewiesene verwaltete Identität
Erstellen Sie eine benutzerseitig zugewiesene verwaltete Identität.
Kopieren Sie die Werte für Client-ID, Abonnement-ID, und Verzeichnis-ID (Mandanten-ID), um sie später in Ihrem GitHub Actions-Workflow zu verwenden.
Weisen Sie die Rolle
OwneroderContributorder im vorherigen Schritt erstellten benutzerseitig zugewiesenen verwalteten Identität zu. Diese Rollen müssen im Playwright-Arbeitsbereich zugewiesen werden. Weitere Informationen finden Sie unter Verwalten des Zugriffs.Konfigurieren Sie Verbundidentitäts-Anmeldeinformationen für eine benutzerseitig zugewiesene verwaltete Identität, um Token zu vertrauen, die von GitHub Actions an Ihr GitHub-Repository ausgegeben werden.
Erstellen von GitHub-Geheimnissen
- Fügen Sie die Werte hinzu, die Sie im vorherigen Schritt erhalten haben als Geheimnisse zu Ihrem GitHub-Repository hinzu. Siehe Einrichten des GitHub Actions-Geheimnisses. Diese Variablen werden in nachfolgenden Schritten des GitHub Action-Workflows verwendet.
| GitHub-Geheimnis | Quelle (Microsoft Entra-Anwendung oder verwaltete Identität) |
|---|---|
AZURE_CLIENT_ID |
Kunden-ID |
AZURE_SUBSCRIPTION_ID |
Abonnement-ID |
AZURE_TENANT_ID |
Verzeichnis-ID (Mandant) |
Hinweis
Für erhöhte Sicherheit wird dringend empfohlen, GitHub-Geheimnisse zu verwenden, um vertrauliche Werte zu speichern, anstatt sie direkt in Ihre Workflowdatei einzulagern.
Einrichten der Authentifizierung mithilfe von Zugriffstoken
Vorsicht
Es wird dringend empfohlen, Microsoft Entra ID für die Authentifizierung bei dem Dienst zu verwenden. Für die Verwendung von Zugriffstoken finden Sie weitere Information unter Verwalten von Zugriffstoken.
Sie können ein Zugriffstoken aus Ihrem Playwright-Arbeitsbereich generieren und in Ihrem Setup verwenden. Aufgrund der erhöhten Sicherheit empfehlen wir jedoch dringend Microsoft Entra ID für die Authentifizierung. Zugriffstoken sind zwar praktisch, funktionieren jedoch wie langlebige Kennwörter und sind anfälliger für Kompromittierungen.
Die Authentifizierung mithilfe von Zugriffstoken ist standardmäßig deaktiviert. Zur Verwendung aktivieren Sie die tokenbasierte Authentifizierung.
Richten Sie die Authentifizierung mithilfe von Zugriffstoken ein.
Speichern Sie das Zugriffstoken in einem CI-Workflowgeheimnis, und verwenden Sie es im GitHub Actions-Workflow oder in der Azure Pipeline-YAML-Datei.
| Geheimer Name | Wert |
|---|---|
| PLAYWRIGHT_SERVICE_ACCESS_TOKEN | Fügen Sie den Wert des zuvor erstellten Zugriffstokens ein. |
Aktualisieren der Workflow-Definition
Aktualisieren Sie die CI-Workflowdefinition, um Ihre Playwright-Tests mit der Playwright CLI auszuführen. Übergeben Sie die Dienstkonfigurationsdatei als Eingabeparameter für die Playwright CLI. Sie konfigurieren Ihre Umgebung, indem Sie Umgebungsvariablen angeben.
Öffnen der CI-Workflowdefinition.
Fügen Sie die folgenden Schritte hinzu, um Ihre Playwright-Tests in Playwright-Arbeitsbereichen auszuführen.
In den folgenden Schritten werden die Workflow-Änderungen für GitHub Actions oder Azure Pipelines beschrieben. Ebenso können Sie Ihre Playwright-Tests mit der Playwright CLI auf anderen CI-Plattformen ausführen.
# 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
Aktualisieren Sie die CI-Workflowdefinition, um Ihre Playwright-Tests mit der Playwright NUnit CLI auszuführen. Sie konfigurieren Ihre Umgebung, indem Sie Umgebungsvariablen angeben.
Öffnen der CI-Workflowdefinition.
Fügen Sie die folgenden Schritte hinzu, um Ihre Playwright-Tests in Playwright-Arbeitsbereichen auszuführen.
In den folgenden Schritten werden die Workflow-Änderungen für GitHub Actions oder Azure Pipelines beschrieben. Ebenso können Sie Ihre Playwright-Tests mit der Playwright CLI auf anderen CI-Plattformen ausführen.
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
Speichern und committen Sie Ihre Änderungen.
Wenn der CI-Workflow ausgelöst wird, werden Ihre Playwright-Tests in Ihrem Playwright-Arbeitsbereich in cloudgehosteten Browsern in 20 parallelen Workern ausgeführt. Die Ergebnisse werden im Dienst veröffentlicht und können im Azure-Portal angezeigt werden.
Vorsicht
Für Playwright-Arbeitsbereiche werden Sie basierend auf der Anzahl der verbrauchten Testminuten belastet. Wenn Sie Erstbenutzer*in sind oder erste Schritte mit einer kostenlosen Testversion ausführen, können Sie mit der Ausführung eines einzelnen Tests im großen Stil statt mit der vollständigen Testsammlung beginnen, um die kostenlosen Testminuten nicht aufzubrauchen.
Nachdem Sie überprüft haben, ob der Test erfolgreich ausgeführt wird, können Sie die Testlast schrittweise erhöhen, indem Sie weitere Tests mit dem Dienst ausführen.
Sie können einen einzelnen Test mit dem Dienst ausführen, indem Sie die folgende Befehlszeile verwenden:
npx playwright test {name-of-file.spec.ts} --config=playwright.service.config.ts
Anzeigen von Testausführungen und Ergebnissen
Playwright kann umfangreiche Testartefakte wie Protokolle, Ablaufverfolgungen und Screenshots für jede Testausführung sammeln. Informationen zum Anzeigen von Testartefakten in Ihrer CI-Pipeline finden Sie in der Playwright-Dokumentation.
Verwandte Inhalte
Sie haben erfolgreich einen kontinuierlichen End-to-End-Testworkflow eingerichtet, um Ihre Playwright-Tests im großen Stil in cloudgehosteten Browsern auszuführen.