JSR223和jmeter提取器处理获取请求响应体内容,并实现批
2023-03-28 本文已影响0人
_Irving
{
"fieldData": {
"grkhh": "xxxxxx",
"yyhke": 1686.41,
"zjlx": "01",
"dkqs": 180,
"rule_engine_flag": "1",
"zjhm": "xxxxxxxx",
"dkffe": 240000,
"dkywh": "xxxx",
"ztkkywlx": "其他",
"yhkfs": "01",
"dqjhghbj": 1036.41,
"zhychqqs": 1,
"lxyqqs": 0,
"dqjhghlx": xxx,
"dkzh": "xxxxx",
"sfyq": "0",
"fwts": "1",
"sftx": "0",
"dkzt_desc": "正常",
"ywdjh": "xxxxxxxx",
"jkhtbh": "xxxxxx",
"llfdbl": 0,
"auditLevel": 0,
"yhdkzh": "xxxxxxxxxx",
"dkfxdj": "01",
"dkll": 3.25,
"dqjhhkje": 1686.41,
"ssjg": "xxxxxx",
"dkhkfs": "01",
"dkzt": "1",
"swtyhdm": "105",
"xingming": "*清",
"yyhbj": 1039.22,
"auditReason": "",
"msgStr": "该业务需注意:未还款满一年;",
"yyhlx": 647.19,
"dkjqrq": "2033-12-27",
"dkye": 238963.59,
"dkffrq": "2018-12-27",
"fdllfd": 0,
"sfztkk": "0"
},
"success": true,
}
我们使用抓包软件获取到原请求响应体的部分内容如上,我们后面的请求体部分传参是该请求响应体的内容,且集中在fieldData下,所有我们就可以考虑使用jemter的json提取器或者其它提取器获取到fieldData部分的内容后,使用JSR223sampler批量生成参数变量
-
在该请求下添加json提取器,获取fieldData部分的内容
image.png - 然后添加JSR223 sampler,通过python编写脚本
image.png
脚本如下:
import sys
reload(sys)
sys.setdefaultencoding('utf-8') #注意编码 python自身是ascii码
import json
s=vars.get("fieldData") #获取fieldData变量
s=json.loads(s)
for key,value in s.items():
vars.put(key,str(value)) #逐个生成变量,可供后续调用
-
后面的请求传参我们就可以直接通过${key}来直接调用
image.png
通过这种方式我们就可以处理遇到需要获取较多传参,但通过json提取器去逐个获取的繁琐,更加方便,但也会生成很多我们不需要的变量