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>
  • 中间括号中内容即为需要提取的字符串,其中“.”代表任意字符,“*”代表出现任意次数

 

 

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

 

用sql解析一下以下josn: [{"supply_id":"c05debb4-55d5-4c46-85e9-b0ae4b40658d","is_enabled":true,"supply_code":3251,"supply_name":"乐颐食品(深圳)有限公司","before_cost_unit":390,"after_cost_unit":360,"diff_cost_unit":-30,"diff_cost_unit_percentage":-7.69,"before_gross_margin_percentage":21.69,"after_gross_margin_percentage":27.71,"diff_gross_margin_percentage":6.02},{"supply_id":"c7cb2c72-d608-46dc-9650-b31d922fc515","is_enabled":false,"supply_code":3690,"supply_name":"云南绿之恋农业科技有限公司","before_cost_unit":390,"after_cost_unit":360,"diff_cost_unit":-30,"diff_cost_unit_percentage":-7.69,"before_gross_margin_percentage":21.69,"after_gross_margin_percentage":27.71,"diff_gross_margin_percentage":6.02},{"supply_id":"7bcc9770-e28b-45af-96e1-dbd15c337658","is_enabled":true,"supply_code":4410,"supply_name":"广州绿之恋农业科技有限公司","before_cost_unit":390,"after_cost_unit":360,"diff_cost_unit":-30,"diff_cost_unit_percentage":-7.69,"before_gross_margin_percentage":21.69,"after_gross_margin_percentage":27.71,"diff_gross_margin_percentage":6.02},{"supply_id":"8625f2f8-f661-490a-9e55-4aa1cae5a8a6","is_enabled":true,"supply_code":1504,"supply_name":"深圳市正禾蔬菜有限公司","before_cost_unit":390,"after_cost_unit":360,"diff_cost_unit":-30,"diff_cost_unit_percentage":-7.69,"before_gross_margin_percentage":21.69,"after_gross_margin_percentage":27.71,"diff_gross_margin_percentage":6.02},{"supply_id":"49481833-e099-4eaf-9c9b-ddf4c63fbe63","is_enabled":true,"supply_code":1396,"supply_name":"福州优野生态农业有限公司(佳素)","before_cost_unit":390,"after_cost_unit":360,"diff_cost_unit":-30,"diff_cost_unit_percentage":-7.69,"before_gross_margin_percentage":21.69,"after_gross_margin_percentage":27.71,"diff_gross_margin_percentage":6.02},{"supply_id":"0d55599b-c6a6-4896-99e5-09f9379b5c8b","is_enabled":false,"supply_code":1205,"supply_name":"福州耕韵生态农业开发有限公司","before_cost_unit":390,"after_cost_unit":360,"diff_cost_unit":-30,"diff_cost_unit_percentage":-7.69,"before_gross_margin_percentage":21.69,"after_gross_margin_percentage":27.71,"diff_gross_margin_percentage":6.02},{"supply_id":"fa417a5a-d275-44bf-895b-d03aae5b932e","is_enabled":true,"supply_code":4171,"supply_name":"遂宁市旭塘农业有限公司","before_cost_unit":390,"after_cost_unit":360,"diff_cost_unit":-30,"diff_cost_unit_percentage":-7.69,"before_gross_margin_percentage":21.69,"after_gross_margin_percentage":27.71,"diff_gross_margin_percentage":6.02}]
最新发布
07-13
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值