在使用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"
},
...
...
]
下面提取方法:
...
.extract()
.with_jmespath("body.data[?shift=='晚班']", "data_list")
....
...
.extract()
.with_jmespath("body.data[?shift=='晚班'] | [0] .startTime", "start_time")
....
shift_name = '晚班'
...
.extract()
.with_jmespath("body.data[?shift=='$shift_name'] | [0] .startTime", "start_time")
....
延伸应用:
类似的, 由于httprunner的asset也是用的JMESPath, 故可以应用在assert断言中, 进行期望值判断