D09_用例中提取数据:content 响应实体提取案例

D09_用例中提取数据:content 响应实体提取案例

 

在 HttpRunner 中提取数据时,根据界定符的方式进行提取,涉及到的内容包括如下:

  • ["status_code", "encoding", "ok", "reason", "url"]
  • cookies
  • elapsed
  • headers
  • ["body", "content", "text", "json"]

 

 

在 httprunner-2.5.5\httprunner\response.py 源码中可以看到,HttpRunner 会自动判断实体类型是否是 JSON 格式,如果不是则默认为文本格式。

也就意味着,即便返回的实体是文本格式,但是提取时使用 json 也是可行的。

elif top_query in ["body", "content", "text", "json"]:
		try:
			# 返回json类型响应实体 
			body = self.json
		except exceptions.JSONDecodeError:
			# 如果响应实体不是json类型,则返回text类型
			body = self.text

 

 

案例:访问百度首页,返回的实体(HTML)内容:

<!DOCTYPE html><!--STATUS OK--><html><head> ..........

 

 

编写用例,提取响应实体并进行断言:


- config:
    name: TestCase

- test:
    name: TestStep -1
    request: 
      url: https://www.baidu.com/
      method: GET
      headers:
        User-Agent: 'ozilla/5.0 (Windows NT 6.1; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0'
    
    extract:
        b1: headers     # 提取整个响应头域,dict 类型
        b2: body        # 提取整个响应实体,百度首页返回时文本类型
        b3: content     # 提取整个响应实体
        b4: text        # 提取整个响应实体
        b5: json        # 提取整个响应实体
        b6: body.5      # 提取整个响应头域文本中,序号为5的字符

    validate:
        - len_gt: [$b1, 5]      # 验证 headers 中包括至少 5 个头域项
        - contains: [$b2, kw]   # 验证通过
        - contains: [$b3, kw]   # 验证通过
        - contains: [$b4, kw]   # 验证通过
        - contains: [$b5, kw]   # 验证通过
        - eq: [$b6, T]          # 验证通过

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值