Teste de Carga em página com login

Olá. Estou finalizando o desenvolvimento de uma página Web. Após os testes de funcionamento, preciso fazer alguns testes de carga. Não se espera uma quantidade muito grande de usuários simultaneos (testar 30 simultâneos já tá de bom tamanho). O problema é que o sistema de login que estou utilizando faz uso de um valor de Desafio, de forma que, pra fazer a autenticação, é feito o seguinte caminho:

1-) Cliente faz requisição da página de login ao servidor
2-) Servidor devolve página com string aleatória
3-) Cliente devolve seu login, com um password encriptado da seguinte forma: SHA-1(SHA-1(password) + SrtingAleatóriaFornecida), fazendo a requisição para um servlet
4-) Servidor autentica a sessão do cliente.

Alguém saberia me dizer como poderia utilizar algum programa de testes (estava tentando com o JMeter) pra realizar o login desta forma? O valor da string é passado diretamente no código da página.

Soge:

Como vc fez esses testes de funcionamento ? Usou alguma ferramenta / biblioteca de automação de testes ?
Dependendo disso, vc tem formas mais ou menos diretas de integrar esses testes no JMeter.

Com essa informação, acho que poderia palpitar melhor …

Jorge

Não, não fiz nenhuma automação de testes para este projeto, foram feitos manualmente mesmo.

Então recomendo que faça primeiro essa automação para um único usuário, através de um teste baseado em JUnit que
não dependa de um browser de verdade: ou seja, exclua a princípio Selenium RC e similares para o caso que vc apresenta.
Pelo que entendi, interessa testar o comportamento do servlet, não uma sequencia de interações maior
ou perfumarias da interface usuário.

Minha sugestão é usar HtmlUnit como biblioteca dentro do teste JUnit. Automatizado este teste, vc pode integrar
de diversas maneiras com o JMeter, uma delas usando o sampler do tipo JUnit Request (que, dito de passagem,
tem suas particularidades).

Utilizar o JMeter para desenvolver o teste funcional é mais complicado e principalmente irritante para quem está
acostumado a usar uma IDE decente para escrever código.

Jorge

Na verdade é importante testar como muitos usuários afetam a performance final, inclusive na geração dos jsp, o que um teste por jUnit acabaria pulando. No caso da aplicação, a única coisa que faz sentido testar por fora é o Banco de Dados (a aplicação tem que pegar muitos dados, com o processamento destes sendo secundários). Como não sei ainda em qual máquina isso vai rodar não posso fazer esse teste, e por isso que por hora tenho que testar a resposta do programa a pedidos simultâneos de páginas.

[quote=Soge]Na verdade é importante testar como muitos usuários afetam a performance final, inclusive na geração dos jsp, o que um teste por jUnit acabaria pulando.
…[/quote]

O que estou sugerindo é que desenvolva primeiro o teste funcional com JUnit/HTMLUnit: o teste acessaria o servidor via HTTP,
não seria teste unitário, e qualquer processamento do lado do servidor aconteceria quando o teste fosse executado.

O seu teste envolve uma lógica de programação que é tratada melhor em uma IDE. Uma vez escrito o teste em Java
que acessa a aplicação do mesmo jeito que um browser faria, ele é reaproveitado no JMeter, simulando um número X
de usuários.

Jorge