Estou praticando testes de carga e testando o JMeter. Como aplicativo de exemplo utilizo Web Tours. Gravei as etapas para fazer uma reserva de voo, fiz uma correlação para a sessão do usuário e adicionei algumas asserções de resposta para ter certeza de obter a resposta correta do servidor. Quando reproduzo o script, parece funcionar bem.
Mas quando entro no aplicativo e olho o Itinerário ele está vazio. Portanto, não há nenhuma reserva feita.
Ocorre um comportamento semelhante quando tento ativar o comportamento de erro na página de administração do Web Tours (por exemplo, definir a probabilidade do servidor simular um problema de carga para 100%). Quando testo o aplicativo manualmente recebo os erros esperados (http 503). Quando reproduzo o script, todas as etapas terminam com http 200. Outro script que gravei que adiciona um usuário ao aplicativo funciona bem. O usuário é adicionado quando eu o reproduzo.
Você sabe o que estou fazendo de errado?
Obter o código de status HTTP 200 não significa necessariamente que seu teste está fazendo o que deveria estar fazendo.
Eu sugeriria adicionar outra camada de critérios de aprovação/reprovação usando JMeter Assertion , em particular Response Assertion para verificar se a resposta do servidor contém o valor antecipado e/ou não contém erros.
Portanto, antes de mais nada, certifique-se de que você consegue criar uma reserva com sucesso e mais tarde encontrá-la usando seu navegador, porque se não conseguir, pode ser um comportamento esperado do sistema em teste ou um defeito funcional. Neste caso, não há nada que você possa fazer da perspectiva do JMeter.
Se você puder criar a reserva usando um navegador real, compare as solicitações originadas do JMeter e do navegador real usando uma ferramenta sniffer como Fiddler ou Wireshark , as solicitações precisam ser exatamente as mesmas (exceto os parâmetros dinâmicos que precisam ser correlacionados). Depois de alterar a configuração do JMeter para enviar as mesmas solicitações que o navegador real, você deverá obter o mesmo comportamento.
Além disso, parece que você gravou algumas imagens, isso não é algo que você deveria fazer, porque navegadores reais baixam imagens, scripts, estilos e assim por diante usando pool de threads simultâneos e, no seu caso, você os obtém sequencialmente e isso gera resultados totalmente diferentes pegada de rede. Em vez disso, você deve remover essas solicitações e configurar o JMeter para buscar recursos incorporados usando padrões de solicitação HTTP
Correlacionei a sessão do usuário de maneira errada. Houve um erro de digitação no nome da variável. Parece que não percebi isso porque não limpei o cookie após cada iteração e usei um já existente. Depois de adicionar uma configuração do Gerenciador de cookies HTTP, onde limpo os cookies após cada iteração, meu script gravado apresentou um erro. Depois de corrigir o erro de digitação, o script funciona e uma reserva é feita. Obrigado pela ajuda.