httprunner怎么提取date里响应数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了httprunner怎么提取date里响应数据相关的知识,希望对你有一定的参考价值。

参考技术A 获取响应数据步骤如下:

extract: 提取

注:extract 应与request保持同一层级

1、响应行,响应头;通过 extract 提取响应的数据并存储到变量中,如下图:

注:变量名的前面要有 -

复制代码
# 获取响应数据: 响应行(200,ok)\响应头
- config:
name: 测试百度网站
base_url: https://www.baidu.com

- test:
name: 接口名称 百度接口
request:
url: /
method: GET
extract: # 提取值存储到变量中
- code: status_code # 响应码
- info: reason # ok
- header_Content: headers.Content-Type # 响应头部
validate:
- eq: [$code,200] # 引用变量 $变量名
- eq: [$info,"OK"]
- eq: [$header_Content,'text/html']
复制代码
2、获取响应正文

extract 解析响应正文(支持正则)

通过 extract 提取响应正文的数据并存储到变量中(可使用正则提取),如下图:

注:如果断言为中文,加上headers头部的Accept-Language即可,后面有专门写的中文乱码解码的问题解决

jmeter中用json提取器提取响应数据中的多个值

json串 []表示对象组成的数组,表示对象。

对象里包含多个 "属性":属性值。属性值可以是值,或数组,或对象。

 

JSON Extractor使用json path表达式匹配,可以一次取多个变量值。$表示响应的根对象。取子对象或对象的属性用.  取数组里的对象用[],数组索引从0开始。

示例:

 

例1  找一个响应结果是json格式的,分析响应结果。

比如下面的响应整个是个数组,其中有4个对象。因此取值用$[索引取0-3或*取所有].属性值

技术图片

 

 

 例2  如果响应类似"属性":["sx":1,,],整个响应是个对象。取sx的值:$.属性[0].sx

技术图片

 

 

 json 提取器参数介绍

 

 names of created variables :接收值的变量名,多个变量时用分号分隔

 

 json path: json path表达式,也是用分号分隔

 

 match no:0随机;n取第几个匹配值;-1匹配所有,后续引用用 变量名_N 取第N个值。

 

 default values: 缺省值,匹配不到值的时候取该值

技术图片

 

 

 技术图片

 

 修改json extractor 获取数组的所有值   $[*].属性。match no=3取第3个。

 技术图片

 

 match no=5,数组越界后,取default values

技术图片

 

 

技术图片

 

 

 

 

 

 

 修改json extractor  设置match no =-1 匹配所有值;并修改接收参数的http请求的参数为 $varname_N。N=1-4.

技术图片

 

 

 技术图片

 

技术图片

 

 修改json extractor, $varname_N的N越界之后取不到参数

技术图片

 

 

技术图片

 

以上是关于httprunner怎么提取date里响应数据的主要内容,如果未能解决你的问题,请参考以下文章

接口自动化框架httprunner--设置接口关联

接口自动化框架httprunner--设置接口关联

03-Httprunner-JMESPath提取返回结果

httprunner 使用总结

httprunner学习7-extract提取content返回对象

httprunner学习21-正则表达式提取(extract)与校验(validate)