美文网首页
jmeter提取json数据进行接口参数关联

jmeter提取json数据进行接口参数关联

作者: 夏晓X | 来源:发表于2022-06-24 15:54 被阅读0次

    案例场景:在测试创建订单使用系统的企业支付时,需要获取到创建订单后的订单编号才能支付,在jmeter里面可以直接提取上一个接口json里面的值(sysno)作为下一个支付接口的入参。我现在有一个创建订单接口A,创建成功后会返回一个sysno值。企业支付请求接口B必须要获取到接口A返回订单编号才能支付。这里介绍一下jmeter使用后置处理器【json extractor】获取你想要得到的值,根据上一个接口具体返回的json格式去自定义【json path expressions】json路径表达式。

    A接口创建订单接口文档基本信息

    请求类型:POST

    请求头部:application/json

    请求参数:[{"soType":0,"distributorSysNo":100001,"receiverInfo":{"receiveAddress":"收货地址","receiveAreaSysNo":2620,"receiveContact":"联系人","receivePhone":"15878788784"},"products":[{"productSysNo":42753,"quantity":2,"memo":null,"expectDeliveryDate":null},{"productSysNo":41681,"quantity":1,"memo":null,"expectDeliveryDate":null},],"customerMemo":客户备注信息,"deliveyType":54}]

    A接口的请求和返回的报文信息如下

    A接口返回部分内容

    B接口企业支付的接口文档基本信息

    请求类型:POST

    请求头部:application/json

    请求参数:{"orderSysNos":["${ordersysno}"],"soSysNo":"${ordersysno}","payTypeId":"balancepay","orderType":0,"balancePwd":"123456"}

    创建订单请求

    先在jmeter里面添加http请求,填创建订单接口参数等  HTTP信息头管理器添加post请求类型:Content-Type: application/json以及token   创建订单接口返回的参数

    JSON提取器

    添加后置处理器-Json提取器

    注意:添加后置提取器时一定要放在http请求下面,不能放在线程组下面否则会一直提取不到下一个接口读取的值就会错误

    JSON提取器参数设置

    JSON提取器参数说明:

    Names of created variables 参数名称

    JSON Path expressions 提取表达式

    Match No.(0 for Random) 匹配规则,-1所有,0随机,1第一个

    Compute concatenation va 如果有匹配到多个值,选择此项,会将全部值保存到_ALL,并使用逗号分割每个值,注意Match No. (0 for Random)需要为-1才有效,不然只能匹配到一个值了

    Default Values 没提取到就给默认值

    JSON提取器表达式说明,如果是获取第一层级的直接用$.参数,比如我们要获取接口A返回的code,JSON Path expressions就用$.code;如果是返回的是一个数组就要根据返回内容去找到对应参数即可,比如我们获取的是接口A返回的data第一个sysno,就用data[0].sysNo,注意写参数时一定要和返回的一样(最好是复制),比如写成了data[0].sysno就提取不到,因为在data中找不到sysno

    关联请求

    支付接口引用${ordersysno} 订单支付引用成功

    相关文章

      网友评论

          本文标题:jmeter提取json数据进行接口参数关联

          本文链接:https://www.haomeiwen.com/subject/dtovvrtx.html