• httprunner中使用JMESPath进行数据提取技巧


    在使用httprunner时, 其进行数据提取是使用JMESPath进行的, httprunner示例中的提取未涉及一些稍复杂的提取, 所以专门学习了一下JMESPath的使用, 做个总结, JMESPath 官方文档路径:https://jmespath.org/specification.html#functions

    本人要提取的数据是一个list, 然后成员是字典, 结构是:

    [
      {
        "name": "晚班",
        "createdBy": "admin",
        "createdTime": 1656500919000,
        "endTime": "06:00",
        "id": "c409587b32b04301bdee69312aa5743f",
        "revision": 0,
        "startTime": "21:00"
      },
      ...
      ...
    ]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    下面提取方法:

    1. 提取符合条件name="晚班"的数据, 作为一个列表, 赋值给参数data_list
    ...
    .extract()
    .with_jmespath("body.data[?shift=='晚班']", "data_list")
    ....
    
    • 1
    • 2
    • 3
    • 4
    1. 提取符合条件name="晚班"的数据的第一个成员的startTime, 赋值给参数start_time, 注意表达式里面的空格使用
     ...
    .extract()
    .with_jmespath("body.data[?shift=='晚班'] | [0] .startTime", "start_time")
    ....
    
    • 1
    • 2
    • 3
    • 4
    1. 也可以传将shift在外赋值, 然后传参进表达式进行调用:
    shift_name = '晚班'
     ...
    .extract()
    .with_jmespath("body.data[?shift=='$shift_name'] | [0] .startTime", "start_time")
    ....
    
    • 1
    • 2
    • 3
    • 4
    • 5

    延伸应用:
    类似的, 由于httprunner的asset也是用的JMESPath, 故可以应用在assert断言中, 进行期望值判断

  • 相关阅读:
    【PCBA方案设计】握力计方案
    Spring读书笔记——bean创建(下)
    Word转PDF简单示例,分别在windows和centos中完成转换
    数据结构之二叉树(前提知识)
    1095 Cars on Campus
    Nginx安装搭建和环境准备教程(Ubantu)
    计算机网络填空题
    RabbitMQ 常用模式
    质量小议14 -- DevOps
    java中的异常[35]
  • 原文地址:https://blog.csdn.net/dushu990/article/details/126346825