文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

接口测试系列文章之使用flask轻松搭建mock 服务

2024-12-03 14:57

关注

做过接口测试的同学一定听说过mock Server,大家会觉得其很神秘,很高大上!mock Server出现的原因是现今的业务系统很少有孤立存在的,它们或多或少需要使用兄弟团队或是其他公司提供的服务,这给我们的联调和测试造成了麻烦。于是就有了解决方案——搭建一个临时的server,模拟那些服务,提供数据进行联调和测试。下图很好的解释了什么是Mock server


Flask

Flask是一个Python编写的Web 微框架,让我们可以使用Python语言快速实现一个网站或Web服务。

[[360834]]

Falsk的安装

pip install flask

Flask构建一个web服务简直太快了,7行代码就可以搞定,helloword代码如下:

  1. from flask import Flask 
  2.  
  3. app = Flask(__name__) 
  4.  
  5. @app.route('/'
  6.  
  7. def index(): 
  8.  
  9.      return 'Hello World' 
  10.  
  11. if __name__ == '__main__'
  12.  
  13.     app.run() 

然后在ide中运行这个py文件,显示如下:


在浏览器中输入http://127.0.0.1:5000/ 可以看到浏览器中显示Hello World

代码分析如下:

@app.route('/')说明了你要访问的url,'/'代表根目录;

return 'Hello World'代表在浏览器中显示Hello World,即请求http://127.0.0.1:5000/ 的返回值;

app.run()表示启动mock 服务。

如果我们需要构建带参数的get方法可以使用如下代码:

  1. @app.route('/check/'
  2.  
  3. def check_version(version=None): 
  4.  
  5.    if version=='1'
  6.  
  7.        return 'version=1.0' 
  8.  
  9.     elif version=='2'
  10.  
  11.        return 'version=2.0' 
  12.  
  13.     else
  14.  
  15.        return 'bad version' 

 这里相当于是在url中输入的参数

在浏览器输入127.0.0.1:5000/check/2 会输出version=2.0

在浏览器输入127.0.0.1:5000/check/1会输出version=1.0

在浏览器输入127.0.0.1:5000/check/111会输出bad version,

这个实例很容易模拟了我们需要的get方法的请求,判断具体方法,然后返回相应的值。

如果我们需要创建post方法可以使用如下代码:

  1. from flask import Flask,request 
  2.  
  3. @app.route('/login',methods=['POST']) 
  4.  
  5. def login(): 
  6.  
  7.     if request.method == 'POST'
  8.  
  9.         val=str(request.data, encoding = "utf8"
  10.  
  11.         print (val) 
  12.  
  13.         if val.find('admin')==-1: 
  14.  
  15.             return ' status 400,No such user! ' 
  16.  
  17.         else
  18.  
  19.              return 'status 200,admin login' 
  20.  
  21.      else
  22.  
  23.            return ' status 403,login need post method' 

 通过RESTclient(Firefox插件)构建请求如下:


输出admin login

代码解析如下:

methods=['POST'] 限定了可以使用的http方法,只能使POST;

request.method 获取request的方法;

request.data获取request中data的值;

str(request.data, encoding = "utf8") 把request.data的值从bytes类型转换到str类型。

好了,通过上面的实例我们就可以很轻松的模拟POST或者GET方法来构建Mock Server了!

Flask和Django的选择

Django也是python web开发的主流框架,他与flask相比区别如下:

Flask提供了灵活性,简单性和细粒度的控制。

Flask不受限制,让你决定如何实现应用程序。

Django为我们的Web应用程序开发提供了管理面板,数据库界面,目录结构和ORM的全方位体验。

如果我们只需要开发一个轻量级网站或者特定的微服务(比如mock server),我们根本用不上Django自带的大而全的组件和功能,这时我们应该毫不犹豫地选择Flask;如果我们要开发包含各种功能的传统企业级网站(比如电商,新闻内容管理,社交网站,办公OA),使用Django能帮我们节省不少寻找或开发第三方扩展的精力。

总结

关于mock server在接口测试的面试中,通常都是终极考核,如果你能了解相关内容,并能够搭建mock server,那么你的技术面试考核90%是会通过的!

 

来源:今日头条内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯