Partilhar via


Guia de início rápido: configure testes contínuos de ponta a ponta com o Microsoft Playwright Testing Preview

Neste início rápido, você configura 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ço. Saiba como adicionar seus testes de Playwright a um fluxo de trabalho de integração contínua (CI), como Ações do GitHub, Pipelines do Azure ou outras plataformas de CI.

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

Importante

O Microsoft Playwright Testing está atualmente em pré-visualização. Para obter os termos legais que se aplicam aos recursos do Azure que estão em versão beta, em visualização ou ainda não lançados em disponibilidade geral, consulte os Termos de Uso Suplementares para Visualizações do Microsoft Azure.

Pré-requisitos

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

Na configuração de 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 selecionada ao criar o espaço de trabalho.

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

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

  2. Na página inicial do espaço de trabalho, selecione Exibir guia de configuração.

    Gorjeta

    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, em seguida, selecionando Gerenciar todos os espaços de trabalho.

  3. Em Adicionar ponto de extremidade de região em sua 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 do serviço em um segredo de fluxo de trabalho de CI:

    Nome do segredo Value
    PLAYWRIGHT_SERVICE_URL Cole o URL do ponto de extremidade copiado anteriormente.

Adicionar arquivo de configuração de serviço

Se você não tiver testes de Playwright configurados para serem executados com o serviço, adicione um arquivo de configuração de serviço ao 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 playwright.config.ts arquivo.

    Opcionalmente, use o playwright.service.config.ts arquivo 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:

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

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

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

Atualizar arquivo package.json

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

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

Habilitar artefatos na configuração do Playwright

playwright.config.ts No arquivo do seu projeto, certifique-se de que você está coletando todos os artefatos necessários.

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

Configurar a configuração do serviço

  1. Crie um novo arquivo PlaywrightServiceSetup.cs no diretório raiz do seu projeto. Este ficheiro 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 em seu repositório de código-fonte.

Instalar pacote de serviço

No seu projeto, instale o pacote Microsoft Playwright Testing.

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

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

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

Adicione ou atualize .runsettings o arquivo para seu projeto.

Se você ainda não configurou seus testes de Playwright para executá-los com serviço, adicione .runsettings um arquivo ao repositório. Na próxima etapa, especifique esse arquivo de configuração de serviço na CLI do Playwright.

  1. Crie um novo .runsettings arquivo.

    Opcionalmente, use o .runsettings arquivo 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 neste arquivo permitem que você:

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

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

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

Ativar artefatos na configuração do Playwright

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

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

Configurar a autenticação

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

O serviço oferece dois métodos de autenticação: ID do Microsoft Entra e Tokens de Acesso. É altamente recomendável usar o Microsoft Entra ID para autenticar seus pipelines.

Configurar a autenticação usando o Microsoft Entra ID

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

Pré-requisitos

Opção 1: Aplicação Microsoft Entra

  • Crie um aplicativo Microsoft Entra com uma entidade de serviço pelo portal do Azure, CLI do Azure ou Azure PowerShell.

  • Copie os valores para ID do cliente, ID da assinatura e ID do diretório (locatário) para usar posteriormente no fluxo de trabalho das Ações do GitHub.

  • Atribua a Owner ou Contributor função à entidade de serviço criada na etapa anterior. Essas funções devem ser atribuídas no espaço de trabalho Teste de dramaturgia. Para obter mais detalhes, consulte como gerenciar o acesso.

  • Configure uma credencial de identidade federada em um aplicativo Microsoft Entra para confiar tokens emitidos pelo GitHub Actions em seu repositório GitHub.

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

  • Crie uma identidade gerenciada atribuída pelo usuário.

  • Copie os valores para ID do cliente, ID da assinatura e ID do diretório (locatário) para usar posteriormente no fluxo de trabalho das Ações do GitHub.

  • Atribua a Owner ou Contributor função à identidade gerenciada atribuída pelo usuário criada na etapa anterior. Essas funções devem ser atribuídas no espaço de trabalho Teste de dramaturgia. Para obter mais detalhes, consulte como gerenciar o acesso.

  • Configure uma credencial de identidade federada em uma identidade gerenciada atribuída pelo usuário para confiar tokens emitidos pelas Ações do GitHub em seu repositório do GitHub.

Criar segredos do GitHub
  • Adicione os valores obtidos na etapa anterior como segredos ao seu repositório GitHub. Consulte Configurar o Segredo de Ação do GitHub. Essas variáveis são usadas no fluxo de trabalho GitHub Action nas etapas subsequentes.
Segredo do GitHub Origem (Aplicação Microsoft Entra ou Identidade Gerida)
AZURE_CLIENT_ID ID de Cliente
AZURE_SUBSCRIPTION_ID ID de Subscrição
AZURE_TENANT_ID ID do diretório (locatário)

Nota

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

Configurar a autenticação usando tokens de acesso

Atenção

É altamente recomendável usar o Microsoft Entra ID para autenticação no serviço. Se estiver a utilizar tokens de acesso, consulte Como gerir tokens de acesso

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

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

  2. Configure a 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 de Ações do GitHub ou no arquivo yaml do Azure Pipeline.

Nome do segredo Value
PLAYWRIGHT_SERVICE_ACCESS_TOKEN Cole o valor do Token de Acesso criado anteriormente.

Atualizar a definição do fluxo de trabalho

Atualize a definição do 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. Você configura seu ambiente especificando variáveis de ambiente.

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

  2. Adicione as seguintes etapas para executar seus testes de Playwright no Microsoft Playwright Testing.

    As etapas a seguir descrevem as alterações de fluxo de trabalho para Ações do GitHub ou Pipelines do Azure. Da mesma forma, você pode executar seus testes de Playwright usando a CLI Playwright 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 do fluxo de trabalho de CI para executar seus testes de Playwright com a CLI do Playwright NUnit. Passe o .runsettings arquivo como um parâmetro de entrada para a CLI do Playwright. Você configura seu ambiente especificando variáveis de ambiente.

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

  2. Adicione as seguintes etapas para executar seus testes de Playwright no Microsoft Playwright Testing.

    As etapas a seguir descrevem as alterações de fluxo de trabalho para Ações do GitHub ou Pipelines do Azure. Da mesma forma, você pode executar seus testes de Playwright usando a CLI Playwright 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 é acionado, seus testes de Playwright são executados em seu espaço de trabalho Microsoft Playwright Testing em navegadores hospedados na nuvem, em 20 trabalhadores paralelos. Os resultados e artefatos coletados são publicados no serviço e podem ser visualizados no portal do serviço.

As configurações para sua execução de teste podem ser definidas no .runsettings arquivo. Para obter mais informações, consulte como usar as opções do pacote de serviço

Nota

O recurso de relatório é habilitado por padrão para espaços de trabalho existentes. Isso está sendo implementado em etapas e levará alguns dias. Para evitar falhas, confirme se Rich diagnostics using reporting a configuração está ATIVADA para seu espaço de trabalho antes de continuar. Para obter mais informações, consulte Habilitar relatórios para espaço de trabalho.

Atenção

Com o Microsoft Playwright Testing, você é cobrado com base no número total de minutos de teste consumidos e nos resultados do teste publicados. Se você é um usuário iniciante ou está começando com uma avaliação gratuita, você pode começar executando um único teste em escala em vez de seu conjunto 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 único teste com o serviço usando a seguinte linha de comando:

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

Veja as execuções de teste e os resultados no portal Playwright

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

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

    • Detalhes da construção CI
    • Status geral da execução do teste
    • O ID de confirmação vinculado à execução do teste

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

  2. O portal Playwright fornece todas as informações necessárias para a resolução de problemas. Pode:

    • Alternar entre tentativas.
    • Visualize 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 uma análise mais profunda.

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

  3. O Visualizador de rastreamento permite que você percorra visualmente a execução do teste. Pode:

    • Use a linha do tempo para passar o mouse sobre etapas individuais, revelando o estado da página antes e depois de cada ação.
    • Inspecione logs detalhados, instantâneos 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ê receberá um link para o portal Playwright no seu terminal. Abra este link para visualizar os resultados detalhados do teste e os artefatos associados. O portal apresenta informações essenciais, incluindo:

    • Detalhes da construção CI
    • Status geral da execução do teste
    • O ID de confirmação vinculado à execução do teste

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

  2. O portal Playwright fornece todas as informações necessárias para a resolução de problemas. Pode:

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

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

Nota

Alguns metadados, como o proprietário, a descrição e a categoria, 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 visualmente a execução do teste. Pode:

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

    Captura de tela que mostra o visualizador de rastreamento.

Gorjeta

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

Nota

Os resultados do teste e os artefatos que você publica são retidos no serviço por 90 dias. Depois disso, eles são excluídos automaticamente.

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