MOCO框架及Flask模拟接口

主要内容:
1.熟悉moco框架实现接口模拟
2.基于Flask框架实现模拟接口

1.1 什么是MOCK
mock 测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。这个虚拟的对象就是mock对象.

1.2 MOCK应用场景

1.模拟第三方接口:第三方接口开发未完成或接口不稳定,业务测试需要提前进行接口测试。
2. 模拟后端接口:前后端分离项目,后端工没有完成接口开发,Mock模拟接口返回的数据。
3. 测试场景模拟:测试场景进行测试时需要了解真实对象如何被调用
4. 生产环境接口:业务接口不方便调用,防止产生脏数据等等

1.3 MOCO框架

Moco 是类似一个 Mock 的工具框架,一个简单搭建模拟服务器的程序库/工具,下载就是一个JAR包

MOCO特点:
1.只需要简单的配置request、response等即可满足要求
2. 支持http、https、socket,非常灵活
3. 支持在request 中设置 Headers , Cookies , StatusCode
4. 支持GET、POST、PUT、DELETE等请求方式
5. 无需环境配置,有java环境即可:安装环境必须先安装好jdk
6. moco采用热部署,修改配置后,立刻生效,无需重启服务。只需要维护接口,也就是契约即可。
7. 对可能用到的数据格式都支持,如json、text、xml、file
8. 能与其他工具集成,如Junit、Maven、Gradle

1.4 moco下载安装
下载方式:直接获取现成的jar包(推荐)
https://repo1.maven.org/maven2/com/github/dreamhead/moco-runner/1.3.0/
按需选择相应版本下载

MOCO框架及Flask模拟接口
1.5 模拟接口json配置
运行moco前建立一个json文件,因为模拟接口相关配置是在json文件里配置的。熟悉并理解json格式的配置非常关键。
{
    "description":"鉴权接口-mock",
    "request":{
        "method":"POST",   #约定方法,支持GET、POST、PUT、DELETE等请求方式
        "uri":"/api/generateToken",  #约定uri
        "headers":{                    #约定请求头
                   "Content-Type":"application/json"
                },
        "json":{                       #约定请求体参数-json
                    "appid":"wcX78980055XNGD999452",
                    "serect":"qoghzgKYTNyrqw88766DH"
            }
        },
    "response":{                #约定响应头
        "headers":{
            "Content-Type":"application/json"
            },
        "status":200,           #约定返回状态码
        "json":{                #约定响应体
                "status": "200",
                "errorCode": "SUCCESS",
                "msg": "ok",
                "data": {
                                    "Token": "wViSR7spVXW889GNKeOY",
                                    "softwareType": "APP"
                        }
            }

        }
}

1.6 启动moco服务

step1:cd /xx/moco/ //jar包所在文件夹
step2:
java -jar moco-runner–standalone.jar http -p 12306 -c foo.json

http代表这个模拟的是http请求
-p 12306 定义是服务端口号
-c foo.json 模拟对象配置json文件名`

2.基于Flask框架实现模拟接口


from flask import Flask, render_template, jsonify, request
import json

from flask import request
app = Flask(__name__)

@app.route('/api/demo', methods=['POST'], strict_slashes=False)
def api_login():
    data = request.get_json()
    print('<request> url= {url}, body= {body}'.format(url=request.url, body=json.dumps(data, ensure_ascii=False)))
    if data["var1"] == "value1" and data["var2"] == 'value2':
        return jsonify({
                        "status": "200",
                        "errorCode": "SUCCESS",
                        "msg": "ok",
                        "data": {
                                    "data": "xxxxxxxxxxxx",
                                    "softwareType": "xxxx"
                        }
        })
    else:
        return jsonify({"errorCode": "10021","msg": "systemError!"})

@app.route("/importData", methods=['GET','POST','PUT','DELETE'],strict_slashes=False)
def api_test():
    if request.method == 'POST':
        return jsonify({"code":"100200","msg":"importSuccess!"})

if __name__ == '__main__':
    app.run(host='0.0.0.0', port='5555', debug=True, ssl_context=('server.crt', 'server.key'))

</request>

Original: https://blog.csdn.net/Luckstar2019/article/details/124002706
Author: 千益
Title: MOCO框架及Flask模拟接口

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/745370/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球