jmeter跨线程组获取cookie或jmeter线程组共享cookie-笔者亲测

Posted csmashang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jmeter跨线程组获取cookie或jmeter线程组共享cookie-笔者亲测相关的知识,希望对你有一定的参考价值。

一、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共享成功!

七、总结

如果你对此文有任何疑问,如果你也需要接口项目实战,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入:软件测试技术群:695458161,群里的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦。

作者:公众号:软测之家
原创不易,欢迎转载,但未经作者同意请保留此段声明,并在文章页面明显位置给出原文链接。

以上是关于jmeter跨线程组获取cookie或jmeter线程组共享cookie-笔者亲测的主要内容,如果未能解决你的问题,请参考以下文章

Jmeter跨线程组传递token失败

jmeter 跨线程传参获取不到值

jmeter 跨线程传参获取不到值

jmeter 正则获取多个返回token至本地文件,并跨线程组调用

jmeter 多线程组间变量共享

Jmeter跨线程组调用token