Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In questa guida introduttiva si configurano test end-to-end continui con Playwright Workspaces per verificare che l'app Web venga eseguita correttamente in browser e sistemi operativi diversi con ogni commit del codice e risolvere i problemi nei test con facilità usando il dashboard del servizio. Informazioni su come aggiungere i test Playwright a un flusso di lavoro di integrazione continua (CI), ad esempio GitHub Actions, Azure Pipelines o altre piattaforme CI.
Al termine di questa guida introduttiva, è disponibile un flusso di lavoro CI che esegue il gruppo di test Playwright su larga scala e contribuisce alla risoluzione dei problemi dei test con facilità con Playwright Workspaces.
Prerequisiti
Un account Azure con una sottoscrizione attiva. Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
Area di lavoro Playwright. Completare la guida introduttiva: eseguire test Playwright su larga scala e creare un'area di lavoro.
- Un account GitHub. Se non si dispone di un account GitHub, è possibile crearne uno gratuitamente.
- Repository GitHub che contiene le specifiche di test Playwright e il flusso di lavoro di GitHub Actions. Per creare un repository, vedere Creazione di un nuovo repository.
- Flusso di lavoro di GitHub Actions. Per informazioni su come iniziare a usare GitHub Actions, vedere Creare il primo flusso di lavoro
- Configurare l'autenticazione da GitHub Actions ad Azure. Vedere Usare GitHub Actions per connettersi ad Azure.
Ottenere l'URL dell'endpoint dell'area del servizio
Nella configurazione del servizio è necessario fornire l'endpoint di servizio specifico dell'area. L'endpoint dipende dall'area di Azure selezionata durante la creazione dell'area di lavoro.
Per ottenere l'URL dell'endpoint di servizio e archiviarlo come segreto del flusso di lavoro CI, seguire questa procedura:
Accedere al portale di Azure con l'account Azure e passare all'area di lavoro.
Selezionare la pagina Attività iniziali.
In Aggiungere l'endpoint dell'area nel programma di installazione, copiare l'URL dell'endpoint di servizio.
L'URL dell'endpoint corrisponde all'area di Azure selezionata durante la creazione dell'area di lavoro.
Archiviare l'URL dell'endpoint di servizio in un segreto del flusso di lavoro CI:
Nome segreto Valore PLAYWRIGHT_SERVICE_URL Incollare l'URL dell'endpoint copiato in precedenza.
Aggiungere file di configurazione del servizio
Se non sono configurati test Playwright per l'esecuzione con il servizio, aggiungere un file di configurazione del servizio al repository. Nel passaggio successivo si specifica quindi questo file di configurazione del servizio nell'interfaccia della riga di comando (CLI) Playwright.
Creare un nuovo file
playwright.service.config.tsinsieme al fileplaywright.config.ts.Facoltativamente, usare il file
playwright.service.config.tsnel repository di esempio.Aggiungere il contenuto seguente:
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(), }) );Per impostazione predefinita, la configurazione del servizio consente di accelerare le pipeline di compilazione eseguendo test in parallelo usando browser ospitati nel cloud.
Salvare ed eseguire il commit del file nel repository del codice sorgente.
Aggiornare il file package.json
Aggiornare il file package.json nel repository per aggiungere dettagli sul pacchetto Playwright Workspaces nella sezione devDependencies.
"devDependencies": {
"@azure/playwright": "latest"
}
Installare il pacchetto del servizio
Nel progetto installare il pacchetto Playwright Workspaces.
dotnet add package Azure.Developer.Playwright.NUnit
Questo comando aggiorna il file csproj del progetto aggiungendo i dettagli del pacchetto del servizio alla sezione ItemGroup. Ricordarsi di eseguire il commit delle modifiche.
<ItemGroup>
<PackageReference Include="Azure.Developer.Playwright.NUnit" Version="1.0.0" />
</ItemGroup>
Configurare la configurazione del servizio
- Creare un nuovo file
PlaywrightServiceNUnitSetup.csnella directory radice del progetto. Questo file facilita l'autenticazione del client con il servizio. - Aggiungere il contenuto seguente:
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
}
}
- Salvare ed eseguire il commit del file nel repository del codice sorgente.
Configurare l'autenticazione
Il computer CI che esegue test Playwright deve eseguire l'autenticazione con il servizio Playwright Workspaces per ottenere i browser per l'esecuzione dei test.
Il servizio offre due metodi di autenticazione: Microsoft Entra ID e token di accesso. È consigliabile usare Microsoft Entra ID per autenticare le pipeline.
Configurare l'autenticazione con Microsoft Entra ID
Se si usa GitHub Actions, è possibile connettersi al servizio usando GitHub OpenID Connect. Seguire la procedura per configurare l'integrazione:
Prerequisiti
Opzione 1: applicazione Microsoft Entra
Creare un'applicazione Microsoft Entra con un'entità servizio tramite il portale di Azure, l'interfaccia della riga di comando di Azure o Azure PowerShell.
Copiare i valori per ID client, ID sottoscrizione e ID directory (tenant) da usare più avanti nel flusso di lavoro di GitHub Actions.
Assegnare il ruolo
OwneroContributorall'entità servizio creata nel passaggio precedente. Questi ruoli devono essere assegnati nell'area di lavoro Playwright. Per altri dettagli, vedere come gestire l'accesso.Configurare una credenziale di identità federata in un'applicazione Microsoft Entra per considerare attendibili i token rilasciati da GitHub Actions nel repository GitHub.
Opzione 2: identità gestita assegnata dall'utente
Copiare i valori per ID client, ID sottoscrizione e ID directory (tenant) da usare più avanti nel flusso di lavoro di GitHub Actions.
Assegnare il ruolo
OwneroContributorall'identità gestita assegnata dall'utente creata nel passaggio precedente. Questi ruoli devono essere assegnati nell'area di lavoro Playwright. Per altri dettagli, vedere come gestire l'accesso.Configurare una credenziale di identità federata in un'identità gestita assegnata dall'utente per considerare attendibili i token emessi da GitHub Actions nel repository GitHub.
Creare segreti di GitHub
- Aggiungere i valori ottenuti nel passaggio precedente come segreti al repository GitHub. Vedere configura il segreto di GitHub Action. Queste variabili vengono usate nel flusso di lavoro di GitHub Action nei passaggi successivi.
| Segreto GitHub | Origine (applicazione Microsoft Entra o identità gestita) |
|---|---|
AZURE_CLIENT_ID |
ID cliente |
AZURE_SUBSCRIPTION_ID |
ID sottoscrizione |
AZURE_TENANT_ID |
ID della directory (tenant) |
Annotazioni
Per una maggiore sicurezza, è consigliabile usare i segreti di GitHub per archiviare valori sensibili anziché includerli direttamente nel file del flusso di lavoro.
Configurare l'autenticazione tramite token di accesso
Attenzione
È consigliabile usare Microsoft Entra ID per l'autenticazione al servizio. Se si usano token di accesso, vedere Come gestire i token di accesso
È possibile generare un token di accesso dall'area di lavoro Playwright e usarlo nella configurazione. Tuttavia, è consigliabile usare Microsoft Entra ID per l'autenticazione per la sua sicurezza avanzata. I token di accesso, sebbene siano pratici, funzionano come password di lunga durata e sono più soggetti a essere compromessi.
L'autenticazione tramite token di accesso è disabilitata per impostazione predefinita. Per l’utilizzo, Abilitare l'autenticazione basata su token di accesso.
Archiviare il token di accesso in un segreto del flusso di lavoro CI e usarlo nel flusso di lavoro GitHub Actions o nel file yaml di Azure Pipeline.
| Nome segreto | Valore |
|---|---|
| PLAYWRIGHT_SERVICE_ACCESS_TOKEN | Incollare il valore del Token di accesso creato in precedenza. |
Aggiornare la definizione del flusso di lavoro
Aggiornare la definizione del flusso di lavoro CI per eseguire i test Playwright con l'interfaccia della riga di comando di Playwright. Passare il file di configurazione del servizio come parametro di input per l'interfaccia della riga di comando di Playwright. Per configurare l'ambiente, specificare le variabili di ambiente.
Aprire la definizione del flusso di lavoro CI.
Aggiungere i passaggi seguenti per eseguire i test Playwright in Playwright Workspaces.
I passaggi seguenti descrivono le modifiche del flusso di lavoro per GitHub Actions o Azure Pipelines. Analogamente, è possibile eseguire i test Playwright usando l'interfaccia della riga di comando di Playwright in altre piattaforme 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
Aggiornare la definizione del flusso di lavoro CI per eseguire i test Playwright con l'interfaccia della riga di comando di Playwright NUnit. Per configurare l'ambiente, specificare le variabili di ambiente.
Aprire la definizione del flusso di lavoro CI.
Aggiungere i passaggi seguenti per eseguire i test Playwright in Playwright Workspaces.
I passaggi seguenti descrivono le modifiche del flusso di lavoro per GitHub Actions o Azure Pipelines. Analogamente, è possibile eseguire i test Playwright usando l'interfaccia della riga di comando di Playwright in altre piattaforme 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
Salvare ed eseguire il commit delle modifiche.
Quando viene attivato il flusso di lavoro CI, i test Playwright vengono eseguiti nell'area di lavoro Playwright nei browser ospitati nel cloud in 20 ruoli di lavoro paralleli. I risultati vengono pubblicati nel servizio e possono essere visualizzati nel portale di Azure.
Attenzione
Con Playwright Workspaces vengono addebitati i costi in base al numero totale di minuti di test utilizzati. Se si utilizza il servizio per la prima volta o si inizia a usare una versione di valutazione gratuita, è possibile iniziare con l'esecuzione di un singolo test su larga scala anziché con il gruppo di test completo per evitare di esaurire i minuti di test gratuiti.
Dopo aver verificato che il test venga eseguito correttamente, è possibile aumentare gradualmente il carico di test eseguendo più test utilizzando il servizio.
È possibile eseguire un singolo test con il servizio usando la riga di comando seguente:
npx playwright test {name-of-file.spec.ts} --config=playwright.service.config.ts
Visualizzare le esecuzioni dei test e i risultati
Playwright può raccogliere artefatti di test avanzati come log, tracce e screenshot in ogni esecuzione dei test. Per informazioni su come visualizzare gli artefatti di test all'interno della pipeline CI, vedere la documentazione di Playwright.
Contenuti correlati
È stato configurato correttamente un flusso di lavoro di test end-to-end continuo per eseguire i test Playwright su larga scala nei browser ospitati nel cloud.