响应断言
状态码断言
在请求上【右键】—【添加】—【断言】—【响应断言】
在断言中添加具体的值
- 响应代码: 状态码
- 相等: 值相等
- 测试模式: 具体的值。
执行的时候,如果断言通过,查看结果树中是不会显示。
只有当断言不通过的时候,查看结果树中会有对应的错误提示。
当失败的场景。
响应文本断言
上面是发布话题返回的结果。需要对发布成功的返回结果进行断言。
结果中应该包含
"success":true,"topic_id"
在请求上添加 响应断言。
使用响应文本进行断言。
断言方式为 包括
。
使用响应文本 断言的方式可以满足大部分场景的测试。但是具体某些场景可能不太适合。比如
主题首页 接口 limit字段的值为 15, 那么返回的结果中应该有15条记录。
针对这个检查点进行断言, 使用上述的 响应断言 实现不了。
JSON JMESpath 断言
主要参考: https://jmespath.org/specification.html#function-evaluation
根据文档的上的语法, 使用 length(@)
函数可以获取数据的长度。
那么现在可以使用 jmspath 断言。
在接口上 — 【右键】—【添加】—【断言】—【JSON JMESPath Assertion】
添加对应的数据即可。
练习
在 主题首页 接口中 添加 tab = “ask” 的请求参数,服务器返回结果中所有的话题的 tab值应该为 ask
请对上面的需求添加断言。
还是使用JMESpath 断言
data[?tab=='ask']
查找所有的tab=“ask” 的话题。length()
返回数据的长度。
添加断言。 因为服务器的返回结果中有15条数据,15条数据的tab值都是ask,所以 length(data[?tab==’ask’]) 的长度也是15.
length(data[?tab=='ask'])
动态断言
根据上面的业务
创建话题的返回结果
两个接口返回的topic_id 值都一样。并且每次运动都是一个新的id值。
所以在 编辑主题上使用断言。
脑图
附件
https://www.bilibili.com/video/BV11B4y1P7nr/
点击查看【bilibili】
面试问题
- 你是怎么处理接口关联的?
- 遇到有关联的接口,先根据业务关系梳理接口执行顺序。
- 在上游接口中提取变量,提取变量常用方法:正则表达式提取器,json提取器,JMESPath 提取器等。
- 在下游引用变量即可。
- 如果上游接口中返回的数据特别多,数据的顺序也不确定,你怎么提取你想要的值?
- 先使用正则表达式,观察数据的特征,看能否使用这些特征确定数据的位置,如果能确定,可以直接使用正则。
- 如果不能确定,可以使用JMESPath json提取器的方式 根据条件进行数据提取。
- 你怎么判断接口是通过还是失败?
- 可以通过添加断言的方式。
- 主要通过两方面进行判断:
- 可以根据状态码断言
- 要根据服务器返回结果中的主要字段进行判断
- 响应文本 断言
- json 断言
- json JMESPath 断言