在使用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"
},
...
...
]
下面提取方法:
- 提取符合条件name="晚班"的数据, 作为一个列表, 赋值给参数data_list
...
.extract()
.with_jmespath("body.data[?shift=='晚班']", "data_list")
....
- 提取符合条件name="晚班"的数据的第一个成员的startTime, 赋值给参数start_time, 注意表达式里面的空格使用
...
.extract()
.with_jmespath("body.data[?shift=='晚班'] | [0] .startTime", "start_time")
....
- 也可以传将shift在外赋值, 然后传参进表达式进行调用:
shift_name = '晚班'
...
.extract()
.with_jmespath("body.data[?shift=='$shift_name'] | [0] .startTime", "start_time")
....
延伸应用:
类似的, 由于httprunner的asset也是用的JMESPath, 故可以应用在assert断言中, 进行期望值判断
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)