2015-10-06 38 views
0

我需要使用jMeter测试我的REST服务。我需要先登录,然后多次调用REST服务。Jmeter通过记录会话发出请求

!! Http Cookie Manager无法正常工作!

问题:

HTTP请求登录 - 在这里,我需要得到JSESSIONID

POST http://localhost:8080/xxx/index.faces 

POST data: 
form-login=form-login&j_username=xxx&j_password=yyy 

[no cookies] - ??? 

Cabeceras de petición: 
Connection: keep-alive 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0 
Content-Type: application/x-www-form-urlencoded 
Content-Length: 76 
Host: localhost:8080 

在浏览器返回:

JSESSIONID=E9A3BC9C290549F32EB278133337450A; Path=/xxx/; HttpOnly 

HTTP Cookie管理器 - 它应该保存cookies

HTTP请求到REST - 失败,导致JSE SSIONID未设置

GET http://localhost:8080/xxx/rest/yyy/list 

[no cookies] 

Cabeceras de petición: 
Connection: keep-alive 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0 
Host: localhost:8080 

jmeter configuration

回答

0

你把cookie管理器的请求之前?

+0

是的。我试过所有可能的组合:( – Valijon

+0

)把它放在采样器Controlador之前,简单,不在采样器中,它会工作 – Imlus

+0

不起作用仍然说:没有cookie – Valijon

0

将HTTP标题管理器添加到请求中,并将JSESSIONID作为名称并将${COOKIE__JSESSIONID}作为“存储在标题管理器中的标题”部分中的值。

这会将JSESSIONID的值从Cookie传递到HTTP请求标题。

+0

没有。$ {COOKIE__JSESSIONID}没有恢复: ( – Valijon

1

最后,我想出了为什么不工作。 Cookie管理器完美工作。 登录页面实际上预计为javax.faces.ViewState id,以便将jmeter请求传递给登录提供程序。有一次,我解决了它(),javax.faces.ViewState变得无状态,让我登录成功。感谢您的帮助 enter image description here