Modificar grupo de threads de um plano de teste JMeter externo (arquivo JMX)
Meu aplicativo pegará o arquivo jmx como plano de teste do usuário e o executará. Eu tenho JMeter distribuído configuração no backend do meu aplicativo (1 cliente JMeter e vários servidores JMeter).
O desafio que estou enfrentando é com os #threads necessários para executar o plano de teste.
- Se eu pegar # instâncias (servidores JMeter executando o teste) e #threads explicitamente do usuário, como configuro o plano de teste fornecido pelo usuário com este grupo de threads antes da execução? Isso me permitirá verificar esses valores com o meu cluster e capacidade da máquina de antemão.
Eu tinha lido sobre Incluir Controlador, mas isso requer necessariamente que o plano de teste do usuário tenha o Fragmento de Teste.
- Se não for explícito, como verifico a configuração do grupo de threads no plano de teste do usuário? Suponha que o usuário tenha colocado #threads grandes no plano de teste que podem sobrecarregar minha máquina do servidor JMeter, como posso verificar esse valor e provavelmente avisar o usuário para limitar os #threads?
Respostas
Não existe algo como "#threads_per_instance" no mundo JMeter, se você executar o JMeter no modo distribuído, cada servidor (ou escravo ou gerador de carga) executa o plano de teste .jmx fornecido pelo cliente, como é feito se o usuário fizer upload do arquivo com 100 threads em um grupo de threads e você tem 1 escravo - você terá 100 usuários. Se você tiver 2 escravos - você terá 200 usuários, etc.
Outra coisa é que você não pode dizer quantos threads você será capaz de simular de um único escravo JMeter de antemão, pois depende principalmente da natureza do teste: tamanho da solicitação / resposta, número de pré / pós processadores, asserções, ouvintes, etc. Eu recomendaria implementar alguma forma de monitoramento de saúde dos escravos JMeter e avisar o usuário se o uso de CPU, RAM ou rede começar a ultrapassar 80%. Isso pode ser facilmente alcançado usando o plugin JMeter PerfMon
Não sabemos quais tecnologias estão sendo usadas em "sua aplicação", então esta questão é muito ampla. Os scripts JMeter .jmx são apenas arquivos XML, portanto, você deve ser capaz de usar o analisador XML para extrair o número de encadeamentos em todos os grupos de encadeamentos e "validá-lo" de alguma forma.