题图援用自 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
1. 第一层是 key 值为 “header” 的 value
2. 第二层是 key 值为 “Host” 的 value
3. 判断 key 值为 “Host” 的 value 值是否与 “httpbin.org” 相等
字典混合列表格局断言,判断 hogwarts 对应的列表的第一位是 ‘a’
4. 第一层是 key 值为 ‘form’ 的 value
5. 第二层是 key 值为 ‘hogwarts’ 的 value
6. 第三层是索引为 0 的 value
7. 判断上一步索引为 0 的 value 是否等于 “a”
更多内容,咱们在后续章节具体解读。