JMeter中提取指定自定义字段并传入下一个请求的方法
动态字段提取的Groovy脚本解决方案
1. 确认基础数据获取
先确保通过JSON Extractor的表达式$.namespaces[?(@.type=='account_id')].permissions已成功获取权限JSON数据,假设该数据存储在变量permissions中(可根据实际变量名调整)。
2. 编写Groovy后置处理器脚本
添加Groovy后置处理器,使用以下代码筛选目标字段:
// 读取权限数据变量 def permissionsData = vars.get("permissions") if (permissionsData) { // 解析JSON def jsonObj = new groovy.json.JsonSlurper().parseText(permissionsData) def resultMap = [:] // 遍历字段,筛选符合条件的条目 jsonObj.each { key, value -> if (key.startsWith("study_field_customfield_") && value == "H") { resultMap[key] = value } } // 将筛选结果转为JSON字符串,存入新变量 vars.put("targetPermissions", new groovy.json.JsonBuilder(resultMap).toString()) }
3. 后续请求引用结果
在需要传入数据的请求JSON体中,直接使用${targetPermissions}即可,JMeter会自动替换为筛选后的JSON内容。
空值问题排查
- 用Debug Sampler检查
permissions变量是否真的拿到了有效JSON数据,避免提取表达式错误导致无数据。 - 确认字段前缀
study_field_customfield_的大小写、拼写完全匹配,以及值H的大小写是否与实际数据一致。 - 检查Groovy脚本的语法,比如引号、括号是否配对,避免脚本执行失败。
内容的提问来源于stack exchange,提问作者Jyoti Prakash Mallick
相关产品推荐
相关产品推荐

