python接口断言

  • 常用的断言方法:r.url, r.status_code, r.headers, r.cookies, r.json, r.request等。
  • 与unittest不同,pytest使用的是python自带的assert关键字来进行断言
  • assert关键字后面可以接一个表达式,只要表达式的最终结果为True,那么断言通过,用例执行成功,否则用例执行失败
一、环境安装
安装 JSON 库:
  • pip install json
  • 状态码断言
二、断言:
1.响应状态码断言
import requests
r = requests.get('http://httpbin.org/get')
assert r.status_code==200
assert 是 Python 的内置函数,用来判断表达式,当表达式条件为 False 的时候就会触发异常。
r.status_code 是 Response 对象内的一个方法,用于获得返回值的状态码。
assert r.status_code==200 就是在判断状态码是否等于200,如果不等于200则会抛出异常。
反例:响应状态码断言,判断响应状态码是否为400
2.JSON响应断言
在测试过程中,大部分接口的返回值都为 JSON 格式。所以,掌握如何对 JSON 响应值进行断言这一技能,可以更轻松的完善接口自动化测试用例。
多种类型响应值断言案例
1)字典格式,通过dict["key"]的方式,拿到value值
2)列表格式,通过 list[index] 拿到对应索引的 value 值。
在 JSON 的断言之中,主要应用的就是字典和列表自带的查找方法。如果碰到混合或者嵌套的情况,只需要一层一层拨开,直到找到需要进行断言的字段即可。
先打印出r.json(),如下:
{'args': {}, 'data': '', 'files': {},
'form': {'hogwarts': ['a', 'b', 'c']},
'headers': {'Accept': '/', 'Accept-Encoding': 'gzip, deflate',
'Content-Length': '32', 'Content-Type': 'application/x-www-form-urlencoded',
'Host': 'httpbin.org', 'User-Agent': 'python-requests/2.22.0',
'X-Amzn-Trace-Id': 'Root=1-5e8a01e3-0913fca09ac605ccc911ccde'},
'json': None, 'origin': '113.118.101.232',
'url': 'http://httpbin.org/post'}
1.1):字典格式断言,判断 headers 中的 Host 为 httpbin.org
import requests
  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
回答: 在Python中,我们可以使用断言(assert)来对接口返回的数据进行断言操作。断言是一种用于检查代码逻辑的工具,它用于在代码中插入检查点,确保代码的正确性。在接口测试中,我们可以使用断言来验证接口返回的数据是否符合预期。 在接口请求之后,我们可以通过获取返回的响应内容,并使用断言语句对其进行判断。通常,我们会使用断言来验证接口返回的状态码、返回的数据类型、返回的数据内容等。 例如,我们可以使用断言来验证接口返回的状态码是否为200: ```python import requests response = requests.get('http://example.com/api') assert response.status_code == 200, "接口返回状态码不为200" ``` 我们还可以使用断言来验证接口返回的数据类型是否为JSON: ```python import requests response = requests.get('http://example.com/api') assert response.headers\['Content-Type'\] == 'application/json', "接口返回数据类型不为JSON" ``` 此外,我们还可以使用断言来验证接口返回的数据内容是否符合预期。例如,我们可以使用断言来验证接口返回的数据中是否包含某个特定的字段或值: ```python import requests response = requests.get('http://example.com/api') data = response.json() assert 'name' in data, "接口返回数据中不包含'name'字段" assert data\['name'\] == 'John', "接口返回数据中'name'字段的值不为'John'" ``` 通过使用断言,我们可以在接口测试中对接口返回的数据进行验证,确保接口的正确性和稳定性。 #### 引用[.reference_title] - *1* [python接口断言](https://blog.csdn.net/weixin_42051799/article/details/128022741)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [[接口测试-实战]03 python3 怎么对接口数据做断言](https://blog.csdn.net/weixin_39828847/article/details/116185873)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值