一、Jmeter版本
此次示例采用的是apache-jmeter-5.2.1版本
二、设置配置文件使COOKIE管理器保存COOKIE信息。
修改apache-jmeter-5.2.1/bin/jmeter.properties文件,把COOKIEManager.save.COOKIEs设置为true,并去掉前面的注释#号,如下图所示:
​
修改完成后保存,退出,并重启jmeter。
三、在调试取样器和请求中查看具体的COOKIE信息
在线程组中添加HTTP COOKIE 管理器,运行测试计划后,HTTP COOKIE 管理器会自动存储这些COOKIE,变量名称为COOKIE_XXX,XXX对应的是COOKIE的名称,可以添加【调试取样器】来查看自动存储的COOKIE值,如下图所示:
下图中有两个COOKIE值分别为:COOKIE_z92_lastvisit何COOKIE_z92_visitor
​
这里要注意一下,有时候你会发现这里的COOKIE不全,所以比较保险的做法下,进入第一个请求中查看request body中的COOKIE值。如下图所示:下图中有三个COOKIE值分别为:z92_visitor和z92_lastvisit以及csrf_token三个值。这里比前者多了一个COOKIE值。
​
四、设置COOKIE为全局变量
在BeanShell后置处理程序中使用__setProperty()函数将COOKIE_XXXX设置为全局变量。如下图所示:
​
五、获取并存储COOKIE
在HTTP COOKIE管理器中通过__P()函数获取全局变量COOKIE,并加入到COOKIE管理器中。注意名称和在请求中的COOKIE名称保持一致。如下图的z92_visitor和z92_lastvisit以及csrf_token三个值。
​
六、调用登录接口测试验证COOKIE是否可以跨线程共享
(1) 同一个线程中调用登录接口:
​
结果如下:提示state为success,表示登录成功!
​
(2) 不同的线程中调用登录接口
​
结果如下:提示state为success,表示登录成功!
​
OK大功告成,线程1和线程2实现COOKIE共享成功!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。