接口测试框架实战(二)| 接口请求断言
题图引用自 Real Python 接口请求断言是指在发起请求之后,对返回的响应内容去做判断,用来查看是否响应内容是否与规定的返回值相符。在发起请求后,我们使用一个变量 r 存储响应的内容,也就是 Response 对象。Response 对象有很多功能强大的方法可以调用,比如直接获取响应头,获取 Unicode 编码后的响应内容,获取二进制的响应内容,获取原始的响应内容等等。获得响应头获得编码后的响应值:还可以使用 r.raw 获得原始响应内容,r.content 获得二进制的响应内容,另外还有编码为 JSON 格式的响应内容,会在后面的章节进行详述。安装 JSON 库:响应状态码断言:assert 是 Python 的内置函数,用来判断表达式,当表达式条件为 False 的时候就会触发异常。r.status_code 是 Response 对象内的一个方法,用于获得返回值的状态码。assert r.status_code==200 就是在判断状态码是否等于 200,如果不等于 200 则会抛出异常。反例:响应状态码断言,判断响应状态码是否为 400 从上个例子可以知道,这个响应状态码应该是 200,因为与 400 不相等,所以抛出了异常。在测试过程中,大部分接口的返回值都为 JSON 格式。所以,掌握如何对 JSON 响应值进行断言这一技能,可以更轻松的完善接口自动化测试用例。r.json() 对于响应值 r 先进行 JSON 编码:对于字典格式,可以通过 dict[“key”] 的方式拿到 value 值.对于列表格式,可以通过 list[index] 拿到对应索引的 value 值。在 JSON 的断言之中,主要应用的就是字典和列表自带的查找方法。如果碰到混合或者嵌套的情况,只需要一层一层拨开,直到找到需要进行断言的字段即可。字典格式断言,判断 headers 中的 Host 为 httpbin.org 2
1.第一层是 key 值为 “header” 的 value
2.第二层是 key 值为 “Host” 的 value
3.判断 key 值为 “Host” 的 value 值是否与 “httpbin.org 2” 相等字典混合列表格式断言,判断 hogwarts 对应的列表的第一位是 ‘a’
4.第一层是 key 值为 ‘form’ 的 value
5.第二层是 key 值为 ‘hogwarts’ 的 value
6.第三层是索引为 0 的 value
7.判断上一步索引为 0 的 value 是否等于 “a”更多内容,我们在后续章节详细解读。
更多学习资料戳下方!!!
评论