jmeter不同线程组间的cookie传递
最近使用jmeter测试接口并发,所测接口需要登录后才可执行,开始尝试把登录和接口执行写到一个线程组中,但是发现在并发执行时,单点登录容易报错,故改成登录单独线程组。分线程组后,由于cookie管理器所存的cookie只能在同一线程组共享,不同组无法共享,需要进行cookie的传递,特将传递方法记录如下:
1. 取出登录线程组的cookie
- 首先更改jmeter.properties配置文件中CookieManager.save.cookies=true(注意更改后,将前面的’#’去掉),然后重启jmeter,
- 在登录线程组中,添加cookie管理器
- 接下来,添加 BeanShell Sampler 或 BeanShell PostProcessor ,使用COOKIE_para(para代表cookie中参数名,如cookie中写jsessionid=sju1d3e3ad322,则用COOKIE_jsessionid来取jsessionid的值)来取出cookie信息。
2. 设置cookie值为jmeter property,以供全局调用
- 在 BeanShell Sampler 或 BeanShell PostProcessor中,使用${__setproperty(jid,jsessionid.false)}设置全部属性
3. 在并发执行线程组,获取cookie执行
- 在接口头信息中,设置cookie字段,值为jsessionid={__P(jid)}(如识别内容放在请求中的,直接拼接到URL中)