Compartilhar via


Use os Relatórios do Microsoft Playwright Testing com fragmentação de Playwright

Neste artigo, você aprenderá a usar o recurso de relatório do serviço Microsoft Playwright Testing com execuções de teste que usam recursos de fragmentação do Playwright.

A fragmentação do Playwright permite que você divida seu conjunto de testes para ser executado em vários computadores simultaneamente. Esse recurso ajuda a executar testes em paralelo.

Você pode usar o recurso de relatório do Playwright Testing para obter um relatório consolidado de uma execução de teste com fragmentação. Garanta que o runId da execução de teste seja o mesmo em todos os fragmentos.

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

Atualize o arquivo de configuração de serviço de playwright

Adicione ou atualize runId para o arquivo playwright.service.config.ts na configuração.


export default defineConfig(
  config,
  getServiceConfig(config, {
  runId: process.env.PLAYWRIGHT_SERVICE_RUN_ID, //Set runId for the test run
  }),
);

Você pode usar a variável PLAYWRIGHT_SERVICE_RUN_ID em sua configuração para garantir que o runId permaneça igual em todos os fragmentos.

Definir variáveis

A configuração de runId é usada como um identificador pelo serviço do Playwright Testing para distinguir entre execuções de teste. Os resultados de várias execuções com o mesmo runId são relatados para a mesma execução no portal do Playwright.

Por padrão, uma execução de teste que usa o recurso de relatório gera automaticamente uma runId exclusiva, a menos que você defina explicitamente o valor por conta própria. Se o valor da variável permanecer igual em execuções, os resultados serão relatados juntos na mesma execução no portal do Playwright.

Dica

Se você usar os navegadores hospedados na nuvem fornecidos pelo serviço Microsoft Playwright Testing para executar seus testes, talvez você já tenha definido essa variável. Para evitar substituições, certifique-se de defini-lo apenas uma vez.

Ao usar a fragmentação, verifique se a mesma runId está definida em todos os fragmentos para que os resultados sejam relatados juntos. Use a variável PLAYWRIGHT_SERVICE_RUN_ID e defina o mesmo valor em todos os fragmentos.

Aqui está um exemplo de como você pode defini-lo em seu pipeline por meio do GitHub Actions.

  name: Playwright Tests (Microsoft Playwright Testing)
  on:
    push:
      branches: [ main, master ]
    pull_request:
      branches: [ main, master ]
    workflow_dispatch:
      strategy:
          fail-fast: false
          matrix:
          shardIndex: [1, 2, 3, 4]
          shardTotal: [4]
  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@v3
      - uses: actions/setup-node@v3
        with:
          node-version: 18
        # This step is to sign-in to Azure to run tests from GitHub Action workflow.
        # You can choose how 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 }} # Required when using Microsoft Entra ID to authenticate
          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_RUN_ID: ${{ github.run_id }}-${{ github.run_attempt }}-${{ github.sha } #This Run_ID will be unique and will remain same across all shards
        run: npx playwright test --shard=${{ matrix.shardIndex }}/${{ matrix.shardTotal }}