JMeter中使用JSR223 PostProcessor创建JsonObject失败求助
解决JSR223 PostProcessor中JsonObject无法解析的问题
问题原因
你的脚本使用了com.eclipsesource.json.JsonObject类,但该类并非JMeter默认类路径中的依赖库,导致编译时无法找到该类,抛出unable to resolve class JsonObject错误。另外你尝试的JSONObject response = new JSONObject.(jsonString);存在语法错误(多了一个点)。
推荐解决方案:使用Groovy原生JSON工具
Groovy内置了便捷的JSON处理类,无需额外导入第三方库,更稳定易用。修改后的脚本如下:
import groovy.json.JsonSlurper import groovy.json.JsonBuilder // 获取前一个采样器的响应内容 def jsonString = prev.getResponseDataAsString() // 解析JSON字符串为Groovy对象 def response = new JsonSlurper().parseText(jsonString) // 删除指定字段 response.remove('reference') response.remove('dateCreated') response.remove('lastUpdated') // 修改status字段值 response.status = "INACTIVE" // 将修改后的对象转为JSON字符串,存入JMeter变量 def newPayload = new JsonBuilder(response).toString() vars.put("newPayload", newPayload)
脚本说明
JsonSlurper:用于将JSON字符串解析为Groovy的Map/List对象,方便直接修改字段JsonBuilder:用于将修改后的Groovy对象重新转为JSON字符串vars.put("newPayload", newPayload):将最终的请求负载存入newPayload变量,后续采样器可通过${newPayload}引用
备选方案:添加第三方JSON库(不推荐)
如果坚持使用com.eclipsesource.json,需要:
- 下载对应的
json.jar文件 - 将文件放到JMeter安装目录下的
lib文件夹中 - 重启JMeter后重新运行脚本
但此方法需要维护第三方依赖,不如Groovy原生方案便捷。
内容的提问来源于stack exchange,提问作者GorkhaliHero
相关产品推荐
相关产品推荐

