HttpRunner自动化测试工具之获取响应数据&extract提取值到变量

获取响应数据

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即可,后面有专门写的中文乱码解码的问题解决

获取响应数据 响应正文(支持正则)

  • config:

name: 百度

base_url: https://www.baidu.com

  • test:

name: 百度主页

request:

url: /

method: GET

headers: # 如果断言为中文的话,加上headers的Accept-Language即可

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9

Accept-Encoding: gzip, deflate, br

Accept-Language: zh-CN,zh;q=0.9

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36

extract:

  • title: <title>(.+?)</title> # 可以使用正则表达式提取

validate:

  • eq: [$title,"百度一下,你就知道"]

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

通过 extract 提取响应正文的数据并存储到变量中(提取json数据),格式以content为根节点:content.key.key.key ;如下图:

注:可通过 https://www.bejson.com/ 该网址展示json视图更清晰

获取响应数据 响应正文 (支持json)

  • config:

name: 用户标签管理

base_url: https://api.weixin.qq.com

  • test:

name: 百度主页

request:

url: /cgi-bin/tags/get

method: GET

params:

access_token: 49_lsdk_pQJJ4R5IWdWVcDTQu3bHyVOsHDlAcuA99UtVwsmzrtHhSGJKgSPMi3i3TdOQrGeuzZdB62K1uhcKJQAk6eKjzlBL7HgWvAmw7gfiRTp00QnLdSZzN7ul9f2TMPex-Iz2tCg-ZWsSPLbJTJdABAYIY

extract:

validate:

  • eq: [$id,2]

  • eq: [$name,"星标组"]

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关推荐
天才测试猿几秒前
Jmeter命令行压测&生成HTML测试报告
软件测试·测试工具·jmeter·职场和发展·jenkins·测试用例·压力测试
fiveym5 分钟前
PXE 装机引导文件提取与验证(Debian 9.13 适配,含 TFTP 传输测试)
运维·debian
程序员三藏6 分钟前
Jmeter的三种参数化方式
自动化测试·软件测试·python·测试工具·jmeter·测试用例·压力测试
wanhengidc7 分钟前
云手机 多开无忧 科技运行
运维·服务器·科技·游戏·智能手机
测试人社区—66791 小时前
破茧成蝶:DevOps流水线测试环节的效能跃迁之路
运维·人工智能·学习·flutter·ui·自动化·devops
秋刀鱼 ..2 小时前
第七届国际科技创新学术交流大会暨机械工程与自动化国际学术会议(MEA 2025)
运维·人工智能·python·科技·机器人·自动化
CheungChunChiu8 小时前
Linux 内核设备模型与驱动框架解析 ——以 rk-pcie 为例
linux·运维·ubuntu
姚不倒9 小时前
负载均衡的概念、策略以及两个核心组件 Nginx 和 Kube-proxy 的对比。
运维·nginx·云原生·kubernetes
列逍9 小时前
Linux进程(三)
linux·运维·服务器·环境变量·命令行参数
测试人社区—667911 小时前
提升测试覆盖率的有效手段剖析
人工智能·学习·flutter·ui·自动化·测试覆盖率