基于python Flask搭建mockServer服务

前言:

需要环境:python 、pycharm(其他编译器也是可以的)、flask。

需要了解概念:

一、MockServer是什么?

答:为实现mock概念而搭建的一个服务,Mock Server 在被测系统与外部系统之间搭建。

MockServer不是一个真实的后端系统, 你只需要让他满足你的接口测试需求即可。

二、Flask基本使用

2.1 flask 安装

pip install flask

验证 pip show flask

2.2 启动一个flask服务(本地后端服务)

结果:

点击 域名就会跳转到响应网页,出现 return 的返回值

2.3 请求flask 搭建的服务;代码及结果请求成功获取文本

2.4 动态服务--打开链接后需要加上随机参数

2.5 非动态服务

2.6 指定允许的请求方法

指定get请求方法如下:

如果运行post请求,代码及返回如下:

修改为对应 get方法进行请求,会返回200:(与指定get方法对应上)

还可以修改指定方法,去添加post请求:

@app.route(/zz/, methods=[get,post])
添加后,不管你是get请求也好,post请求也好都是可以请求成功的。

3、基于flask框架实现Mock Server
3.1例子
假设有一个登录接口,需要输入用户名和密码并获得返回结果。地址后缀名为:/api/login
首先:基于flask搭建 flaskServer

代码如下:mockServer.py 文件夹,下面直接帖代码了

# -*- coding: utf-8 -*-
from flask import Flask, request, jsonify

# 创建1个实例
app = Flask(__name__)
app.config[JSON_AS_ASCII] = False


# 指定路由和请求方法
@app.route(/api/login, methods=[POST])
def login():
    """  登录接口"""
    # 调试信息,打印请求方法
    print(request.method)
    # 获取请求数据,将数据变成字典
    data = request.get_json()
    # 调试信息, 打印请求的数据
    print(data)
    print(type(data))

    # 定义用户名和密码变量,从data中取值
    username = data[username]
    pwd = data[password]
    """
    1)参数为空
    2)用户名密码正确
    3)用户密码错误
    """

    if username ==  or pwd == :
        """
        Flask 框架里,可以用jsonify  返回 json数据
        使用 jsonify 时,返回的 http response 的 Content-Type 是application/json
        这样做是符合 HTTP 协议的规定的,这就是使用 jsonify 的原因之一
        """
        return jsonify({
            "code": "001",
            "msg": "用户名和密码不能为空"
        })
    elif username == zz and pwd == 123456:
        return jsonify(
            {
                "adress": {
                    "city": "北京"
                },
                "httpstatus": 200,
                "info": {
                    "age": 22,
                    "name": "zhx"
                },
                "mag": "success",
                "token": " 1HJHSJSNKSKSKSNSKHSKSDUIU"
            }
        )
    else:
        return jsonify({
            "code": "001",
            "msg": "username or password is wrong"
        })


if __name__ == __main__:
    # debug = True  开启调试模式
    app.run(host=127.0.0.1, port="5006", debug=True)

执行上面代码后,在执行下面代码即可;(用户名和密码为空)

当 用户名和密码正确时:

当 密码或者账号错误时:

经验分享 程序员 微信小程序 职场和发展