unittest测试框架之Mock接口联调
unittest.mock 是一个用于测试的Python库。它允许使用mock对象替换受测试系统的部分,并对它们如何已经被使用进行断言。
Mock使用前提
在做接口测试时,开发还未完成接口的实现,自动化接口测试代码就没办法完成,这个时候就需要用Mock对象库来模拟接口响应结果,等到开发完成接口功能,再把Mock模拟响应结果的代码删除掉,整个自动化接口测试项目就完成了。
Mock简单的使用
导包(mock对象库不需要单独进行安装,unittest库中已经集成了mock对象库)
from unittest.mock import Mock
模拟一个简单的发送请求响应
准备一个发送请求的函数
def sendUrl():
# 下面的url为伪接口,访问不通
url = "http://127.0.0.1/login"
return requests.get(url=url)
直接调用发送请求函数,打印响应结果
response = sendUrl()
print(response)
-->> 结果如下(因为url地址是个伪地址,访问不通,所以会报错)
使用Mock模拟响应结果
- return_value:设置返回的结果
- sendUrl:创建的Mock对象,名称要与下面调用的函数名一致
sendUrl = Mock(return_value={"code": 0, "msg": "登陆成功"})
response = sendUrl()
print(response)
->> 结果如下:响应结果就是Mock对象设置的返回结果
使用Mock模拟引发异常
- side_effect:引发异常
- AssertionError:异常类型
sendUrl = Mock(side_effect=AssertionError('地址错误'))
response = sendUrl()
-->> 结果如下:成功的引发异常