Jmeter通过记录会话发出请求

时间:2015-10-06 12:53:10

标签: java session jmeter

我需要使用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

jmeter configuration

3 个答案:

答案 0 :(得分:1)

最后,我弄清楚了为什么不起作用。 Cookie Manager完美运行。 实际上,登录页面需要javax.faces.ViewState id才能将jmeter请求传递给登录提供程序。有一次,我已经解决了它(),javax.faces.ViewState变成了无状态,让我成功登录。感谢帮助 enter image description here

答案 1 :(得分:0)

您是否在请求之前放置了Cookie管理器?

答案 2 :(得分:0)

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

这会将JSESSIONID的值从cookie传递到HTTP请求标头。