python使用Flask作为MockServer的方法

时间:2022-08-14 23:18:31

日常开发/测试过程中,需要对相关服务添加挡板--Mock

 

简单介绍一下使用python的Flask插件,对相关的服务进行Mock

 

# coding:utf-8
import os
from flask import Flask, render_template, request

app = Flask(__name__, static_folder=".", template_folder="./templates")


@app.route('/delete')
def index():
    return render_template('index.html')


@app.route('/delete/user', methods=['GET', 'POST'])
def delete():

    get_data = request.values.get('c_id')
    get_id = request.values.get('id')
    if len(get_data) == 0 or len(get_id) == 0:
        return render_template('index.html', data="Please check your custom id or id.")

    p = os.popen("sh /home/xx.sh " +
                 get_data + " " + get_id).read()

    if len(p) == 0:
        return render_template('index.html', data="Execute False. custom_id=" + get_data + " id=" + get_id)
    else:
        return render_template('index.html', data=str(p)+" custom_id=" + get_data + " id=" + get_id)


if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0', port=80)

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>删除用户</title>
</head>
<body>
<br></br>
<br></br><br></br>
<div style='color:blue;text-align:center'>
<form method="post" action="/delete/user">
    <input maxlength="12" type="text" name="c_id" id="c_id" placeholder="input custom id" value=""style="font-size:1.4em;height:2.7em;border-radius:10px;border:1px solid #c8cccf;color:#986655;">
    <input maxlength="18" type="text" name="id" id="id" placeholder="input id" value="" style="font-size:1.4em;height:2.7em;border-radius:10px;border:1px solid #c8cccf;color:#986655;">
    <input type="submit" value=" Delete " style="font-size:1.4em;height:2.7em;border-radius:10px;border:1px solid #c8cccf;color:#986655;"/>
</form>
    <br><br><br>
    {% if data %}
        <span>{{data}}</span>
    {% endif %}
</div>

</body>
</html>

 

以上的代码,只是通过页面的元素来获取对应的值,然后通过值作为参数,进行执行

 

再介绍一个使用json发送接口的使用方式。具体需要修改的地方,要根据实际情况来进行。

 

# coding:utf-8
import random

from flask import Flask, request, jsonify, abort

app = Flask(__name__)  # 实例化一个Flask对象


@app.route("/api/user/reg/", methods=["POST"])
def reg():
    if not request.json or 'name' not in request.json or 'password' not in request.json:
        code = {"code": "404", "msg": "失败", "data": {}}
        return jsonify(code)
        # abort(404)
    res = [
              {
                "code": "100000",
                "msg": "成功",
                "data": {
                  "name": "李六",
                  "password": "e10adc3949ba59abbe56e057f20f883e"
                }
              },
              {
                "code": "100001",
                "msg": "失败,用户已存在",
                "data": {
                  "name": "李六",
                  "password": "e10adc3949ba59abbe56e057f20f883e"
                }
              },
              {
                "code": "100002",
                "msg": "失败,添加用户失败",
                "data": {
                  "name": "李六",
                  "password": "e10adc3949ba59abbe56e057f20f883e"
                }
              }
          ]

    return jsonify(random.choice(res))


if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0', port=5000)

 

 

 

 

---------我是底线---------