http协议属于无状态会话协议,所以采用cookie来维持会话访问。
在进行jmeter接口测试时,每个线程组会包含很多http取样器,如果每进行一个接口测试都进行一次身份认证,这无疑会增加很多成本,也是不推荐的。那我们如何才能保持会话呢?在jmeter接口测试过程中,我们可以采用以下方式进行会话保持。
首先新建一个setup启动线程组,用做取cookie认证用。见下图:
输入登录接口地址,填写相应账户密码等参数,然后右键添加正则表达式提取器取响应头的cookie信息 。
其中引用名称需要在全局变量里面用到,所以最好不要取有重复性的名称。如下图中的cookie(可以自定义),正则表达式按需自己写:
接下来添加BeanShell PostProcessor:
其参数主要注意两个地方,第一就是参数的名字一定要和正则里面提取的名称保持一致,第二便是将该变量设置为全局变量的脚本一定注意不要搞错( ${__setProperty(releasecookie,${cookie},)}; ):
至此,我们已经将cookie设置为全局变量,接下来只需要将该变量通过http信息头管理器引用到项目下面就可以实现多线程共享cookie,从而实现权限维持的目的,注意引用格式:( ${__P(releasecookie,)} )。
我们运行一下发现其余取样器均已实现权限共享: