Thursday, May 31, 2007

Jmeter com JSF

Quebrei um pouco a cabeça pra fazer o jmeter "testar" uma aplicação feita em JavaServer Faces. Esse site indicou o caminho das pedras... Mas mesmo assim precisei seguir alguns passos, pra resumir:

1º Criar um HTTP Proxy Server abaixo de WorkBench, configurar a porta e indicar o proxy no navegador. Este proxy deve rodar no server!

2º Ao requisitar uma pagina que passe pelo proxy, todos os dados enviados do client para o server são armazenados, como HTTP Request, com o respectivo método http e parametros enviados.

3º Ainda não é suficiente... Com as requisições na mão (na sequencia que foram solicitadas) é necessário criar XPath Extractor dentro da primeira request para descobrir qual o valor do controle de estado do faces, o "javax.faces.ViewState". Este cara é armazenado em um inputHidden em cada página. A query para descobrir o valor é //input[@id='javax.faces.ViewState']/@value. Além da query é necessário definir Reference Name, o qual valor será utilizado por outras request's um exemplo seria view.

4º Agora é o momento de usar a variável definida no XPath. Isso na segunda request feita para um mesma página (via post). Para isso é colocar o parametro javax.faces.ViewState com o valor ${view} na configuração do HTTP Request.

5º Por fim é necessário criar uma HTTP Cookie Manager abaixo do Thread Group, e nele adicionar um valor de cookie, neste caso o JSessionID. O name deve ficar com o valor jsessionid, um valor default e o domínio devem ser preenchido.

Depois é rodar o teste.

5 comments:

Anna Carolina said...

Olá Eder estou tendo dificuldades em configurar o jmeter para rodar um teste em JSF, você poderia me explicar como configurar? Obrigada

Anna Carolina said...

Eder, no HTTP Cookie Manager, qual o valor e o domínio que terei que colocar?

Felipe Zanardo Affonso said...

Eder, e aí? Não vai responder às perguntas da Anna Carolina? Sacanagem, hein?!

Robson said...

Google vai bem tbm... Que mania de querer tudo de graça.

Maicon Fang said...

Olá, possível resposta a pergunta da Anna Carolina, segue link
http://www.1ktips.com/how-to-share-session-between-jmeter-and-web-browser-using-jsessionid/