【JMeter】JMeter实现跨线程组共享cookie

是小鱼呀·2022-01-21 10:42·914 次阅读

【JMeter】JMeter实现跨线程组共享cookie

Jmter实现跨线程组共享cookie

场景:
测试需要登录的接口时,只需要在一个线程组中添加http cookie管理器就可以实现。
此时进行压测,比如用户并发数100 ,相当于调用100次登录接口和100次需测试接口。但是在实际场景中,只需要调用1次登录接口,此时需要把登录和被测接口的线程分开,并实现多线程共享cookie。

解决方法

  1. 创建setup线程,添加登录的http请求、添加察看结果树,执行后在结果树中查看登录接口返回的cookie。返回形式有两种:Response headers、Response body。本文讲解返回的cookie在Response headers中。有些会用token ,返回在response body。
    在这里插入图片描述

  2. 在登录的http请求下创建后置处理器- -正则表达式提取器,提取headers中的cookie信息。

引用名称: jsession
正则表达式: Set-Cookie:(.*)
模板: $ 1$
匹配数字: 1
缺省值: error

在这里插入图片描述

在这里插入图片描述

  1. 添加取样器-调试取样器,用于校验正则表达式取到的cookie是否正确。( 运行后可查看到)

在这里插入图片描述

在这里插入图片描述

  1. 确认cokkie取值正确后,在登录请求下添加后置处理--BeanShel后置处理程序。将cookie值改为全局量,如图。
    格式: $ {_ setProperty(转换成全局变量后的引用名 ,${正则表达式定义的变量名},)}

在这里插入图片描述

  1. 以上完成登录的线程组后,添加第2个线程组,添加被测接口的http请求,添加配置元件-http信息头管理器,设置cookie的值: ${_ _property(JSESSIONID)。
    这一步在其他教程上看到过是添加在http cookie管理器中,但是我没有实现。
    在这里插入图片描述

在这里插入图片描述

  1. 设置登录的线程数1 ,需测试接[的线程数2 ,运行后可看到被测接口的Request Body中有Cookie Data ,并且值与登录接口返回的信息头中的set-Cookie-致。
posted @   是小鱼呀  阅读(914)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示