我需要使用jMeter测试我的REST服务。我需要先登录,然后多次调用REST服务。
!! 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管理器 - 它应该保存cookie
对REST的HTTP请求 - 失败,导致未设置JSESSIONID
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
答案 0 :(得分:1)
最后,我弄清楚了为什么不起作用。
Cookie Manager完美运行。
实际上,登录页面需要javax.faces.ViewState
id才能将jmeter请求传递给登录提供程序。有一次,我已经解决了它(),javax.faces.ViewState
变成了无状态,让我成功登录。感谢帮助
答案 1 :(得分:0)
您是否在请求之前放置了Cookie管理器?
答案 2 :(得分:0)
在请求中添加HTTP标头管理器,并添加JSESSIONID
作为名称,并在“标题管理器中存储的标题”部分中添加${COOKIE__JSESSIONID}
作为值。
这会将JSESSIONID的值从cookie传递到HTTP请求标头。