Compartilhar via


Início Rápido: Configurar testes contínuos de ponta a ponta com o Microsoft Playwright Testing Preview

Neste início rápido, você configurará testes contínuos de ponta a ponta com o Microsoft Playwright Testing Preview para validar se seu aplicativo Web é executado corretamente em diferentes navegadores e sistemas operacionais com cada confirmação de código e solucionar problemas de testes facilmente usando o painel de serviços. Saiba como adicionar seus testes do Playwright a um fluxo de trabalho de CI (integração contínua), como GitHub Actions, Azure Pipelines ou outras plataformas de CI.

Depois de concluir este início rápido, você tem um fluxo de trabalho de CI que executa seu conjunto de testes do Dramaturgo em escala e o ajuda a solucionar problemas de testes facilmente com o Microsoft Playwright Testing.

Importante

O Microsoft Playwright Testing está atualmente em pré-visualização. Para os termos legais que se aplicam aos recursos do Azure que estão em versão beta, versão prévia ou que, de outra forma, ainda não foram lançados em disponibilidade geral, confira os Termos de Uso Complementares para Versões Prévias do Microsoft Azure.

Pré-requisitos

Obter a URL do ponto de extremidade da região de serviço

Na configuração do serviço, você precisa fornecer o ponto de extremidade de serviço específico da região. O ponto de extremidade depende da região do Azure que você selecionou ao criar o espaço de trabalho.

Para obter a URL do ponto de extremidade de serviço e armazená-la como um segredo de fluxo de trabalho de CI, execute as seguintes etapas:

  1. Entre no portal do Playwright com sua conta do Azure.

  2. Na home page do workspace, selecione Exibir guia de instalação.

    Dica

    Se você tiver vários espaços de trabalho, poderá alternar para outro espaço de trabalho selecionando o nome do espaço de trabalho na parte superior da página e selecionando Gerenciar todos os espaços de trabalho.

  3. Em Adicionar ponto de extremidade de região na configuração, copie a URL do ponto de extremidade de serviço.

    A URL do ponto de extremidade corresponde à região do Azure que você selecionou ao criar o espaço de trabalho.

  4. Armazene a URL do ponto de extremidade de serviço em um segredo de fluxo de trabalho de CI:

    Nome do segredo Valor
    PLAYWRIGHT_SERVICE_URL Cole a URL do ponto de extremidade copiada anteriormente.

Adicionar arquivo de configuração de serviço

Se você não tiver testes do Playwright configurados para serem executados com o serviço, adicione um arquivo de configuração de serviço ao seu repositório. Na próxima etapa, especifique esse arquivo de configuração de serviço na CLI do Playwright.

  1. Crie um novo arquivo playwright.service.config.ts ao lado do arquivo playwright.config.ts.

    Opcionalmente, use o arquivo playwright.service.config.ts no repositório de exemplo.

  2. Adicione o seguinte conteúdo a ele:

    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']],
      }
    );
    

    Por padrão, a configuração do serviço permite que você:

    • Acelere os pipelines de build executando testes em paralelo usando navegadores hospedados na nuvem.
    • Simplifique a solução de problemas com fácil acesso aos resultados de teste e artefatos publicados no serviço.

    No entanto, você pode optar por usar qualquer um desses recursos ou ambos. Confira Como usar recursos de serviço e atualizar o arquivo de configuração de serviço de acordo com suas necessidades.

  3. Salve e confirme o arquivo no repositório de código-fonte.

Atualizar o arquivo package.json

Atualize o arquivo package.json no seu repositório para adicionar detalhes sobre o pacote do serviço Microsoft Playwright Testing na seção devDependencies.

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

Habilitar artefatos na configuração do Playwright

No arquivo playwright.config.ts do projeto, verifique se você está coletando todos os artefatos necessários.

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

Definir a configuração do serviço

  1. Crie um novo arquivo PlaywrightServiceSetup.cs no diretório raiz do projeto. Esse arquivo facilita a autenticação do seu cliente com o serviço.

  2. Adicione o seguinte conteúdo a ele:

    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. Salve e confirme o arquivo no repositório de código-fonte.

Instalar o pacote de serviço

Em seu projeto, instale o pacote do Microsoft Playwright Testing.

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

Esse comando atualiza o arquivo csproj do seu projeto adicionando os detalhes do pacote de serviço à seção ItemGroup. Lembre-se de confirmar essas alterações.

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

Adicione ou atualize o arquivo .runsettings para seu projeto.

Caso ainda não tenha configurado seus testes do Playwright para executá-los com o serviço, adicione o arquivo .runsettings ao seu repositório. Na próxima etapa, especifique esse arquivo de configuração de serviço na CLI do Playwright.

  1. Crie um arquivo .runsettings.

    Opcionalmente, use o arquivo .runsettings no repositório de exemplo.

  2. Adicione o seguinte conteúdo a ele:

    <?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>
    

    As configurações nesse arquivo permitem que você:

    • Acelere os pipelines de build executando testes em paralelo usando navegadores hospedados na nuvem.
    • Publique os resultados do teste e os artefatos no serviço para obter uma solução de problemas mais rápida.

    No entanto, você pode optar por usar qualquer um desses recursos ou ambos. Confira Como usar recursos de serviço e atualizar o arquivo de configuração de serviço de acordo com suas necessidades.

  3. Salve e confirme o arquivo no repositório de código-fonte.

Habilitar artefatos na configuração do Playwright

Configure o Playwright para capturar artefatos como capturas de tela, vídeos e rastros.

Depois de coletar esses artefatos, anexe-os ao TestContext para garantir que estejam disponíveis nos seus relatórios de teste. Para mais informações, veja nosso projeto de exemplo para NUnit.

Configurar a autenticação

A máquina de CI que executa os testes do Playwright deve se autenticar com o serviço de testes do Playwright para que os navegadores executem os testes e publiquem os resultados e artefatos dos testes.

O serviço oferece dois métodos de autenticação: Microsoft Entra ID e Tokens de Acesso. Recomendamos fortemente usar o Microsoft Entra ID para autenticar seus pipelines.

Configurar a autenticação usando o Microsoft Entra ID

Se estiver usando o GitHub Actions, você pode se conectar ao serviço usando o GitHub OpenID Connect. Siga as etapas para configurar a integração:

Pré-requisitos

Opção 1: Aplicativo Microsoft Entra

Opção 2: Identidade gerenciada atribuída pelo usuário

Criar segredos do GitHub
  • Adicione os valores que você obteve na etapa anterior como segredos ao seu repositório GitHub. Veja configurar o GitHub Action Secret. Essas variáveis ​​são usadas no fluxo de trabalho do GitHub Action em etapas subsequentes.
Segredo do GitHub Origem (Microsoft Entra Application ou Identidade Gerenciada)
AZURE_CLIENT_ID ID do Cliente
AZURE_SUBSCRIPTION_ID ID da assinatura
AZURE_TENANT_ID ID do diretório (locatário)

Observação

Para maior segurança, é altamente recomendável usar o GitHub Secrets para armazenar valores confidenciais em vez de incluí-los diretamente no seu arquivo de fluxo de trabalho.

Configure a autenticação usando tokens de acesso

Cuidado

É altamente recomendável usar o Microsoft Entra ID para autenticação no serviço. Se você estiver usando tokens de acesso, veja Como gerenciar tokens de acesso

Você pode gerar um token de acesso a partir do seu workspace do Playwright Testing e usá-lo em sua configuração. No entanto, recomendamos fortemente o Microsoft Entra ID para autenticação devido à sua segurança aprimorada. Os tokens de acesso, embora convenientes, funcionam como senhas de longa duração  são mais suscetíveis a serem comprometidos.

  1. A autenticação com tokens de acesso está desabilitada por padrão. Para usar, Habilite a autenticação baseada em token de acesso.

  2. Configurar autenticação usando tokens de acesso.

  3. Armazene o token de acesso em um segredo de fluxo de trabalho de CI e use-o no fluxo de trabalho do GitHub Actions ou no arquivo yaml do Azure Pipeline.

Nome do segredo Valor
PLAYWRIGHT_SERVICE_ACCESS_TOKEN Cole o valor do Token de Acesso que você criou anteriormente.

Atualizar a definição de fluxo de trabalho

Atualize a definição de fluxo de trabalho de CI para executar seus testes de Playwright com a CLI do Playwright. Passe o arquivo de configuração de serviço como um parâmetro de entrada para a CLI do Playwright. Configure seu ambiente especificando variáveis de ambiente.

  1. Abrir a definição de fluxo de trabalho de CI

  2. Adicione as etapas a seguir para executar seus testes do Dramaturgo no Microsoft Playwright Testing.

    As etapas a seguir descrevem as alterações de fluxo de trabalho do GitHub Actions ou do Azure Pipelines. Da mesma forma, você pode executar seus testes de Playwright usando a CLI do Dramaturgo em outras plataformas de 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
    

Atualize a definição de fluxo de trabalho de CI para executar seus testes de Playwright com a CLI do Playwright NUnit. Passe o arquivo .runsettings como um parâmetro de entrada para a CLI do Playwright. Configure seu ambiente especificando variáveis de ambiente.

  1. Abra a definição de fluxo de trabalho de CI.

  2. Adicione as etapas a seguir para executar seus testes do Dramaturgo no Microsoft Playwright Testing.

    As etapas a seguir descrevem as alterações de fluxo de trabalho do GitHub Actions ou do Azure Pipelines. Da mesma forma, você pode executar seus testes de Playwright usando a CLI do Dramaturgo em outras plataformas de 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. Salve e confirme suas alterações.

    Quando o fluxo de trabalho de CI é disparado, os testes do Dramaturgo são executados no espaço de trabalho do Microsoft Playwright Testing dos navegadores hospedados na nuvem, em 20 trabalhos paralelos. Os resultados e artefatos coletados são publicados no serviço e podem ser exibidos no portal do serviço.

As configurações da execução de teste podem ser definidas no arquivo .runsettings. Para obter mais informações, confira como usar opções de pacote de serviço

Observação

O recurso de relatórios está habilitado por padrão nos espaços de trabalho existentes. Isso está sendo distribuído em fases e levará alguns dias. Para evitar falhas, confirme se a Rich diagnostics using reportingconfiguração está ATIVADA para seu espaço de trabalho antes de continuar. Para obter mais informações, confira Habilitar relatórios para workspace.

Cuidado

Com o Microsoft Playwright Testing, você é cobrado com base no número total de minutos de teste consumidos e nos resultados de teste publicados. Se você for um usuário iniciante ou começar a usar uma avaliação gratuita, você pode começar com a execução de um único teste em escala, em vez do seu pacote de testes completo para evitar esgotar seus minutos de teste gratuitos e resultados de teste.

Depois de validar que o teste é executado com êxito, você pode aumentar gradualmente a carga de teste executando mais testes com o serviço.

Você pode executar um teste individual com o serviço usando a seguinte linha de comando:

npx playwright test {name-of-file.spec.ts} --config=playwright.service.config.ts

Exibir execuções de teste e resultados no portal do Playwright

Agora você pode solucionar problemas do pipeline de CI no portal do Playwright,

  1. Após a conclusão da execução do teste, um link para o Portal do Playwright será gerado. Abra este link para exibir resultados de teste detalhados e artefatos associados. O portal exibe informações essenciais, incluindo:

    • Detalhes da build de CI
    • Status geral da execução do teste
    • A ID de confirmação vinculada à execução de teste

    Captura de tela que mostra a lista de testes na execução do teste.

  2. O portal do Playwright fornece todas as informações necessárias para solução de problemas. Você poderá:

    • Alternar entre novas tentativas.
    • Exiba logs de erros detalhados, etapas de teste e artefatos anexados, como capturas de tela ou vídeos.
    • Navegue diretamente até o Visualizador de Rastreamento para obter uma análise mais profunda.

    Captura de tela que mostra a pré-visualização de um teste.

  3. O Visualizador de Rastreamento permite que você percorra a execução do teste visualmente. Você poderá:

    • Use a linha do tempo para focalizar as etapas individuais, revelando o estado da página antes e depois de cada ação.
    • Inspecione logs detalhados, instantâneos do DOM, atividade de rede, erros e saída do console para cada etapa.

    Captura de tela que mostra o visualizador de rastreamento.

  1. Após a conclusão da execução do teste, você obtém um link para o portal do Playwright em seu terminal. Abra este link para exibir resultados de teste detalhados e artefatos associados. O portal exibe informações essenciais, incluindo:

    • Detalhes da build de CI
    • Status geral da execução do teste
    • A ID de confirmação vinculada à execução de teste

    Captura de tela que mostra a lista de testes na execução do teste.

  2. O portal do Playwright fornece todas as informações necessárias para solução de problemas. Você poderá:

    • Exiba logs de erros detalhados e artefatos anexados, como capturas de tela ou vídeos.
    • Navegue diretamente até o Visualizador de Rastreamento para obter uma análise mais profunda.

    Captura de tela que mostra a pré-visualização de um teste.

Observação

Alguns metadados, como o proprietário, a descrição e a categoria, atualmente não são exibidos no painel de serviço. Se houver informações adicionais que você gostaria de ver incluídas, envie um problema do GitHub em nosso repositório.

  1. O Visualizador de Rastreamento permite que você percorra a execução do teste visualmente. Você poderá:

    • Use a linha do tempo para focalizar as etapas individuais, revelando o estado da página antes e depois de cada ação.
    • Inspecione logs detalhados, instantâneos do DOM, atividade de rede, erros e saída do console para cada etapa.

    Captura de tela que mostra o visualizador de rastreamento.

Dica

Você pode usar os recursos do serviço Microsoft Playwright Testing de forma independente. Você pode publicar os resultados dos testes no portal sem usar o recurso de navegadores hospedados na nuvem e você também pode usar apenas os navegadores hospedados na nuvem para agilizar seu conjunto de testes sem publicar os resultados dos testes. Para obter detalhes, confira Como usar recursos de serviço.

Observação

Os resultados e artefatos do teste que você publicar são mantidos no serviço por 90 dias. Após esse período, eles são automaticamente excluídos.

Você configurou com êxito um fluxo de trabalho de teste de ponta a ponta contínuo para executar seus testes do Playwright em escala em navegadores hospedados na nuvem.