使用JMeter JSON提取器访问JSON数组值
我有以下JSON JSON-使用JMeter JSON提取器访问JSON数组值,jmeter,json-extract,Jmeter,Json Extract,我有以下JSON JSON- {"data": { "statusCode": 200, "success": true, "technicalSettings": [{ "program": "C:/temp/abc.exe", "actions": "9",
{"data": {
"statusCode": 200,
"success": true,
"technicalSettings": [{
"program": "C:/temp/abc.exe",
"actions": "9",
"file_name": "abc1",
"new_file_name": "newabc1",
"version": "2.0.0.0",
"product_name": "abc",
"description": "abc",
"eventdate": "20160601120000",
"autoVoiceProfile": {
"autoVoices": [{
"autoVoiceLanguage": 0,
"autoVoiceMessage": [{
"name": "AV1",
"duration": "1.200000",
"checksum": "2d4c44d142bc0391b980b8a103ab35cc23d8f7820895cb6025cf3c829139336c",
"fileName": "/usr/g/db/user_autoVoiceMsg7.aifc",
"id": 4
}, {
"name": "AV1",
"duration": "0.600000",
"checksum": "9538cf287d178964dcb57a05b7acbc00e04c800a9aaed0b22f5433d9dc79d80c",
"fileName": "/usr/g/db/user_autoVoiceMsg8.aifc",
"id": 4
}, {
"name": "AV2",
"duration": "2.800000",
"checksum": "050acdb345e079da1371623c9727bc16d166db0a0b47687ff93d736ddf37cde8",
"fileName": "/usr/g/db/user_autoVoiceMsg9.aifc",
"id": 5
}, {
"name": "AV2",
"duration": "4.100000",
"checksum": "c5a6a39df38505c0c22b75d9ea7781a1755e9c8c9f435e08034f579361ba751c",
"fileName": "/usr/g/db/user_autoVoiceMsg10.aifc",
"id": 5
}
]
}
],
"messagesitefilename": null
}
}, {
"program": "C:/temp/abc.exe",
"actions": "9",
"file_name": "abc2",
"new_file_name": "newabc2",
"version": "2.0.0.0",
"product_name": "abc",
"description": "abc",
"eventdate": "20160601120000",
"autoVoiceProfile": {
"autoVoices": [{
"autoVoiceLanguage": 0,
"autoVoiceMessage": [{
"name": "AV1",
"duration": "1.200000",
"checksum": "2d4c44d142bc0391b980b8a103ab35cc23d8f7820895cb6025cf3c829139336c",
"fileName": "/usr/g/db/user_autoVoiceMsg7.aifc",
"id": 4
}, {
"name": "AV1",
"duration": "0.600000",
"checksum": "9538cf287d178964dcb57a05b7acbc00e04c800a9aaed0b22f5433d9dc79d80c",
"fileName": "/usr/g/db/user_autoVoiceMsg8.aifc",
"id": 4
}, {
"name": "AV2",
"duration": "2.800000",
"checksum": "050acdb345e079da1371623c9727bc16d166db0a0b47687ff93d736ddf37cde8",
"fileName": "/usr/g/db/user_autoVoiceMsg9.aifc",
"id": 5
}
]
}
],
"messagesitefilename": null
}
}
],
"library": {
"version": 6,
"dmIdVersion": 5
}
},
"success": true,
"statusCode": 200,
"errorMessage": ""
}
Im使用JSON提取器获取technicalSettings的值。这些值被分配给变量ppPublishTechSettings
现在我想访问变量${pPublishTechSettings\u ALL}中的每个数据。此JSON中有两个值
我使用变量${pPublishTechSettings_0},${pPublishTechSettings_1}来访问数据。但是is只为${ppPublishTechSettings_1}工作,这给了我两个技术设置数据
如何访问BeanShell采样器中的${pPublishTechSettings\u 0}、${pPublishTechSettings\u 1}…等单个技术设置数据
注:-
当我在在线工具中使用此JSON并像$..data..technicalSettings[0]、$..data..technicalSettings那样查询它时,我得到了正确的值。使用
将路径表达式用作:.data.technicalSettings[*]
您的JSON路径提取器设置如下:
对于每个控制器,设置如下所示:
在for each controller下添加请求,并在请求中使用${myvar}
。你会得到这样的结果:
请注意,对于脚本,我将为您提供如下Groovy选项:
def technicalSettings = new groovy.json.JsonSlurper().parseText(vars.get('pPublishTechSettings_ALL'))
technicalSettings.eachWithIndex { setting, index ->
log.info('Setting ' + index + ': ' + new groovy.json.JsonBuilder(setting).toString())
}
演示:
更多信息: