如何从JDBC请求的结果数组中提取JSON值
从JDBC返回的JSON中提取字段并完成存储/验证
方法1:用JSON Extractor(高效便捷)
- 给JDBC Request添加子元件「JSON Extractor」
- 在「Names of created variables」栏填写:
status,user_id,is_diary_visible,participant_name - 对应「JSON Path Expressions」栏依次填:
$.Status$.UserId$.IsDiaryVisible$.ParticipantName
- 「Match No.」设为
1(取首个匹配结果)
- 在「Names of created variables」栏填写:
- 提取后的变量可直接复用:
- 存储:可通过「User Defined Variables」统一管理,或用「Save Responses to a File」元件写入本地,也能通过BeanShell/JSR223 PostProcessor写入其他存储介质
- 验证:添加「Response Assertion」,选择「Response Field to Test」为「JMeter Variable」,输入变量名(如
${status}),在「Patterns to Test」中填入预期值(如A)
方法2:用JSR223 PostProcessor(灵活定制)
- 给JDBC Request添加子元件「JSR223 PostProcessor」,选择Groovy语言
- 写入以下脚本解析JSON并提取字段:
def json = new groovy.json.JsonSlurper().parseText(prev.getResponseDataAsString()) // 将提取的字段存入JMeter变量 vars.put("status", json.Status) vars.put("user_id", json.UserId) vars.put("is_diary_visible", String.valueOf(json.IsDiaryVisible)) vars.put("participant_name", json.ParticipantName)
- 后续可直接用
${status}这类变量做存储或验证
批量验证字段的技巧
- 若要一次性验证多个字段,可在JSR223 Assertion中写Groovy脚本:
def json = new groovy.json.JsonSlurper().parseText(prev.getResponseDataAsString()) assert json.Status == "A" : "Status不符,预期A,实际为${json.Status}" assert json.UserId == "HUCQ02D5" : "UserId不符,预期HUCQ02D5,实际为${json.UserId}" assert json.IsDiaryVisible == true : "IsDiaryVisible状态不符"
内容的提问来源于stack exchange,提问作者Madhu Manohar
相关产品推荐
相关产品推荐

