Determinar a configuração ideal do conjunto de testes
O Microsoft Playwright Testing Preview permite acelerar a execução do teste Playwright aumentando o paralelismo em escala de nuvem. Vários fatores afetam o tempo de conclusão do seu conjunto de testes. Determinar a configuração ideal para reduzir o tempo de conclusão do conjunto de testes é específico 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, adicionar mais processos de trabalho nem sempre resulta em tempos de conclusão mais curtos do conjunto de testes. 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 executados com o serviço.
Processos de trabalho
No Playwright, todos os testes são executados em processos de trabalho. Estes processos são processos de SO, executados de forma independente, em paralelo, orquestrados pelo Playwright Test runner. Todos os trabalhadores têm ambientes idênticos e cada processo inicia o seu próprio browser.
Geralmente, aumentar o número de trabalhadores paralelos pode reduzir o tempo necessário para concluir o conjunto completo de testes. 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 flakiness de teste.
Para substituir o número de trabalhadores usando o sinalizador --workers
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 que consomem muitos 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 gargalo para a execução escalá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 usando playwright.service.config.ts
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 playwright | As configurações de playwright, como tempos limite de serviço, repetições 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 movimentaçã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 pela execução dos 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 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, seus requisitos para a conclusão do teste podem ser diferentes. Quando você está executando 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 do teste é essencial. Quando você agenda seus testes de ponta a ponta em uma execução em lote (noturna), você pode ter requisitos menos exigentes.
2. Verifique se os testes são executados corretamente na máquina cliente
Antes de executar o conjunto de testes Playwright com o Microsoft Playwright Testing, certifique-se de que os testes são executados corretamente na máquina 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. Execute 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 dramaturgia 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 da máquina 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 momento 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.
Nota
Enquanto o serviço estiver 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 corredores maiores hospedados no GitHub.
Como alternativa, se você tiver limitações de hardware, poderá fragmentar os testes do cliente.
Execute novamente os testes e experimente o número de trabalhadores paralelos.
7. Atualize as definições de configuração do teste Playwright
Configure suas definições de configuração de teste de Playwright, como tempos limite de teste, configurações de rastreamento ou tentativas.