D03_用例中提取数据:regex 正则方式

D03_用例中提取数据:regex 正则方式

在 httprunner 中可以通过正则表达式进行文本内容的提取:

  • 从响应的实体中进行正则提取
  • 响应的实体必须是“JSON”或者“HTML文本”类型
  • 格式为: <左边界>(提取内容的正则表达式)<右边界>
  • 常用提取的正则: (.*) 代表边界里面可以是“任意字符出现任意次数”

\httprunner-2.5.5\httprunner\response.py

在源码函数的注释中说明,通过正则方式提取时,可以从响应实体 JSON 或者 HTML 文本中提取

提取规则(类似LR的处理):

  • 从实体文本中找到待提取的内容
  • 界定其左右边界
  • 将待提取内容用正则表达式方式代替并置入括号中

案例

  1. 目的:从返回响应的 HTML 文本中,将某图片的标签代码提取出来
  2. 特点:
  • 该图片在一对 <td> 标签中,可以分别作为识别的左右边界(要具备唯一性)
  • 左侧 <td> 标签中有宽度属性值,正好3个数字
- config:
    name: 用例 - 测试进销存系统
  
- test:
    name: 步骤 - 打开登录页面

    request:
      url: http://localhost/myweb/jxc/index.asp
      method: GET

    extract:
      # 从以下响应 HTML 中提取 img 标签内容
      # <td width="322"><img src="images/login_02.gif" width="323" height="340"></td>
      - x: <td width="\d{3}">(.*)</td>

    validate:
      # 验证提取是否正确(判断提取和预期的编码字符串是否相等)。  
      - eq: [$x, <img src="images/login_02.gif" width="323" height="340">]
      

以上案例中提取说明:

  • 前面(左边界)是:<td width="\d{3}">,其中 \d 代表数字,{3}代表出现3次,即此处需要出现3个数字
  • 后面(右边界)是:</td>
  • 中间括号中内容即为需要提取的字符串,其中“.”代表任意字符,“*”代表出现任意次数

运行测试用例,查看测试报告中的日志信息,可以看到提取成功。

发布了30 篇原创文章 · 获赞 0 · 访问量 230

猜你喜欢

转载自blog.csdn.net/weixin_42007999/article/details/105718240