接口测试|HttpRunner获取响应数据&extract提取值到变量

举报
霍格沃兹测试开发 发表于 2023/02/02 16:53:59 2023/02/02
【摘要】 HttpRunner获取响应数据&extract提取值到变量 获取响应数据extract提取注:extract 应与request保持同一层级响应行,响应头;通过 extract 提取响应的数据并存储到变量中,如下注:变量名的前面要有 -# 获取响应数据: 响应行(200,ok)\响应头- config: name: 测试百度网站 base_url: https://www.b...

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']
  1. 获取响应正文

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 ;如下:

注:可使用json在线解析网站对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:
      - id: content.tags.0.id
      - name: content.tags.0.name
    validate:
      - eq: [$id,2]
      - eq: [$name,"星标组"]
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。