• HttpRunner学习4--使用正则表达式提取数据


    前言

    在HttpRunner中,我们可通过extract提取数据,当响应结果为 JSON 结构,可使用 content 结合 . 运算符的方式,如 content.code,用起来十分方便,但如果响应结果为 text/html 结构时,便不能这么用了。

    这时候,我们能不能使用正则表达式来提取呢?答案是肯定的。

    本人环境:HttpRunner V1.5.8

    测试场景

    在这里,我将访问 TesterHome 的首页,通过正则表达式来提取响应数据中的 title标题 ,下面是在浏览器中访问和Fiddler抓包的结果。

    访问TesterHome

    Fiddler抓包

    extract中正则提取和断言

    从上面的抓包结果中,我们如果要提取 标题title 中的 TesterHome 关键字,可以使用正则表达式为:<title>(.+?)</title>。YAML格式的用例如下:

    - test:
        name: visit TesterHome
        request:
          url: https://testerhome.com/
          method: GET
        extract:
          - title: <title>(.+?)</title>
        validate:
          - eq: [status_code, 200]
          - eq: [$title, "TesterHome"]
    

    使用正则提取的数据,放入参数 title 中,如果后面需要用到该参数,则通过 $title 来引用。

    validate中使用正则

    除了在 extract 提取响应数据时使用正则,我们也可以直接在断言时使用正则。YAML格式的用例如下:

    - test:
        name: visit TesterHome 2
        request:
          url: https://testerhome.com/
          method: GET
        validate:
          - eq: [status_code, 200]
          - eq: ['<title>(.+?)</title>', "TesterHome"]
    

    我在这里使用正则时,若直接用 <title>(.+?)</title> 会报错,我们加上 单引号或双引号 即可,如 '<title>(.+?)</title>'"<title>(.+?)</title>"

    完整的用例:

    - config:
        name: re test
    
    - test:
        name: visit TesterHome
        request:
          url: https://testerhome.com/
          method: GET
        extract:
          - title: <title>(.+?)</title>
        validate:
          - eq: [status_code, 200]
          - eq: [$title, "TesterHome"]
    
    - test:
        name: visit TesterHome 2
        request:
          url: https://testerhome.com/
          method: GET
        validate:
          - eq: [status_code, 200]
          - eq: ['<title>(.+?)</title>', "TesterHome"]
    
  • 相关阅读:
    开发模型----快速原型模型
    开发模型--瀑布模型
    python_001
    Linux文件的类型与系统目录
    流程控制语句
    test命令
    排序sort && 取消重复行uniq
    sed命令——用来对文件数据的 选取、替换、删除
    颜色RGB大全
    Markdown的使用
  • 原文地址:https://www.cnblogs.com/wintest/p/11801547.html
Copyright © 2020-2023  润新知