Condividi tramite


Avvio rapido: configurare test end-to-end continui con Microsoft Playwright Testing Anteprima

In questa guida introduttiva si configurano test end-to-end continui con Microsoft Playwright Testing Preview 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 Microsoft Playwright Testing.

Importante

Microsoft Playwright Testing è attualmente in anteprima. Vedere le condizioni per l'utilizzo supplementari per le anteprime di Microsoft Azure per termini legali aggiuntivi che si applicano a funzionalità di Azure in versione beta, in anteprima o in altro modo non ancora disponibili a livello generale.

Prerequisiti

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:

  1. Accedere al portale Playwright con l'account Azure.

  2. Nella home page dell'area di lavoro, selezionare Visualizza guida alla configurazione.

    Suggerimento

    Se sono presenti più aree di lavoro, è possibile passare a un'altra area di lavoro selezionando il nome dell'area di lavoro nella parte superiore della pagina, quindi selezionare Gestisci tutte le aree di lavoro.

  3. 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.

  4. 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.

  1. Creare un nuovo file playwright.service.config.ts insieme al file playwright.config.ts.

    Facoltativamente, usare il file playwright.service.config.ts nel repository di esempio.

  2. Aggiungere il contenuto seguente:

    import { defineConfig } from '@playwright/test';
    import { getServiceConfig, ServiceOS } from '@azure/microsoft-playwright-testing';
    import config from './playwright.config';
    
    /* Learn more about service configuration at https://aka.ms/mpt/config */
    export default defineConfig(
      config,
      getServiceConfig(config, {
        exposeNetwork: '<loopback>',
        timeout: 30000,
        os: ServiceOS.LINUX,
        useCloudHostedBrowsers: true
      }),
      {
        /* 
        Playwright Testing service reporter is added by default.
        This will override any reporter options specified in the base playwright config.
        If you are using more reporters, please update your configuration accordingly.
        */
        reporter: [['list'], ['@azure/microsoft-playwright-testing/reporter']],
      }
    );
    

    Per impostazione predefinita, la configurazione del servizio consente di:

    • Accelerare le pipeline di compilazione eseguendo i test in parallelo usando browser ospitati nel cloud.
    • Semplificare la risoluzione dei problemi con facile accesso ai risultati dei test e agli artefatti pubblicati nel servizio.

    Tuttavia, è possibile scegliere di usare una di queste funzionalità o entrambe. Vedere Come usare le funzionalità del servizio e aggiornare il file di configurazione del servizio in base alle esigenze.

  3. 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 del servizio Microsoft Playwright Testing nella sezione devDependencies.

"devDependencies": {
    "@azure/microsoft-playwright-testing": "^1.0.0-beta.6"
}

Abilitare gli artefatti nella configurazione di Playwright

playwright.config.ts Nel file del progetto assicurarsi di raccogliere tutti gli artefatti necessari.

  use: {
    trace: 'on-first-retry',
    video:'retain-on-failure',
    screenshot:'on'
  },

Configurare la configurazione del servizio

  1. Creare un nuovo file PlaywrightServiceSetup.cs nella directory radice del progetto. Questo file facilita l'autenticazione del client con il servizio.

  2. Aggiungere il contenuto seguente:

    using Azure.Developer.MicrosoftPlaywrightTesting.NUnit;
    using NUnit.Framework;
    
    namespace PlaywrightTests; // Remember to change this as per your project namespace
    
    [SetUpFixture]
    public class PlaywrightServiceSetup : PlaywrightServiceNUnit { };
    
  3. Salvare ed eseguire il commit del file nel repository del codice sorgente.

Installare il pacchetto del servizio

Nel progetto installare il pacchetto Microsoft Playwright Testing.

dotnet add package Azure.Developer.MicrosoftPlaywrightTesting.NUnit --prerelease

Questo comando aggiorna il file del progetto aggiungendo i dettagli del pacchetto del csproj servizio alla ItemGroup sezione . Ricordarsi di eseguire il commit di queste modifiche.

  <ItemGroup>
    <PackageReference Include="Azure.Developer.MicrosoftPlaywrightTesting.NUnit" Version="1.0.0-beta.2" />
  </ItemGroup>

Aggiungere o aggiornare .runsettings il file per il progetto.

Se non sono ancora stati configurati i test Playwright per l'esecuzione con il servizio, aggiungere .runsettings il file al repository. Nel passaggio successivo si specifica quindi questo file di configurazione del servizio nell'interfaccia della riga di comando (CLI) Playwright.

  1. Creare un nuovo .runsettings file.

    Facoltativamente, usare il file .runsettings nel repository di esempio.

  2. Aggiungere il contenuto seguente:

    <?xml version="1.0" encoding="utf-8"?>
    <RunSettings>
        <TestRunParameters>
            <!-- The below parameters are optional -->
            <Parameter name="Os" value="linux" />
            <!--<Parameter name="RunId" value="sample-run-id1" />-->
            <Parameter name="ServiceAuthType" value="EntraId" />
            <Parameter name="UseCloudHostedBrowsers" value="true" />
            <Parameter name="AzureTokenCredentialType" value="DefaultAzureCredential" />
            <!--<Parameter name="ManagedIdentityClientId" value="{clientId-value}" />-->
            <Parameter name="EnableGitHubSummary" value="false" />
            <!--<Parameter name="ExposeNetwork" value="*" />-->
        </TestRunParameters>
      <!-- NUnit adapter -->  
      <NUnit>
        <!-- Adjust parallel workers, parallel worker would also be bound by number of unit test files -->
        <NumberOfTestWorkers>10</NumberOfTestWorkers>
      </NUnit>
      <!-- General run configuration -->
      <RunConfiguration>
        <EnvironmentVariables>
          <!-- For debugging selectors, it's recommend to set the following environment variable -->
            <!--<DEBUG>pw:api*</DEBUG>--> 
        </EnvironmentVariables>
      </RunConfiguration>
      <!-- Playwright -->  
      <Playwright>
        <BrowserName>chromium</BrowserName>
        <ExpectTimeout>5000</ExpectTimeout>
        <LaunchOptions>
          <Headless>false</Headless>
          <!--Channel>msedge</Channel-->
        </LaunchOptions>
      </Playwright>
        <LoggerRunSettings>
            <Loggers>
                <!--microsoft playwright testing service logger for reporting -->
                <Logger friendlyName="microsoft-playwright-testing" enabled="True" />
                <!--could enable any logger additionally -->
                <Logger friendlyName="trx" enabled="false" />
            </Loggers>
        </LoggerRunSettings>
    </RunSettings>
    

    Le impostazioni in questo file consentono di:

    • Accelerare le pipeline di compilazione eseguendo i test in parallelo usando browser ospitati nel cloud.
    • Pubblicare i risultati dei test e gli artefatti nel servizio per una risoluzione dei problemi più rapida.

    Tuttavia, è possibile scegliere di usare una di queste funzionalità o entrambe. Vedere Come usare le funzionalità del servizio e aggiornare il file di configurazione del servizio in base alle esigenze.

  3. Salvare ed eseguire il commit del file nel repository del codice sorgente.

Abilitare gli artefatti nella configurazione di Playwright

Configurare Playwright per acquisire elementi come screenshot, video e tracce.

Dopo aver raccolto questi artefatti, collegarli a TestContext per assicurarsi che siano disponibili nei report di test. Per altre informazioni, vedere il progetto di esempio per NUnit.

Configurare l'autenticazione

Il computer CI che esegue test Playwright deve eseguire l'autenticazione con il servizio Playwright Testing per ottenere i browser per eseguire i test e pubblicare i risultati e gli artefatti del 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 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 Owner ruolo o Contributor all'entità servizio creata nel passaggio precedente. Questi ruoli devono essere assegnati nell'area di lavoro Playwright Testing. 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

Creare segreti di GitHub
  • Aggiungere i valori ottenuti nel passaggio precedente come segreti al repository GitHub. Vedere Configurare GitHub Action Secret.See set up GitHub Action Secret. 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 client
AZURE_SUBSCRIPTION_ID ID sottoscrizione
AZURE_TENANT_ID Directory (Tenant) ID

Nota

Per una maggiore sicurezza, è consigliabile usare i segreti 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 Testing 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.

  1. L'autenticazione tramite token di accesso è disabilitata per impostazione predefinita. Per usare, abilitare l'autenticazione basata su token di accesso.

  2. Configurare l'autenticazione usando i token di accesso.

  3. 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 di 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.

  1. Aprire la definizione del flusso di lavoro CI

  2. Aggiungere i passaggi seguenti per eseguire i test Playwright in Microsoft Playwright Testing.

    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 (Microsoft Playwright Testing)
      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 Microsoft Playwright Testing
                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. Passare il .runsettings file come parametro di input per l'interfaccia della riga di comando di Playwright. Per configurare l'ambiente, specificare le variabili di ambiente.

  1. Aprire la definizione del flusso di lavoro CI.

  2. Aggiungere i passaggi seguenti per eseguire i test Playwright in Microsoft Playwright Testing.

    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 Microsoft Playwright Testing
              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 --settings:.runsettings --logger "microsoft-playwright-testing" -- 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. Salvare ed eseguire il commit delle modifiche.

    Quando viene attivato il flusso di lavoro CI, i test Playwright vengono eseguiti nell'area di lavoro Microsoft Playwright Testing nei browser ospitati nel cloud in 20 ruoli di lavoro paralleli. I risultati e gli artefatti raccolti vengono pubblicati nel servizio e possono essere visualizzati nel portale del servizio.

Le impostazioni per l'esecuzione del test possono essere definite nel .runsettings file. Per altre informazioni, vedere Come usare le opzioni del pacchetto del servizio

Nota

La funzionalità di creazione di report è abilitata per impostazione predefinita per le aree di lavoro esistenti. L'implementazione viene eseguita in più fasi e richiederà alcuni giorni. Per evitare errori, verificare che l'impostazione Rich diagnostics using reporting sia ATTIVA per l'area di lavoro prima di procedere. Per altre informazioni, vedere Abilitare la creazione di report per l'area di lavoro.

Attenzione

Con Microsoft Playwright Testing, vengono addebitati i costi in base al numero totale di minuti di test usati e ai risultati dei test pubblicati. 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 e i risultati dei 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 e i risultati dei test nel portale Playwright

È ora possibile risolvere i problemi relativi alla pipeline CI nel portale Playwright,

  1. Al termine dell'esecuzione del test, viene generato un collegamento al portale Playwright. Aprire questo collegamento per visualizzare i risultati dettagliati dei test e gli artefatti associati. Il portale visualizza informazioni essenziali, tra cui:

    • Dettagli della compilazione CI
    • Stato complessivo dell'esecuzione dei test
    • ID commit collegato all'esecuzione del test

    Screenshot che mostra l'elenco dei test nell'esecuzione del test.

  2. Il portale Playwright fornisce tutte le informazioni necessarie per la risoluzione dei problemi. È possibile:

    • Passare da un tentativo all'altro.
    • Visualizzare log degli errori dettagliati, passaggi di test e artefatti allegati, ad esempio screenshot o video.
    • Passare direttamente al Visualizzatore di traccia per un'analisi più approfondita.

    Screenshot che mostra l'anteprima di un test.

  3. Il Visualizzatore tracce consente di eseguire visivamente l'esecuzione del test. È possibile:

    • Usare la sequenza temporale per passare il puntatore del mouse sui singoli passaggi, rivelando lo stato della pagina prima e dopo ogni azione.
    • Esaminare i log dettagliati, gli snapshot DOM, l'attività di rete, gli errori e l'output della console per ogni passaggio.

    Screenshot che mostra il visualizzatore di traccia.

  1. Al termine dell'esecuzione del test, si ottiene un collegamento al portale Playwright nel terminale. Aprire questo collegamento per visualizzare i risultati dettagliati dei test e gli artefatti associati. Il portale visualizza informazioni essenziali, tra cui:

    • Dettagli della compilazione CI
    • Stato complessivo dell'esecuzione dei test
    • ID commit collegato all'esecuzione del test

    Screenshot che mostra l'elenco dei test nell'esecuzione del test.

  2. Il portale Playwright fornisce tutte le informazioni necessarie per la risoluzione dei problemi. È possibile:

    • Visualizzare log degli errori dettagliati e artefatti allegati, ad esempio screenshot o video.
    • Passare direttamente al Visualizzatore di traccia per un'analisi più approfondita.

    Screenshot che mostra l'anteprima di un test.

Nota

Alcuni metadati, ad esempio il proprietario, la descrizione e la categoria, non vengono attualmente visualizzati nel dashboard del servizio. Se sono presenti informazioni aggiuntive da visualizzare, inviare un problema di GitHub nel repository.

  1. Il Visualizzatore tracce consente di eseguire visivamente l'esecuzione del test. È possibile:

    • Usare la sequenza temporale per passare il puntatore del mouse sui singoli passaggi, rivelando lo stato della pagina prima e dopo ogni azione.
    • Esaminare i log dettagliati, gli snapshot DOM, l'attività di rete, gli errori e l'output della console per ogni passaggio.

    Screenshot che mostra il visualizzatore di traccia.

Suggerimento

È possibile usare le funzionalità del servizio Microsoft Playwright Testing in modo indipendente. È possibile pubblicare i risultati dei test nel portale senza usare la funzionalità dei browser ospitati nel cloud ed è anche possibile usare solo browser ospitati nel cloud per accelerare il gruppo di test senza pubblicare i risultati dei test. Per informazioni dettagliate, vedere Come usare le funzionalità del servizio.

Nota

I risultati e gli artefatti dei test pubblicati vengono conservati nel servizio per 90 giorni. Dopo questo periodo, vengono eliminati automaticamente.

È 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.