JMeter迭代时JSON提取的OrderID未更新,如何传递正确值?
解决JMeter迭代中OrderID无法更新的问题
你的问题核心是变量没有在每次迭代中正确覆盖——明明第2个请求每次都能拿到新的OrderID,但第3个请求始终复用第一次的值,按以下步骤排查修复:
- 检查JSON提取器的挂载位置:必须直接挂在第2个请求下方,不能挂在Login请求或线程组根节点。挂错位置的话,提取器只会跟着Login执行一次,后续迭代不会重新提取新的OrderID。
- 确认第3个请求的请求体引用:别把OrderID硬写成第一次的实际值(比如abcd1234),一定要用
${OrderID}变量引用。如果之前复制过请求体,很可能不小心把变量替换成了固定值。 - 排查全局变量误用:如果之前为跨线程传值用了
__setProperty和__P函数,全局属性不会随迭代自动更新。直接用普通线程变量${OrderID}即可,每个线程的迭代都会自动覆盖这个变量的值。 - 检查请求的执行控制:Login用
Once Only Controller包裹没问题,但第2、3、4请求必须在这个控制器外面,保证每次迭代都能执行这三个请求,这样第2个请求才能每次重新提取OrderID。 - 加Debug Sampler验证:在第2和第3请求之间加个Debug Sampler,跑几次迭代查看
OrderID变量的实际值,同时观察第3请求的发送内容,确认变量是否正确替换。
内容的提问来源于stack exchange,提问作者Raxon
相关产品推荐
相关产品推荐

