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批量生成参数变量

  1. 在该请求下添加json提取器,获取fieldData部分的内容


    image.png
  2. 然后添加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))  #逐个生成变量,可供后续调用
  1. 后面的请求传参我们就可以直接通过${key}来直接调用


    image.png

通过这种方式我们就可以处理遇到需要获取较多传参,但通过json提取器去逐个获取的繁琐,更加方便,但也会生成很多我们不需要的变量

上一篇下一篇

猜你喜欢

热点阅读