Determinar a configuração ideal do conjunto de testes
A versão prévia do Microsoft Playwright Testing permite acelerar a execução dos seus testes do Playwright ao aumentar o paralelismo em escala na nuvem. Vários fatores afetam o tempo de conclusão do conjunto de testes. Determinar a configuração ideal para reduzir o tempo de conclusão do conjunto de testes é específico para cada aplicativo e requer experimentação. Este artigo explica os diferentes níveis para configurar o paralelismo dos seus testes, os fatores que influenciam a duração dos testes e como determinar a configuração ideal para minimizar o tempo de conclusão dos testes.
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 o conjunto de testes. No entanto, adicionar mais processos de trabalho nem sempre resulta em tempos de conclusão mais curtos para o conjunto de testes. Por exemplo, os recursos de computação do computador cliente, a latência de 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 trabalho tem um efeito mínimo. O gráfico também mostra como o uso de mais recursos de computação no computador cliente afeta positivamente o tempo de conclusão dos testes executados com o serviço.
Processos de trabalho
No Playwright, todos os testes são executados em processos de trabalho. Esses processos são processos do sistema operacional, executando de forma independente e em paralelo, orquestrados pelo executor de testes do Playwright. Todos os trabalhos têm ambientes idênticos e cada processo inicia seu próprio navegador.
Em geral, aumentar o número de trabalhos paralelos pode reduzir o tempo necessário para concluir o conjunto de testes completo. Você pode aprender mais sobre o paralelismo nos testes do Playwright na documentação do Playwright.
Conforme 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. Há outros fatores que influenciam a duração do conjunto de testes.
Executar testes localmente
Por padrão, @playwright/test
limita o número de trabalhos a 1/2 do número de núcleos de CPU em seu computador. Você pode substituir o número de trabalhos 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 seu computador. Além de um certo ponto, adicionar mais trabalho leva à contenção de recursos, o que atrasa cada trabalhado e introduz instabilidade nos testes.
Para substituir o número de trabalhos usando o sinalizador de linha de comando --workers
:
npx playwright test --workers=10
Para especificar o número de trabalhos em playwright.config.ts
usando a configuração workers
:
export default defineConfig({
...
workers: 10,
...
});
Executar testes com o serviço
Ao usar o Microsoft Playwright Testing, você pode aumentar o número de trabalhos 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, que consomem muitos recursos, agora são executadas remotamente na nuvem.
Como os processos de trabalho ainda são executados no computador cliente (estação de trabalho do desenvolvedor ou computador do agente de CI), o computador cliente pode continuar sendo um gargalo para a execução escalável à medida que você adiciona mais trabalhos. Saiba como você pode determinar a configuração ideal.
Você pode especificar o número de trabalhos na linha de comando com o sinalizador --workers
:
npx playwright test --config=playwright.service.config.ts --workers=30
Como alternativa, você pode especificar o número de trabalhos em playwright.service.config.ts
usando a configuração workers
:
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 teste |
---|---|
Recursos de computação do computador cliente | Os processos de trabalho ainda são executados no computador 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 trabalhos paralelos pode resultar em contenção de recursos no computador cliente e desacelerar 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 o computador cliente e os navegadores remotos | Os trabalhos são executados no computador cliente e se comunicam com os navegadores remotos. Dependendo da região do Azure em que os navegadores estão hospedados, a latência de rede pode aumentar. Saiba como você pode otimizar a latência regional no Microsoft Playwright Testing. |
Configurações do Playwright | Configurações do Playwright, como tempos limite de serviço, novas tentativas ou rastreamento, podem afetar negativamente o tempo de conclusão dos testes. Experimente a configuração ideal para essas configurações ao executar seus testes na nuvem. |
Capacidade de manipulação de carga do aplicativo de destino | A execução de testes com o Microsoft Playwright Testing permite que você execute com maior paralelismo, o que resulta em uma carga maior no aplicativo de destino. Verifique se o aplicativo pode lidar com a carga gerada executando seus testes do Playwright. |
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 a sua configuração ideal, experimente diferentes níveis de paralelismo, 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. Determinar a meta de tempo de conclusão do teste
Determine qual é um tempo de conclusão aceitável para o conjunto de testes e o custo associado a cada execução de teste.
Dependendo do cenário, seus requisitos para conclusão do teste podem ser diferentes. Quando você executa seus testes de ponta a ponta a 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 dos testes é essencial. Quando você agenda seus testes de ponta a ponta em uma execução em lote (noturna), pode ter requisitos menos exigentes.
2. Verifique se os testes são executados corretamente no computador cliente
Antes de executar seu conjunto de testes do Playwright com o Microsoft Playwright Testing, verifique se seus testes estão funcionando corretamente no computador cliente. Se você executar seus testes como parte de um fluxo de trabalho de CI, valide se os testes estão funcionando corretamente no computador do agente de CI. Garanta que você execute seus testes com no mínimo dois trabalhos paralelos para verificar se seus testes estão corretamente configurados para execução paralela. Saiba mais sobre paralelismo no Playwright.
3. Executar com navegadores hospedados na nuvem no Microsoft Playwright Testing
Depois que seus testes forem executados corretamente, adicione a configuração do serviço para executar seus testes em navegadores hospedados na nuvem com o serviço. Valide se os testes continuam sendo executados corretamente no computador cliente (computador de agente de CI ou estação de trabalho do desenvolvedor).
Introdução ao Início Rápido: execute testes do Playwright em escala com o Microsoft Playwright Testing.
4. Verificar 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 seu computador cliente ou usar a região fixa na qual seu workspace foi criado.
Saiba como você pode otimizar a latência regional para seu workspace.
5. Experimente o número de trabalhos paralelos
Experimente o número de trabalhos 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 dos testes deixa de diminuir à medida que você adiciona mais trabalhos. Vá para a próxima etapa para otimizar ainda mais sua configuração.
Observação
Enquanto o serviço está em versão prévia, o número de trabalhos paralelos por workspace é limitado a 50. Você pode solicitar um aumento desse limite para seu workspace.
6. Dimensionar o cliente
À medida que você aumenta o paralelismo, o computador cliente pode enfrentar contenção de recursos de computação. Aumente os recursos de computação no computador cliente, por exemplo, selecionando executores hospedados no GitHub de maior capacidade.
Como alternativa, se você tiver limitações de hardware, poderá dividir seus testes no cliente.
Execute novamente seus testes e experimente o número de trabalhos paralelos.
7. Atualizar as configurações de teste do Playwright
Defina as configurações do seu Playwright, como tempos limite de teste, configurações de rastreamento ou novas tentativas.