gpt4 book ai didi

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

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 30 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章接口测试系列文章之使用flask轻松搭建mock 服务由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

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

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

Flask 。

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

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

Falsk的安装 。

pip install flask 。

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

from flask import Flask  。

  。

app = Flask(__name__)  。

  。

@app.route('/')  。

  。

def index():  。

  。

     return 'Hello World'  。

  。

if __name__ == '__main__':  。

  。

    app.run()  。

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

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

在浏览器中输入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方法可以使用如下代码

@app.route('/check/<version>')  。

  。

def check_version(version=None):  。

  。

   if version=='1':  。

  。

       return 'version=1.0'  。

  。

    elif version=='2':  。

  。

       return 'version=2.0'  。

  。

    else:  。

  。

       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方法可以使用如下代码:

from flask import Flask,request  。

  。

@app.route('/login',methods=['POST'])  。

  。

def login():  。

  。

    if request.method == 'POST':  。

  。

        val=str(request.data, encoding = "utf8")  。

  。

        print (val)  。

  。

        if val.find('admin')==-1:  。

  。

            return ' status 400,No such user! '  。

  。

        else:  。

  。

             return 'status 200,admin login'  。

  。

     else:  。

  。

           return ' status 403,login need post method'  。

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

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

输出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%是会通过的.

原文地址:https://www.toutiao.com/i6911184010098082311/ 。

最后此篇关于接口测试系列文章之使用flask轻松搭建mock 服务的文章就讲到这里了,如果你想了解更多关于接口测试系列文章之使用flask轻松搭建mock 服务的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com