Jmeter中传递cookie值

场景:用户登陆后会本地会保存cookie,cookie是用来跟服务端验证此用户已经登陆过的重要信息,但是如何获取并在其他请求时将此cookie传递给服务器呢?

在线程组下面之直接添加HTTP Cookie管理器,Jmeter会自动将线程组下面的cookie值保存并在此线程组中其他API中传递的,首先,要确保jmeter.properties中CookieManager.save.cookies=true

image.png
image.png


那么,跨线程间怎么传递cookie?
获取参数值->设置为全局变量->调用参数,下面详细介绍一下操作步骤

  1. 通过抓包工具(Fiddler,Charles,network)等可知道cookie是在响应Header或者响应文本中返回可客户端的


    响应信息
    响应信息
  1. 添加正则表达式获取cookie值,需要检查的响应字段需要选择【信息头】
Set-Cookie: PHPSESSID=(.*); path=/; HttpOnly
正则式提取器
正则式提取器
  1. 添加BeanShell PostProcessor,并将正则表达式提取器中的值设置为全局变量
${__setProperty(newPHPSESSID,${PHPSESSID},)};
BeanShell PostProcessor
BeanShell PostProcessor
  1. 在其他需要调用的线程下添加HTTP Cookie管理器,并取出环境变量值
${__property(newPHPSESSID,,)}
HTTP Cookie管理器
HTTP Cookie管理器
  1. 最后运行线程组就ok了,接口A请求头中有cookie信息了


    结果树
    结果树

参考文档:
Jmeter如何保持cookie,让所有请求都能用同一个cookie,免去提取JSESSIONID
Jmeter获取Cookie并传递到下一个线程---跨线程后cookie找不到了
jmeter手动添加cookie及线程间cookie共享的2种方法

原文地址:https://www.cnblogs.com/zhangxiaodi/p/10579298.html