Compartilhar via


Determinar a configuração ideal do conjunto de testes

O Microsoft Playwright Testing Preview permite que você acelere a execução do teste de dramaturgo aumentando o paralelismo em escala de nuvem. Vários fatores afetam o tempo de conclusão do conjunto de testes. A determinação da configuração ideal para reduzir o tempo de conclusão do conjunto de testes é específica do aplicativo e requer experimentação. Este artigo explica os diferentes níveis para configurar o paralelismo para seus testes, os fatores que influenciam a duração do teste e como determinar sua configuração ideal para minimizar o tempo de conclusão do teste.

No Playwright, você pode executar testes em paralelo usando processos de trabalho. Usando o Microsoft Playwright Testing, você pode aumentar ainda mais o paralelismo usando navegadores hospedados na nuvem. Em geral, adicionar mais paralelismo reduz o tempo para concluir seu conjunto de testes. No entanto, a adição de mais processos de trabalho nem sempre resulta em tempos de conclusão do conjunto de testes mais curtos. Por exemplo, os recursos de computação da máquina cliente, a latência da rede ou a complexidade do teste também podem afetar a duração do teste.

O gráfico a seguir fornece um exemplo de execução de um conjunto de testes. Ao executar o conjunto de testes com o Microsoft Playwright Testing em vez de localmente, você pode aumentar significativamente o paralelismo e reduzir o tempo de conclusão do teste. Observe que, ao executar com o serviço, o tempo de conclusão atinge um limite mínimo, após o qual adicionar mais trabalhadores tem apenas um efeito mínimo. O gráfico também mostra como o uso de mais recursos de computação na máquina cliente afeta positivamente o tempo de conclusão do teste para testes em execução com o serviço.

Line chart that shows the relation between the number of parallel workers and the test suite completion time for different run environments.

Processos de trabalho

No dramaturgo, todos os testes são executados em processos de trabalho. Esses processos são processos de sistema operacional, executados de forma independente, em paralelo, orquestrados pelo executor do Teste do Dramaturgo. Todos os trabalhadores têm ambientes idênticos e cada processo inicia seu próprio navegador.

Geralmente, aumentar o número de trabalhadores paralelos pode reduzir o tempo necessário para concluir o conjunto de testes completo. Você pode aprender mais sobre o paralelismo do Teste de Dramaturgia na documentação do Dramaturgo.

Como mostrado anteriormente no gráfico, o tempo de conclusão do conjunto de testes não continua a diminuir à medida que você adiciona mais processos de trabalho. Existem outros fatores que influenciam a duração do conjunto de testes.

Executar testes localmente

Por padrão, @playwright/test limita o número de trabalhadores a 1/2 do número de núcleos de CPU em sua máquina. Você pode substituir o número de trabalhadores para executar o teste.

Quando você executa testes localmente, o número de processos de trabalho é limitado ao número de núcleos de CPU em sua máquina. Além de um certo ponto, adicionar mais trabalhadores leva à contenção de recursos, o que atrasa cada trabalhador e introduz a desfaçatez de teste.

Para substituir o número de trabalhadores usando o --workers sinalizador de linha de comando:

npx playwright test --workers=10

Para especificar o número de trabalhadores no playwright.config.ts uso da workers configuração:

export default defineConfig({
  ...
  workers: 10,
  ...
});

Executar testes com o serviço

Ao usar o Microsoft Playwright Testing, você pode aumentar o número de trabalhadores em escala de nuvem para números maiores. Quando você usa o serviço, os processos de trabalho continuam a ser executados localmente, mas as instâncias de navegador com uso intensivo de recursos agora estão sendo executadas remotamente na nuvem.

Como os processos de trabalho ainda são executados na máquina cliente (estação de trabalho do desenvolvedor ou máquina do agente de CI), a máquina cliente ainda pode se tornar um afunilamento para execução escalonável à medida que você adiciona mais trabalhadores. Saiba como você pode determinar a configuração ideal.

Você pode especificar o número de trabalhadores na linha de comando com o --workers sinalizador:

npx playwright test --config=playwright.service.config.ts --workers=30

Como alternativa, você pode especificar o número de trabalhadores ao playwright.service.config.ts usar a workers configuração:

export default defineConfig({
  ...
  workers: 30,
  ...
});

Fatores que influenciam o tempo de conclusão

Além do número de processos de trabalho paralelos, há vários fatores que influenciam o tempo de conclusão do conjunto de testes.

Fator Efeitos na duração do ensaio
Recursos de computação da máquina cliente Os processos de trabalho ainda são executados na máquina cliente (estação de trabalho do desenvolvedor ou máquina do agente de CI) e precisam se comunicar com os navegadores remotos. Aumentar o número de trabalhadores paralelos pode resultar em contenção de recursos na máquina cliente e retardar os testes.
Complexidade do código de teste À medida que a complexidade do código de teste aumenta, o tempo para concluir os testes também pode aumentar.
Latência entre a máquina cliente e os navegadores remotos Os trabalhadores são executados na máquina cliente e se comunicam com os navegadores remotos. Dependendo da região do Azure onde os navegadores estão hospedados, a latência da rede pode aumentar. Saiba como você pode otimizar a latência regional no Microsoft Playwright Testing.
Definições de configuração do dramaturgo Configurações de dramaturgo, como tempos limite de serviço, tentativas ou rastreamento, podem afetar negativamente o tempo de conclusão do teste. Experimente a configuração ideal para essas configurações ao executar seus testes na nuvem.
Capacidade de manuseio de carga do aplicativo de destino A execução de testes com o Microsoft Playwright Testing permite que você seja executado com maior paralelismo, o que resulta em uma carga maior no aplicativo de destino. Verifique se o aplicativo pode lidar com a carga gerada pela execução dos testes de dramaturgo.

Saiba mais sobre o fluxo de trabalho para determinar a configuração ideal para minimizar a duração do conjunto de testes.

Fluxo de trabalho para determinar sua configuração ideal

A configuração ideal para minimizar o tempo de conclusão do conjunto de testes é específica para seu aplicativo e ambiente. Para determinar sua configuração ideal, experimente diferentes níveis de paralelização, configuração de hardware da máquina cliente ou configuração do conjunto de testes.

A abordagem a seguir pode ajudá-lo a encontrar a configuração ideal para executar seus testes com o Microsoft Playwright Testing:

1. Determine sua meta de tempo de conclusão do teste

Determine o que é um tempo de conclusão aceitável do conjunto de testes e o custo associado por execução de teste.

Dependendo do cenário, os requisitos para a conclusão do teste podem ser diferentes. Quando você está executando seus testes de ponta a ponta com cada alteração de código, como parte de um fluxo de trabalho de integração contínua (CI), minimizar o tempo de conclusão do teste é essencial. Quando você agenda seus testes de ponta a ponta em uma execução em lote (noturna), você pode ter requisitos que são menos exigentes.

2. Verifique se os testes são executados corretamente na máquina cliente

Antes de executar o conjunto de testes do Playwright com o Microsoft Playwright Testing, certifique-se de que os testes sejam executados corretamente no computador cliente. Se você executar os testes como parte de um fluxo de trabalho de CI, valide se os testes são executados corretamente na máquina do agente de CI. Certifique-se de executar os testes com um mínimo de dois trabalhadores paralelos para verificar se os testes estão configurados corretamente para execução paralela. Saiba mais sobre paralelismo em Dramaturgia.

3. Executar com navegadores hospedados na nuvem no Microsoft Playwright Testing

Depois que os testes forem executados corretamente, adicione a configuração do serviço para executar os testes em navegadores hospedados na nuvem com o serviço. Valide se os testes continuam a ser executados corretamente a partir da máquina cliente (estação de trabalho do desenvolvedor ou máquina do agente de CI).

Introdução ao Guia de início rápido: execute testes de dramaturgo em escala com o Microsoft Playwright Testing.

4. Verifique os navegadores remotos da região do Azure

O Microsoft Playwright Testing pode usar navegadores remotos na região do Azure mais próxima do computador cliente ou usar a região fixa na qual seu espaço de trabalho foi criado.

Saiba como você pode otimizar a latência regional para seu espaço de trabalho.

5. Experimentar o número de trabalhadores paralelos

Experimente o número de trabalhadores paralelos para executar seus testes. Meça o tempo de conclusão do teste e compare com a meta definida anteriormente.

Observe em que ponto o tempo de conclusão do teste não diminui mais à medida que você adiciona mais trabalhadores. Passe para a próxima etapa para otimizar ainda mais sua configuração.

Observação

Enquanto o serviço está em visualização, o número de trabalhadores paralelos por espaço de trabalho é limitado a 50. Você pode solicitar um aumento desse limite para seu espaço de trabalho.

6. Dimensione o cliente

À medida que você aumenta o paralelismo, a máquina cliente pode enfrentar contenção de recursos de computação. Aumente os recursos de computação na máquina cliente, por exemplo, selecionando executores maiores hospedados no GitHub.

Como alternativa, se você tiver limitações de hardware, poderá fragmentar os testes do cliente.

Execute novamente seus testes e experimente o número de trabalhadores paralelos.

7. Atualize suas definições de configuração de teste de dramaturgo

Defina as definições de configuração de teste do Dramaturgo, como tempos limite de teste, configurações de rastreamento ou tentativas.