mockserver
官网学习地址 https://www.mock-server.com/#what-is-mockserver
mockserver下载和启动
下载
官网下载jar包 https://www.mock-server.com/where/downloads.html
本次实践所用jar包 mockserver-netty-5.14.0-shaded.jar
本地启动
需要先准备好jave环境
1.普通启动
java -jar mockserver-netty-5.14.0-shaded.jar -serverPort 1080 -logLevel INFO
##-serverPort 后跟端口号
##-logLevel设置日志类型
2.带有初始化文件/设置记录数据文件启动
java -Dmockserver.watchInitializationJson=true -Dmockserver.initializationJsonPath=挡板规则.json -Dmockserver.persistExpectations=true -Dmockserver.persistedExpectationsPath=挡板规则.json -jar mockserver-netty-5.14.0-shaded.jar -serverPort port -logLevel INFO
##-Dmockserver.watchInitializationJson=true --要初始化
##-Dmockserver.initializationJsonPath=挡板规则.json --初始化挡板规则的文件,启动时可以直接加载
##-Dmockserver.persistExpectations=true --实现数据持久化,在mockserver启动后设置的挡板规则时会直接记录下来
##-Dmockserver.persistedExpectationsPath=挡板规则.json --保存挡板规则的json文件
验证是否启动成功
打开前端日志 http://localhost:1080/mockserver/dashboard
看到这个界面就算启动成功啦~
设置挡板规则-即创建expectations
1.postman
put方法 url: http://localhost:1080/mockserver/expectation
body里写规则,json格式
规则内容示例:
{
"id": "test_mock", //id唯一,id重复时会直接更新之前设置的规则
//请求体规则
"httpRequest" : {
"path" : "/test1", //路径, host:port/test1
"method":"POST" //方法
},
//预期响应报文
"httpResponse" : {
"body" : {
"status": 200,
"result": "Welcome to mock server!"
}
},
"priority" : 0 //优先级,数值越大优先级越高
}
日志里也可以看到创建记录
2.命令行
curl -v -X put "http://localhost:1080/mockserver/expectation" -d "规则"
##这里的规则=postman body里的内容
3.记在规则文件里,然后以上面说的第二种启动方法重新启动
[
规则1, //postman body里的内容
规则2,
......
]
创建好就可以用postman调用试试效果
常见规则的一些写法
匹配路径/方法/body里是否包含某个字符串
设置预期响应报文/转发
更多写法可以在官网上学习~~
{ "httpRequest" : {
"method" : "方法类型",//支持正则匹配
"path" : "调用路径",
//匹配body里是否包含某个字符串
"body" : {
"type" : "STRING",
"string" : "YXDTK",
"subString" : true
}
},
//挡板,预期响应报文
"httpResponse" : {
"body" : {
"status" : 200,
"result" : "Welcome to mock server!"
}
},
//转发
"httpForward":{
"host":"ip",
"post":port,
"scheme":"HTTP"
},
"id" : "test_mock", //id唯一,id重复时会直接更新之前设置的规则
"priority" : 0 //优先级,数值越大优先级越高
}