解决接口依赖,数据依赖的工具 之一 -mock

问题场景:

  1、需要进行接口测试用例脚本设计,调试,可是开发接口尚未交付。没有可用接口?

  2、接口依赖,依赖接口出问题,无法正常调用调试接口测试脚本。case依赖问题?

解决方案:

注:以下都是基于python3.X的环境开展 (小编的版本:3.7.3)

  在工作过程中,经常会遇到上述这两种情况。测试工作需要提前介入。这个时候就要借助其他的工具来达到接口模拟返回的效果。今天在整理mock服务的同时,也来列举一下,都有哪些方法,工具,可以应用于减少类似接口情况的依赖问题。

以下例子都是简单应用,排名不分先后。

一、通过mock.Mock,替换数据返回,或者是引发异常

  参数:Mock( spec=None , side_effect=None , return_value=DEFAULT , wraps=None , name=None , spec_set=None , unsafe=False , **kwargs 

  Mock可传入的参数,当前主要应用的是,return_value=DEFAULT这个参数,如果对其他参数的应用有兴趣的话,可以查阅官方文档,文章默认会记录其连接 

  导入Mock :  from  unittest.mock  import   Mock  

  1、return_value    设置此项以配置通过调用模拟返回的值

  实例化Mock类得到mock对象,设置对象的返回值

  替换需要调用的实例 ,设置返回值,return_value =data ( 这里定义了一个字典)  如图

  模拟了返回数据,这里可以做的事情就很多了。比如添加断言,判断内容,或者是判断响应码,等等。可以根据实际需求,去返回相对应的值

    

 

 

 2、side_effect   这可以是在调用模拟时要调用的函数、可迭代或要引发的异常(类或实例)

  

 官方文档:https://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.return_value

 

二、通过fiddler 自动响应,返回数据  

 --待补充

三、应用django,开发web接口,模拟数据返回

 --待补充

文档:https://www.runoob.com/django/django-first-app.html  

  

四、应用flask,实现接口,以及数据返回

  如果说前面的mock是模拟接口返回的话,那么flask就是创建一个接口,然后你可以定义接口返回的数据,接收的参数

  1、创建一个服务,通过flask框架    server = flask.Flask(__name__)

  2、@server.route()可以将普通函数转变为服务、接口的路径、请求方式,如果不写methods则默认get方法

  3、编辑函数,设置get,post方法需要返回的数据

  4、运行时定义host,port,运行后访问接口

   

   5、接口访问

   

 

posted @ 2022-11-08 11:01  依米花开了  阅读(239)  评论(0编辑  收藏  举报