JMeter JSON Extractor仅返回默认值,请求传参报404求助
问题分析与解决办法
核心问题1:请求路径格式错误
reqres.in的单个用户接口正确格式是/api/users/{id},你当前第二个请求写的是/api/${userID},即便变量提取正常,也会返回404。而实际请求路径显示为/api/users/NoIDFound,说明变量还未被正确读取,存在变量传递的问题。
核心问题2:变量未正确传递的原因及修复方案
原因一:JSON Extractor位置错误
JSON Extractor必须作为第一个请求的子元素存在(右键第一个请求→添加→后置处理器→JSON Extractor)。如果它和第一个请求同级,无法关联到第一个请求的响应数据,会导致提取失败,最终使用默认值NoIDFound。
原因二:请求执行顺序错误
检查线程组内的元素顺序,必须严格遵循:「第一个请求」→「JSON Extractor」→「第二个请求」。如果第二个请求在JSON Extractor之前执行,此时变量还未被提取,就会触发默认值。
原因三:JSON路径可优化
虽然$..id能提取所有id,但改用更明确的路径$.data[0].id,可以精准定位第一个用户的id,避免潜在的路径匹配歧义。
验证步骤
- 调整JSON Extractor的位置,确保它是第一个请求的子节点。
- 修正线程组内的执行顺序,保证第二个请求在JSON Extractor之后运行。
- 修改第二个请求的URL为
https://reqres.in/api/users/${userID}。 - 重新运行测试,查看Debug Sampler的变量值和第二个请求的实际路径是否正确。
内容的提问来源于stack exchange,提问作者Mohamed Samir
相关产品推荐
相关产品推荐

