导航

server进行API代码连接地址如下:    https://files.cnblogs.com/files/crstyl/flask%E6%9C%8D%E5%8A%A1%E7%AB%AF.zip  

概述

近期在写接口测试系列时,总感觉很不对劲,主要是缺乏一个比较完整的用于API测试的环境,四处找公开的API真心不靠谱,尝试了不少公开的,总觉得少了些什么,所以决定自己搭建一个,后续所有的实例都会基于本文所构建的mock server进行API实例演示。

选型

为了让大家了解python的强大,我们flask来做一个简单的server

如果你需要更多的了解flask请参见官方中文文档:

http://docs.jinkan.org/docs/flask

安装

安装flaask

pip install flask

支持

支持GET, POST, PUT, PATCH, DELETE 等http方法

看一个简单的flask代码

from flask import Flask
from flask import jsonify
from flask import request, Response
import random
import time
 
app = Flask(__name__)
 
"""
    这里所有的接口我们才去返回json串
    所有的json传对应的value值都为随机的
"""
 
# 生成随机字符串
def random_str():
    # 待选随机数据
    data = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()_+=-"
 
    # 用时间来做随机播种
    random.seed(time.time())
 
    # 随机选取数据
    sa = []
    for i in range(8):
        sa.append(random.choice(data))
    salt = ''.join(sa)
 
    return salt
 
# 构建response
def make_response():
    content = '{"result": "%s", "data": "%s"}' % (random_str(), random_str())
    resp = Response(content)
    resp.headers["Access-Control-Origin"] = '*'
 
    return resp
 
 
# http GET
@app.route("/query", methods=["GET"])
def query():
    print("///////////////////////////")
    return jsonify(
        username=random_str(),
        password=random_str()
        )
 
# http POST
@app.route("/update", methods=["POST"])
def update():
     
    return make_response()
 
 
# http delete
@app.route("/delete", methods=["DELETE"])
def delete():
     
    return make_response()
 
# http head
@app.route("/head", methods=["HEAD"])
def head():
     
    return make_response()   
 
if __name__ == "__main__":
 
    app.run(debug=True)

 

  

 

说明:

  1. 注意POST\HEAD\DELETE方法,响应头均被加入了Access-Control-Origin属性,其值为:*

  2. 注意即便给HEAD方法添加了响应内容,但你在实际接收到的内容是木有响应内容的,请思考为什么

  3. 上述仅用于简单的测试,不讨论其优雅、靠谱、高大上等等可能性

对应的flask代码及jmeter测试代码请参见: