You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Gatling/Scala后续请求中设置动态值作为请求头?

在Gatling中为后续请求添加提取的bidkid作为请求头

嘿,你已经成功用正则把bidkid提取出来并存成变量了!接下来要把它加到后续请求的请求头里超简单,根据你的需求有两种常用方式:

1. 为单个请求添加请求头

如果只有某一个后续请求需要带这个bidkid头,直接在对应的http请求块里用.header()方法就行,用${bidkid}引用之前保存的变量。记得把示例里的X-Bid-Kid替换成你实际业务需要的请求头名称:

// 先完成值的提取
.exec(http("request_test")
  .get("https://test/eai/bad")
  .check(regex("content=\"([0-9A-Z]*)\"").saveAs("bidkid")))

// 后续需要带请求头的目标请求
.exec(http("your_next_request")
  .get("https://test/your-target-endpoint") // 替换成你的实际接口地址
  .header("X-Bid-Kid", "${bidkid}")) // 这里的头名改成你业务要求的名称

2. 全局添加(所有后续请求自动携带)

如果你的测试场景里有多个后续请求都需要带这个bidkid头,不用每个请求都重复写,直接用addHeader方法在提取值之后全局设置一次,后续所有请求都会自动带上这个头:

val testScenario = scenario("Your Test Scenario")
  // 第一步:提取bidkid变量
  .exec(http("request_test")
    .get("https://test/eai/bad")
    .check(regex("content=\"([0-9A-Z]*)\"").saveAs("bidkid")))
  // 全局添加请求头,后续所有请求都会自动携带
  .exec(addHeader("X-Bid-Kid", "${bidkid}"))
  // 接下来的请求无需额外配置,都会带上这个头
  .exec(http("request_1").get("https://test/endpoint-1"))
  .exec(http("request_2").get("https://test/endpoint-2"))

小提醒

  • 注意bidkid的拼写完全一致(Gatling变量名区分大小写),避免因拼写错误导致请求头带空值
  • 可以开启Gatling的调试日志(设置logLevel = DEBUG),确认bidkid变量是否被正确提取到值,方便排查问题

内容的提问来源于stack exchange,提问作者Magnus Jensen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:10:27