- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章接口测试系列文章之使用flask轻松搭建mock 服务由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
做过接口测试的同学一定听说过mock Server,大家会觉得其很神秘,很高大上!mock Server出现的原因是现今的业务系统很少有孤立存在的,它们或多或少需要使用兄弟团队或是其他公司提供的服务,这给我们的联调和测试造成了麻烦。于是就有了解决方案——搭建一个临时的server,模拟那些服务,提供数据进行联调和测试。下图很好的解释了什么是Mock server 。
Flask 。
Flask是一个Python编写的Web 微框架,让我们可以使用Python语言快速实现一个网站或Web服务.
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文件,显示如下:
在浏览器中输入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插件)构建请求如下:
输出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的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
为了构建 CentOS 6.5 OSM 切片服务器,我正在寻找一些文档和/或教程。 我试过this one正如我在我的 previous post 中所说的那样但它适用于 Ubuntu 14.04,而
我正在寻找可用于集成任何源代码控制管理系统的通用 git 桥(如 git-svn、git-p4、git-tfs)模板。 如果没有这样的模板,至少有一些关于如何在 git 端集成基本操作的说明(对于其他
1、前言 redis在我们企业级开发中是很常见的,但是单个redis不能保证我们的稳定使用,所以我们要建立一个集群。 redis有两种高可用的方案: High availabilit
简介 前提条件: 确保本机已经安装 VS Code。 确保本机已安装 SSH client, 并且确保远程主机已安装 SSH server。 VSCode 已经安装了插件 C/
为什么要用ELK ELK实际上是三个工具,Elastricsearch + Logstash + Kibana,通过ELK,用来收集日志还有进行日志分析,最后通过可视化UI进行展示。一开始业务量比
在日常办公当中,经常会需要一个共享文件夹来存放一些大家共享的资料,为了保证文件数据的安全,最佳的方式是公司内部服务器搭建FTP服务器,然后分配多个用户给相应的人员。今天给大家分享FileZilla搭
最近由于业务需要,开始进行 Flutter 的研究,由于 Flutter 的环境搭建在官网上有些细节不是很清楚,笔者重新整理输出 1. 配置镜像 由于在国内访问 Flutter
目录 1. 安装go软件包 2. 配置系统变量 3. 安装git 4. 设置go代理 5. 下载gin框架 6. 创建项目 7.
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任
上篇文章给大家介绍了使用docker compose安装FastDfs文件服务器的实例详解 今天给大家介绍如何使用 docker compose 搭建 fastDFS文件服务器,内容详情如下所示:
目录 1.创建Maven 2.Maven目录和porm.xml配置 3.配置Tomcat服务器 1.创建Maven
laravel 官方提供 homestead 和 valet 作为本地开发环境,homestead 是一个官方预封装的 vagrant box,也就是一个虚拟机,但是跟 docker 比,它占用体积
这个tutorial显示了 Razor Pages 在 Asp.Net Core 2 中的实现。但是,当我运行 CLI 命令时: dotnet aspnet-codegenerator razorp
我创建了一个单独的类库项目来存储数据库上下文和模型类。在同一解决方案中,我创建了一个 ASP.NET MVC 项目并引用了类库项目,并在项目的 Web.config 文件中包含了数据库上下文的连接字符
关于代码托管,公司是基于Gitlab自建的,它功能全而强大,但是也比较重,我个人偏向于开源、小巧、轻便、实用,所以就排除了Github,在Gogs和Gitea中选者。Gogs在Github有38
目录 1、高可用简介 1.1 高可用整体架构 1.2 基于 QJM 的共享存储系统的数据同步机制分析 1.3 NameNode 主
Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。 在高并发连接的情况
对于我们的 ASP.NET Core 项目,我们使用包管理器控制台中的 Scaffold-DbContext 搭建现有数据库。 每次我们做脚手架时,上下文类与所有实体一起生成,它包含调用 option
我正在使用 .net 核心 2.0。我已经安装了以下 nuget 包:1: Microsoft.AspNetCore.All2: Microsoft.EntityFrameworkCore.Tools
我正在使用 NetBeans 及其 RAD 开发功能开发 JEE6 JSF 应用程序。我想使用脚手架来节省更新 Controller 和模型 View 的时间。 OneToMany 关联在 View
我是一名优秀的程序员,十分优秀!