首页 > 编程语言 >python-mock接口测试

python-mock接口测试

时间:2024-02-19 14:22:40浏览次数:28  
标签:依赖 python 接口 trade 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接口测试

标签:依赖,python,接口,trade,mock,测试,模拟
From: https://www.cnblogs.com/lwcx/p/18020903

相关文章

  • python的typing模块
    python的typing模块参考:3个提高Python开发效率的小工具、Python3Typing模块详解typeing模块在python中提供类型支持,主要功能有:类型检查,防止运行时出现参数和返回值类型不符合作为开发文档附件说明,方便使用者调用时传入和返回参数类型(python在调用函数或变量时,无需对参数......
  • Python量化金融风险分析
    金融市场是一个复杂且多变的生态圈,涉及从经济数据到政治动态的各种影响因素。无论你身处何种角色——小投资者、企业财务,还是大型金融机构的资产经理,你都必须面对各种不确定性,例如股价波动、利率变动或突发事件如政治危机和自然灾害。因此,量化风险评估不仅是一种科学需求,更是一种......
  • python多版本管理软件pyenv
     [安装]#installpyenvrequmentlibrariessudoaptupdate;sudoaptinstallbuild-essentiallibssl-devzlib1g-dev\libbz2-devlibreadline-devlibsqlite3-devcurl\libncursesw5-devxz-utilstk-devlibxml2-devlibxmlsec1-devlibffi-devliblzma-dev#i......
  • Python模块之warnings
    模块作用简介:warnings模块由PEP230引入,作为一种警告程序员关于语言或库功能的变化的方法,以预测Python3.0带来的向后不兼容的变化。它还可用于报告从丢失的库中恢复的配置错误或功能退化。不过,最好是通过logging模块提供面向用户的消息,因为发送到控制台的警告可能丢失。......
  • 基于stm32的spi接口dma 数据收发实例解析
    一前记  SPI接口平时用的比较少,再加上对CUBEMX不是很熟悉,这里踩了不少坑才把问题解决。针对遇到了不少问题,是要值得梳理一下了。二源码解析1SPI的DMA发送端配置: 2主函数源码:uint32_tg_spi_cnt=0;voidHAL_SPI_TxCpltCallback(SPI_HandleTypeDef*hspi){......
  • python+selenium基础语法
    一、执行环境Python3.12.0selenium3.14.0二、八大元素定位//示例:打开百度,输入123,点击搜索fromseleniumimportwebdriverfromtimeimportsleepfromselenium.webdriver.common.byimportBydeftest():driver=webdriver.Chrome("D:/driver/chromedri......
  • python函数传参
    python函数传参参考:python函数参数传递(params,*params,**params)位置参数常见的函数参数:defadd_both(x,y):returnx+y默认参数defenroll(name,gender,age=6,city='Beijing'):print('name:',name)print('gender:',gender)print(&......
  • STM32 SPI接口 DMA normal 和circual区别
     DMA有normal和circular两种模式。circular模式:就调用这个函数一次就可以了,DMA一直开启,一帧数据发送完毕之后里面发送下一帧,中间没有停顿。这样确实是快了,也释放了CPU,各路的数据采集因为缺少了等待串口发送的时间,所以就间接提高的了数据更新速率。但有个致命缺陷:数据采集和数......
  • ts接口03
    //接口对对象的形状进行描述可以理解为一种约束//?表示为可选属性,表示可有可无//[prop:string]代表任意属性,当不确定属性名的时候,属性类型,可以使用,但是要注意的是,一旦确定了不是any类型,而是string,number,Boolean之类的,其他的类型也会变成他的子集//[prop:string]中如......
  • 【60行代码解决】2024年最新版python爬虫有道翻译js逆向
    一、表单参数sign加密sign:c0f36866a9c650144ed5bac4eba532a7这种32位一般是MD5加密1.搜索sign:2.点击去分别在每个**sign:某某某**处打上断点结果在这个断点断住了3.原代码constu="fanyideskweb",d="webfanyi"functionj(e){returnc.a.createHash......