JMETER在JSon提取后将userId保存在数组中|在回路控制器内

6pp0gazn  于 2022-11-23  发布在  其他
关注(0)|答案(2)|浏览(157)

我尝试将提取的id(使用JSON Extractor)保存在对象数组中。
响应示例:

{
  "password": "galderma2022*",
  "userName": "5n",
  "firstName": "ykyrlkyfao",
  "userId": "qxoql",
}

为此,我使用了JSR223后处理器

Parameters= vars.get('UserIDs') ?:  []  

if (Parameters ) {Parameters= new   
groovy.json.JsonSlurper().parseText(Parameters)}  

Parameters.add( "{'userId' : ${
new groovy.json.JsonSlurper().parse(prev.getResponseData()).userId} }")  

vars.put('UserIDs', 
new groovy.json.JsonBuilder(Parameters).prettyPrint())  

log.info("ids" + Parameters)  

log.info("UserIDs" + vars.get('param'))

对象的数组将在另一个HTTP采样器中使用。
enter image description here
我希望Array包含对象
但就是这样

[
    "{userId : 759 }",
    "{userId : 757 }",
    "{userId : 758 }"
]
9rbhqvlz

9rbhqvlz1#

  1. Don't post code as images
    1.如果没有看到您的完整(或至少部分)响应数据和所需的JMeter Variable,我们将无法为您提供帮助
    目前,我只能分享几个通用参考:
jtoj6r0c

jtoj6r0c2#

所以对于那些有同样问题的人,我找到了一个解决办法:

def jsonSlurper = new groovy.json.JsonSlurper()
def ids= vars.getObject('UserIDs') ?:  []
if (ids ) {ids= new groovy.json.JsonSlurper().parseText(ids)}
def object = {"userId" new groovy.json.JsonSlurper().parse(prev.getResponseData()).userId}
ids.add(object)
vars.put('UserIDs', new groovy.json.JsonBuilder(ids).toPrettyString())

相关问题