easy-mock功能介绍(简单了解下就可以)
支持接口代理
支持快捷键操作
支持协同编辑
支持团队项目
支持 RESTful
支持 Swagger | OpenAPI Specification (1.2 & 2.0 & 3.0)
基于 Swagger 快速创建项目
支持显示接口入参与返回值
支持显示实体类
支持灵活性与扩展性更高的响应式数据开发
支持自定义响应配置(例:status/headers/cookies)
支持 Mock.js 语法
支持 restc 方式的接口预览
easy-mock本地部署
1、环境准备
成功安装 Node.js(>= v8.9)& MongoDB(>= v3.4)& Redis(>= v4.0)
(此部分可以百度,安装过程中会有坑,遇到问题去百度,基本上都能解决)
六种方式:
2、mockjs语法
地址:http://mockjs.com/examples.html
响应式数据
当固定一个请求参数是A的时候,返回特殊的值,不是A的时候,可以返回任意值,这时候怎么处理那?
我们可以在 数据编辑器 中,为某个属性指定一个 Function。在 Function 中,我们提供了 _req 对象,这使得我们可以通过请求对象编写逻辑,实现响应式数据,如图所示。
结果:
举例:获取body数据
编写mockjs脚本
备注:针对POST的body测试,需要添加headers,不然只能通过json的方式添加请求参数
Content-Type: application/x-www-form-urlencoded
body:phonenumber=1223333&address=北京市
status=Ture
结果展示:
如果生成数据的时间 超过1s,系统将会返回一个 timed out 的错误信息,此时应该检查代码是否出现了 异步操作 或 死循环。
自定义响应
当定义的数据结构中包含 _res 字段的时候,会进入一个特殊逻辑,可以给返回的请求添加一些定制信息。
举例:
脚本:
结果:
脚本:
结果:
fiddler和easymock结合(移动端调试)
首先利用fiddler抓包,抓到我们要测试的接口,这里以:https://qc-api.jianlc.com/app/v5/sendAuthCode?为例。
此时通过app再次操作,再次抓到此接口,返回值就是easymock的接口了
Python mock
cd /opt
mkdir mockserver
下载:moco-runner-0.12.0-standalone.jar
touch foo.json
[
{
"request":
{
"method":"post",
"uri":"/login",
"json":
{
"username":"admin",
"password":"admin",
"roleID":22
}
},
"response":
{
"json":
{
"username":"wuya",
"userID":22,
"token":"asdgfhh32456asfgrsfss"
}
}
}
]
保存
执行命令:java -jar moco-runner-0.12.0-standalone.jar http -p 12306 -c foo.json
在Fiddler/postman校验接口
nginx配置
检查nginx配置是否正确,nginx路径下,执行nginx -t -c /nginx-1.14.0/conf/nginx.conf
nginx -s reload重新加载配置文件
简理财配置路径:/etc/nginx/jianlc443.d
vim qa-api.jianlc.com443.con
配置完成后,执行
nginx -t
nginx -s reload
自己写python mock服务
#!/usr/bin/env python
#coding=utf-8
__date__ = '2018/8/2 18:06'
from flask import Flask,g
from flask import request, Response, jsonify
import random
import string
app = Flask(__name__)
@app.before_request
def before_request():
print ('before request started')
print (request.url)
@app.before_request
def before_request2():
print ('before request started 2')
print (request.url)
g.name = "SampleApp"
@app.after_request
def after_request(response):
print ('after request finished')
print (request.url)
response.headers['key'] = 'value'
return response
@app.teardown_request
def teardown_request(exception):
print ('teardown request')
print (request.url)
#返回固定的字符串
def id_generator(size=20,chars=string.digits + string.ascii_letters):
"""
定义了一个
"""
str_ = ""
for i in range(size):
i = random.choice(chars)
str_ += str(i)
return str_
#定义返回值
def response():
content = "{\"result\": \"%s\", \"data\": \"%s\"}" % (id_generator(4), id_generator(9))
resp = Response(content)
resp.headers["Access-Control-Origin"] = '*'
return resp
@app.route("/") # 路由
def index():
return "welcome!"
# http get
@app.route("/query", methods=["GET"])
def query():
pass
return jsonify(
username=id_generator(4),
password=id_generator(9),
)
@app.route("/app/v5/sendAuthCode", methods=["POST"])
def update():
print("----1----")
datax3 = request.get_data()
print (datax3)
str_req = bytes.decode(datax3)
print (str_req)
req_list = (str_req.split('&'))
phonenumber = req_list[0].split('=')
print (phonenumber[1])
print (type(datax3))
content = "{\"control\": {\"phonenumber\":\"%s\",\"string\": \"★★★★\",\"serverTime\": 1531991767456,\"error \": 1,\"message \": \"网络异常\",\"type\": 208,\"version\": \"1.0\"},\"data\":{\"showOverMsm\": \"今日获取验证码次数还剩2次\",\"description\": "",\"serverTime\": 1531991767405,\"showOver\": 1,\"isNew\": 0}}"% phonenumber[1]
resp = Response(content)
resp.headers["Access-Control-Origin"] = '*'
return resp
@app.route("/delete", methods=["DELEDT"])
def delete():
return response()
@app.route("/head", methods=['HEAD'])
def head():
return response()
if __name__ == '__main__':
app.run(host='0.0.0.0', debug=True, port=5201, threaded=True)
Swagger
swagger-editor环境搭建
安装swagger前先去nodejs官网下载进行nodejs的安装,打开cmd命令测试安装结果,现在版本安装nodejs后node和npm会一并安装
node -v
npm -v
去官网下载,之后解压,重命名为swagger-editor:https://github.com/swagger-api/swagger-editor/releases
然后安装: npm install -g http-server
在swagger-editor所在的目录执行命令: http-server –p 2008 swagger-editor
使用浏览器:http://IP地址:2008
tomcat中启动swagger-editor
把swagger-editor移动到tomcat/webapps下面,通过浏览器访问:
http://IP地址:tomcat端口号/swagger-editor
swagger-ui环境搭建
下载地址:https://github.com/swagger-api/swagger-ui/releases
创建一个空文件夹node_app:
cd /opt
mkdir node_app
初始化 node ,创建package.json文件():
cd node_app
npm init
安装 express
npm install express --save
创建 index.js
vim index.js
把下面代码贴如 index.js 中
var express = require('express');
var app = express();
app.use('/static', express.static('public'));
app.get('/', function (req, res) {
res.send('Hello World!');
});
app.listen(3000, function () {
console.log('Example app listening on port 3000!');
});
在 node_app 中创建空目录 public
把下载好的Swagger UI 文件中dist 目录下的文件全部复制到 public 文件夹下。
在index.js的目录下执行:node index.js
打开浏览器,输入http://localhost:3000/static/index.html