金天牛

导航

jmeter对JSON返回数据处理和后续调用

想要解决的问题:

测试时,token等前面接口返回的数据,后面的请求时需要用到,通过查询接口,获取response数据,作为下个请求post的参数值

 后置处理器:JSON Extractor

1.先下载一个插件:JSONPathExtractor,使用时位置如图:

2.JSON提取器的参数说明

 

①Names of created variables: 后续请求的参数名称 
②JSON Path expressions:JSON表达式 ,用$表示json返回数据的整体。
③Match No.(0 for Random):匹配哪个,可为空即默认第一个 
④Default Values:未取到值的时候默认值

3.举例response返回JSON数据:

复制代码
{
    "code": "200",
    "message": "请求成功",
    "data": {
        "token": "eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiI0MjQwNTc2MTQ5ODE4MDgxMjgiLCJleHAiOjE1OTQ3Mjk3MzN9.Wgn6-MqpVLqP2PXjRAathQH9ZQ_lE1syM8syrSaSQlg",
        "rtoken": "eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiI0MjQwNTc2MTQ5ODE4MDgxMjgiLCJleHAiOjE1OTg5NjE1MzN9.UIITrTrF5nD9EQUTME35iEkPbTph7phWAKr_UD7lPOY",
        "employeeNo": "11288011",
        "uid": "424057614981808128"
    }
}
复制代码

JSON Path expressions 中:①取值message,可用$.message;②取值token,可用$.data.token

 

4.后续使用方法

 

 

后面的HTTP请求需要前面的参数时,token直接用${token}即可。

 

5.返回数据较多的举例

如下,response返回数据:

复制代码
{
    "code": 2000,
    "message": "success",
    "body": {
        "identifier": "JKCS5449-4",
        "useScopeStr": "全部",
        "executeTypeStr": "按周执行",
        "timeDTOList": [
            {
                "executeTime": "08:00",     
                "weekStr": "星期六"
            }
        ]
    }
}
复制代码

JSON Path expressions 中:

①. 取值identifier,可用$.body.identifier

②. 取值weekStr(数组),可用$.body.timeDTOList[0].weekStr

6. JSON响应断言

  当使用JSON请求和返回数据时,会出现请求的返回状态码是200,结果正常。但在JSON的返回数据中,却有code一项说明JSON是否取值正常,例如上面的代码样例。此时需要判断JSON中的结果是否正确。

  最简单的办法,就是判断JSON中是否包含正确的信息,例如第一个,正确的返回会包含“请求成功”。

 添加“响应断言”,测试字段选择“响应文本”,匹配规则选择“字符串”,测试模式输入“请求成功”。

 这样就可以判断JSON返回是否正常。

 

 

原文参考:https://www.cnblogs.com/rechin/p/8662744.html

如果想使用正则表达式提取,可参考:https://www.cnblogs.com/rechin/p/9134069.html

断言的可参考文档:https://www.cnblogs.com/georgexu/p/11224095.html

posted on 2020-07-14 20:10  金天牛  阅读(629)  评论(0编辑  收藏  举报