如何在JMeter中设置cookieJar?该操作是否为JMeter必需项?
如何实现和K6中相同的CookieJar设置操作
可以实现,K6中手动给CookieJar写入指定域名下Cookie的操作,在JMeter中有两种常用实现方式:
静态配置(固定值/提前获取到变量值的场景)
在线程组下添加配置元件 > HTTP Cookie管理器,勾选每个线程单独存储Cookie(和K6每个虚拟用户独立维护CookieJar的逻辑对齐),在Cookie管理列表中新增条目即可:字段 填写值 名称 oktaStateToken 值 你提前获取到的oktaStateToken取值(可以直接写JMeter变量引用如 ${oktaStateToken})域 auth.mygateid.test 路径 / 安全 站点为HTTPS时勾选即可 动态配置(运行时动态获取值后写入Cookie的场景)
添加JSR223预处理元件/后置处理元件,选择Groovy作为执行语言,写入如下代码:import org.apache.jmeter.protocol.http.control.CookieManager import org.apache.jmeter.protocol.http.control.Cookie // 获取当前线程绑定的Cookie管理器实例 CookieManager cookieManager = ctx.getCurrentSampler().getCookieManager() // 构造目标Cookie,最后一个参数为过期时间,-1代表会话级Cookie Cookie stateTokenCookie = new Cookie("oktaStateToken", vars.get("oktaStateToken"), "auth.mygateid.test", "/", true, -1) // 写入Cookie管理器 cookieManager.add(stateTokenCookie)
手动设置Cookie是否是JMeter使用的必需操作
不是通用必需操作,仅在特定场景下需要执行:
- 需要手动设置的场景:如果
oktaStateToken是前端逻辑生成、不会通过后端响应的Set-Cookie头下发给客户端,此时JMeter自动维护的Cookie中不会包含该值,必须手动写入才能正常发起后续鉴权请求 - 不需要手动设置的场景:如果该Cookie会在之前的业务接口响应中通过
Set-Cookie返回,只要你添加了HTTP Cookie管理器并保持默认的自动存储Cookie配置,JMeter会自动维护所有下发的Cookie,不需要额外手动操作
内容的提问来源于stack exchange,提问作者Vishal
相关产品推荐
相关产品推荐

