基于python Flask搭建mockServer服务

 前言:

为什么要用mockserver呢!我们自己内部接口需要使用微信,支付宝的支付功能,就需要验证和打钱才能返回固定的成功返回信息,成本太高,我们就可以用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)

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

当 用户名和密码正确时:

当 密码或者账号错误时:

文章到这里就结束了,各位铁汁如果有什么觉得不对的可以发在评论区咱们来讨论哈,
听说关注我并三连的铁汁都已经升职加薪暴富了哦!!!!

猜你喜欢

转载自blog.csdn.net/csdnchengxi/article/details/124945768