Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In deze quickstart stelt u doorlopend end-to-end testen in met Playwright Workspaces om te controleren of uw web-app correct wordt uitgevoerd in verschillende browsers en besturingssystemen met elke codedoorvoering en het oplossen van problemen met tests met behulp van het servicedashboard. Meer informatie over het toevoegen van playwright-tests aan een CI-werkstroom (continue integratie), zoals GitHub Actions, Azure Pipelines of andere CI-platforms.
Nadat u deze quickstart hebt voltooid, hebt u een CI-werkstroom waarmee uw Playwright-testpakket op schaal wordt uitgevoerd en waarmee u eenvoudig problemen met tests kunt oplossen met Playwright Workspaces.
Vereiste voorwaarden
Een Azure-account met een actief abonnement. Als je geen Azure-abonnement hebt, maak dan een gratis account aan voordat je begint.
Een Playwright-werkruimte. Voltooi de quickstart: Voer Playwright-tests op schaal uit en maak een werkruimte.
- Een GitHub-account. Als u geen GitHub-account hebt, kunt u er gratis een maken.
- Een GitHub-opslagplaats die uw Playwright-testspecificaties en GitHub Actions-werkstroom bevat. Zie Een nieuwe opslagplaats maken om een opslagplaats te maken.
- Een GitHub Actions-werkstroom. Als u hulp nodig hebt bij het aan de slag gaan met GitHub Actions, raadpleegt u uw eerste werkstroom maken
- Verificatie van GitHub Actions instellen in Azure. Zie GitHub Actions gebruiken om verbinding te maken met Azure.
De EINDPUNT-URL van de serviceregio ophalen
In de serviceconfiguratie moet u het regiospecifieke service-eindpunt opgeven. Het eindpunt is afhankelijk van de Azure-regio die u hebt geselecteerd bij het maken van de werkruimte.
Voer de volgende stappen uit om de URL van het service-eindpunt op te halen en op te slaan als een CI-werkstroomgeheim:
Meld u aan bij Azure Portal met uw Azure-account en navigeer naar uw werkruimte.
Selecteer de pagina Aan de slag .
In Het eindpunt regio toevoegen in uw installatie kopieert u de URL van het service-eindpunt.
De eindpunt-URL komt overeen met de Azure-regio die u hebt geselecteerd bij het maken van de werkruimte.
Sla de URL van het service-eindpunt op in een CI-werkstroomgeheim:
Geheime naam Waarde PLAYWRIGHT_SERVICE_URL Plak de eindpunt-URL die u eerder hebt gekopieerd.
Serviceconfiguratiebestand toevoegen
Als u playwright-tests niet hebt geconfigureerd voor uitvoering met de service, voegt u een serviceconfiguratiebestand toe aan uw opslagplaats. In de volgende stap geeft u dit serviceconfiguratiebestand op in de Playwright CLI.
Maak een nieuw bestand
playwright.service.config.tsnaast hetplaywright.config.tsbestand.Gebruik desgewenst het
playwright.service.config.tsbestand in de voorbeeldopslagplaats.Voeg de volgende inhoud toe:
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(), }) );Met de serviceconfiguratie kunt u standaard build-pijplijnen versnellen door tests parallel uit te voeren met behulp van browsers die worden gehost in de cloud.
Sla het bestand op en voer het door in de opslagplaats voor broncode.
package.json-bestand bijwerken
Werk het package.json bestand in uw opslagplaats bij om details toe te voegen over het Playwright Workspaces-pakket in devDependencies de sectie.
"devDependencies": {
"@azure/playwright": "latest"
}
Servicepakket installeren
Installeer het Playwright Workspaces-pakket in uw project.
dotnet add package Azure.Developer.Playwright.NUnit
Met deze opdracht wordt het bestand van uw project bijgewerkt door de details van csproj het servicepakket toe te voegen aan de ItemGroup sectie. Vergeet niet deze wijzigingen door te voeren.
<ItemGroup>
<PackageReference Include="Azure.Developer.Playwright.NUnit" Version="1.0.0" />
</ItemGroup>
Serviceconfiguratie instellen
- Maak een nieuw bestand
PlaywrightServiceNUnitSetup.csin de hoofdmap van uw project. Dit bestand vereenvoudigt de verificatie van uw client met de service. - Voeg de volgende inhoud toe:
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
}
}
- Sla het bestand op en voer het door in de opslagplaats voor broncode.
Authenticatie instellen
De CI-machine waarop Playwright-tests worden uitgevoerd, moet worden geverifieerd met de Playwright Workspaces-service om de browsers te krijgen om de tests uit te voeren.
De service biedt twee authenticatiemethoden: Microsoft Entra ID en Access Tokens. We raden u ten zeerste aan om Microsoft Entra ID te gebruiken om uw pijplijnen te verifiëren.
Verificatie instellen met behulp van Microsoft Entra-id
Als u GitHub Actions gebruikt, kunt u verbinding maken met de service met behulp van GitHub OpenID Connect. Volg de stappen om de integratie in te stellen:
Vereiste voorwaarden
optie 1: Microsoft Entra-toepassing
Maak een Microsoft Entra-toepassing met een service-principal via Azure Portal, Azure CLIof Azure PowerShell-.
Kopieer de waarden voor client-id, abonnements-iden directory-id (tenant) voor later gebruik in uw GitHub Actions-werkstroom.
Wijs de
OwnerofContributorrol toe aan de service-principal die u in de vorige stap hebt gemaakt. Deze rollen moeten worden toegewezen aan de Playwright-werkruimte. Zie voor meer informatie hoe u de toegang beheert.Configureer een federatieve identiteitsreferentie in een Microsoft Entra-toepassing om tokens te vertrouwen die door GitHub Actions zijn uitgegeven aan uw GitHub-opslagplaats.
optie 2: door de gebruiker toegewezen beheerde identiteit
Kopieer de waarden voor client-id, abonnements-iden directory-id (tenant) voor later gebruik in uw GitHub Actions-werkstroom.
Wijs de
OwnerofContributorrol toe aan de door de gebruiker toegewezen beheerde identiteit die in de vorige stap is gemaakt. Deze rollen moeten worden toegewezen aan de Playwright-werkruimte. Zie voor meer informatie hoe u de toegang beheert.Configureer een federatieve identiteitsreferentie voor een door de gebruiker toegewezen beheerde identiteit om tokens te vertrouwen die door GitHub Actions zijn uitgegeven aan uw GitHub-opslagplaats.
GitHub-geheimen maken
- Voeg de waarden toe die u in de vorige stap hebt verkregen als geheimen aan uw GitHub-opslagplaats. Zie GitHub Action Secret instellen. Deze variabelen worden in de GitHub Action-werkstroom gebruikt in de volgende stappen.
| GitHub Secret (indien nodig met extra uitleg of context) | Bron (Microsoft Entra-toepassing of beheerde identiteit) |
|---|---|
AZURE_CLIENT_ID |
Klant-ID |
AZURE_SUBSCRIPTION_ID |
Abonnements-id |
AZURE_TENANT_ID |
Map-id (tenant) |
Opmerking
Voor verbeterde beveiliging wordt het sterk aanbevolen om GitHub Secrets te gebruiken om gevoelige waarden op te slaan in plaats van ze rechtstreeks in uw werkstroombestand op te slaan.
Verificatie instellen met behulp van toegangstokens
Waarschuwing
We raden u ten zeerste aan om Microsoft Entra-ID te gebruiken voor verificatie bij de service. Als u toegangstokens gebruikt, raadpleegt u Toegangstokens beheren
U kunt een toegangstoken genereren vanuit uw Playwright-werkruimte en dit gebruiken in uw installatie. We raden Microsoft Entra ID echter ten zeerste aan voor verificatie vanwege de verbeterde beveiliging. Toegangstokens zijn weliswaar handig, maar functioneren als wachtwoorden met een lange levensduur en zijn vatbaarder voor compromittering.
Verificatie met toegangstokens is standaard uitgeschakeld. Schakel verificatie op basis van toegangstokens in.
Sla het toegangstoken op in een CI-werkstroomgeheim en gebruik het in de GitHub Actions-werkstroom of het Yaml-bestand van Azure Pipeline.
| Geheime naam | Waarde |
|---|---|
| PLAYWRIGHT_SERVICE_ACCESS_TOKEN | Plak de waarde van het Access-token dat u eerder hebt gemaakt. |
De werkstroomdefinitie bijwerken
Werk de CI-werkstroomdefinitie bij om playwright-tests uit te voeren met de Playwright CLI. Geef het serviceconfiguratiebestand door als invoerparameter voor de Playwright CLI. U configureert uw omgeving door omgevingsvariabelen op te geven.
Open de CI-werkstroomdefinitie.
Voeg de volgende stappen toe om uw Playwright-tests uit te voeren in Playwright Workspaces.
In de volgende stappen worden de wijzigingen in de werkstroom beschreven voor GitHub Actions of Azure Pipelines. Op dezelfde manier kunt u uw Playwright-tests uitvoeren met behulp van de Playwright CLI in andere CI-platforms.
# 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
Werk de CI-werkstroomdefinitie bij om playwright-tests uit te voeren met de Playwright NUnit CLI. U configureert uw omgeving door omgevingsvariabelen op te geven.
Open de CI-werkstroomdefinitie.
Voeg de volgende stappen toe om uw Playwright-tests uit te voeren in Playwright Workspaces.
In de volgende stappen worden de wijzigingen in de werkstroom beschreven voor GitHub Actions of Azure Pipelines. Op dezelfde manier kunt u uw Playwright-tests uitvoeren met behulp van de Playwright CLI in andere CI-platforms.
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
Sla uw wijzigingen op en voer deze door.
Wanneer de CI-werkstroom wordt geactiveerd, worden uw Playwright-tests uitgevoerd in uw Playwright-werkruimte in in de cloud gehoste browsers, in 20 parallelle werkrollen. De resultaten worden gepubliceerd naar de service en kunnen worden weergegeven in Azure Portal.
Waarschuwing
Met Playwright Workspaces worden kosten in rekening gebracht op basis van het totale aantal verbruikte testminuten. Als u een eerste gebruiker bent of aan de slag gaat met een gratis proefversie, kunt u beginnen met het uitvoeren van één test op schaal in plaats van uw volledige testpakket om te voorkomen dat u uw gratis testminuten uitgeput raakt.
Nadat u hebt gevalideerd dat de test is uitgevoerd, kunt u de belasting van de test geleidelijk verhogen door meer tests met de service uit te voeren.
U kunt één test met de service uitvoeren met behulp van de volgende opdrachtregel:
npx playwright test {name-of-file.spec.ts} --config=playwright.service.config.ts
Testuitvoeringen en resultaten weergeven
Playwright kan uitgebreide testartefacten verzamelen, zoals logboeken, traceringen en schermopnamen bij elke testuitvoering. Zie de Playwright-documentatie voor meer informatie over het weergeven van testartefacten in uw CI-pijplijn.
Verwante inhoud
U hebt een continue end-to-end-testwerkstroom ingesteld om uw Playwright-tests op schaal uit te voeren in browsers die in de cloud worden gehost.