Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O Playwright Workspaces permite que você acelere a execução do teste do 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. Ao usar Playwright Workspaces, 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 Playwright Workspaces 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 --workersde 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 Playwright Workspaces, você pode aumentar o número de trabalhadores em escala de nuvem para um número maior. 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 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 otimizar a latência regional em Playwright Workspaces. |
| 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 Playwright Workspaces 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 Playwright Workspaces:
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 Playwright Workspaces, 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 Playwright Workspaces
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 Playwright em escala com Playwright Workspaces.
4. Verifique os navegadores remotos da região do Azure
Os Espaços de Trabalho de Playwright podem usar navegadores remotos na região do Azure mais próxima da sua 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.
Observação
O número de trabalhadores paralelos por espaço de trabalho é limitado a 100. 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.