python-mock接口测试

什么是mock?

测试桩,模拟被测对象的返回,用于测试

通常意义的mock指的就是mock server, 模拟服务端返回的接口数据,用于前端开发,第三方接口联调

为什么要mock?

1. 解决依赖问题:当我们测试一个接口或者功能模块的时候,如果这个接口或者功能模块依赖其他接口或其他模块,那么如果所依赖的接口或功能模块未开发完毕,那么我们就可以使用mock模拟被依赖接口,完成目标接口的测试。

2.单元测试:如果某个功能未开发完成,我们又要进行测试用例的代码编写,我们也可以先模拟这个功能进行测试  

3.模拟复杂业务的接口:实际工作中如果我们在测试一个接口功能时,如果这个接口依赖一个非常复杂的接口业务,那么我们完全可以使用mock来模拟这个复杂的业务接口,其实这个和解决接口依赖是一样的原理。 

 

如何mock?

1.利用抓包工具比如fiddler

2.可以利用web框架模拟,Django Flask ---python web开发框架,Flask的特点就是,结构简单,容易入门

 

一:利用flask编写一个最简单的接口==》简单举例

1.1安装Flask【在dos窗口输入:pip install flask】

1.2搭建mock服务端代码:

1.3客户端代码:

结果如下:

 到这里,我们不难看出,我们只是用flask框架重定义了一个接口,我们进行传参来取得自己想要的响应

 

二:mock接口测试实战案例

接口文档如下:

极简交易支付接口

接口路径: /trade/purchase

请求方式: POST

请求参数:

响应参数:

请求头:键:Content-Type 值:application/json

请求示例:

{
'out_trade_no':'20150320010101001',

'auth_code':'28763443825664394',

'buyer_id':'2088202954065786',

'seller_id':'2088102146225135',

'subject':'Iphone6',

'total_amount':'88.88',

}

成功返回示例:

{
'code':'40004',

'msg':'Business Failed',

'sub_code':'ACQ.TRADE_HAS_SUCCESS',

'sub_msg':'交易已被支付',

'trade_no':'2013112011001004330000121536',

'out_trade_no':'6823789339978248'

}

失败返回示例:

{'error': {'password': '密码错误'}, 'success': 'false'}

搭建mock服务端:

客户端代码:

返回结果如下:

这样就完成了mock接口测试

posted @ 2024-02-19 14:16  苦逼小李  阅读(92)  评论(0)    收藏  举报