mockserver
代理
模拟
新增接口
-
接口路径 host:1080/mockserver/expectation
-
请求类型
- put
-
exceple
- {
“httpRequest” : {
“path” : “/some/path”
},
“httpResponse” : {
“body” : “some_response_body”
},
“times” : {
“remainingTimes” : 1,
“unlimited” : false
},
“timeToLive” : {
“timeUnit” : “SECONDS”,
“timeToLive” : 60,
“unlimited” : false
},
“priority” : 10
}
- {
-
请求体
-
1 请求
-
httpRequest
-
path 路径
- “path” : “/some.*” (按正则表达式匹配路径)
- “path” : “!/some.*” (通过不匹配的路径)
-
pathParameters 路径参数
-
匹配固定的值
- “pathParameters”: {
“cartId”: [“055CA455-1DF7-45BB-8535-4F83E7266092”]
},
- “pathParameters”: {
-
路径参数正则表达式匹配
- “pathParameters”: {
“cartId”: ["[A-Z0-9\-]+"]
}
- “pathParameters”: {
-
路径参数 使用json模式
- “pathParameters”: {
“cartId”: [{
“schema”: {
“type”: “string”,
“pattern”: “1+$”
}
}],
“maxItemCount”: [{
“schema”: {
“type”: “integer”
}
}]
}
- “pathParameters”: {
-
-
queryStringParameters 请求参数
-
正则匹配 值
- “queryStringParameters”: {
“type”: ["[A-Z0-9\-]+"]
}
- “queryStringParameters”: {
-
正则匹配 键
- “queryStringParameters”: {
“[A-z]{0,10}”: [“055CA455-1DF7-45BB-8535-4F83E7266092”]
}
- “queryStringParameters”: {
-
请求参数 使用json模式
- “queryStringParameters”: {
“cartId”: [{
“schema”: {
“type”: “string”,
“pattern”: “2+$”
}
}]
}
- “queryStringParameters”: {
-
请求参数为可选参数 ?
- “queryStringParameters”: {
“?cartId”: ["[A-Z0-9\-]+"],
“?maxItemCount”: [{
“schema”: {
“type”: “integer”
}
}],
“?userId”: [{
“schema”: {
“type”: “string”,
“format”: “uuid”
}
}]
}
}
- “queryStringParameters”: {
-
-
headers
-
匹配指定的头
- “headers” : {
“Accept” : [ “application/json” ],
“Accept-Encoding” : [ “gzip, deflate, br” ]
}
- “headers” : {
-
不匹配指定的头
- “headers” : {
“!Accept” : [ “." ],
“!Accept-Encoding” : [ ".” ]
}
- “headers” : {
-
通过json模式匹配到指定的请求头
- “headers”: {
“Accept.*”: [{
“schema”: {
“type”: “string”,
“pattern”: “^.gzip.$”
}
}]
}
- “headers”: {
-
-
cookies
-
匹配固定的cookie
- “cookies” : {
“session” : “4930456C-C718-476F-971F-CB8E047AB349”
}
- “cookies” : {
-
使用json模式匹配
- “cookies”: {
“session”: {
“schema”: {
“type”: “string”,
“format”: “uuid”
}
}
}
- “cookies”: {
-
可选 cookis
- “cookies”: {
“?session”: {
“schema”: {
“type”: “string”,
“format”: “uuid”
}
}
}
- “cookies”: {
-
-
body
-
字符串匹配
-
“body” : {
“type”: “STRING”,
“string”: “some_string”,
“subString”: true
} -
指定编码类型
- “body” : {
“type” : “STRING”,
“string” : “我说中国话”,
“contentType” : “text/plain; charset=utf-16”
}
- “body” : {
-
-
正则匹配
- “body”: {
“type”: “REGEX”,
“regex”: “starts_with_.*”
}
- “body”: {
-
表单方式提交
- “body” : {
“type” : “PARAMETERS”,
“parameters” : {
“email” : [ “joe.blogs@gmail.com” ],
“password” : [ “secure_Password123” ]
}
- “body” : {
-
xpath 匹配
-
“body” : {
“type” : “XPATH”,
“xpath” : “/bookstore/book[price>30]/price”
} -
不通过 xpath 匹配
- “body” : {
“type” : “XPATH”,
“xpath” : “/bookstore/book[price>30]/price”
}
- “body” : {
-
-
“type” : “XML”,
-
json匹配 完全匹配
-
“body”: {
“type”: “JSON”,
“json”: {
“id”: 1,
“name”: “A green door”,
“price”: 12.50,
“tags”: [“home”, “green”]
},
“matchType”: “STRICT”
}- STRICT,该模式匹配所有字段,数组顺序且不允许其他字段
- ONLY_MATCHING_FIELDS仅匹配请求匹配器中提供的字段。
-
-
使用 占位符 与 json匹配
- “body” : {
“type” : “JSON”,
“json” : {
“id” : 1,
“name” : “A green door”,
“price” : “ j s o n − u n i t . i g n o r e − e l e m e n t " , " e n a b l e d " : " {json-unit.ignore-element}", "enabled" : " json−unit.ignore−element","enabled":"{json-unit.any-boolean}”,
“tags” : [ “home”, “green” ]
}
}
- “body” : {
-
-
-
-
2 响应
-
httpResponse
-
statusCode
-
reasonPhrase
-
headers
-
body
-
uutf16 主题的字面响应
- “httpResponse”: {
“headers”: {
“content-type”: [“text/plain; charset=utf-16”]
},
“body”: {
“type”: “BINARY”,
“base64Bytes”: “/v9iEYv0Ti1W/Yvd”
}
}
- “httpResponse”: {
-
带有utf8 的json 响应
- “body”: {
“type”: “STRING”,
“string”: “سلام”,
“contentType”: “text/plain; charset=utf-8”
}
- “body”: {
-
纯文本
- “httpResponse” : {
“body” : “some_response_body”
}
- “httpResponse” : {
-
json 类型
- “httpResponse” : {
“statusCode”: 200,
“body” : {
“type”: “JSON”,
“json”: {“data”:[{“permitAssetDispose”:true,“serviceFee”:54.28,“overdueInterest”:350.45,“overdueAmount”:921.69,“guaranteeFee”:0,“loanContractAmount”:“4000”,“paySubject”:“HAOHUAN”,“overdueMgmtFee”:50.00,“otherFee”:0.00,“t0EarlyServiceFeeOverDueInterest”:0,“funderOverdueInterest”:0,“t0DivideServiceFee”:0,“commutation”:0,“principal”:462.34,“transfer”:false,“interest”:4.62,“fund”:“XWBANK”,“overdueDays”:673,“partnerLoanNo”:“c30c217f-015b-4692-ae60-979eb9ad6379”,“guaranteeDeposit”:0,“loanKey”:“F4FC91A4858E408FB94E6F03DA4A6D0F”,“earlyGuaranteeDepositServiceFee”:0,“startDate”:1548595446000,“t0EarlyServiceFee”:0}],“message”:“操作成功”,“status”:“000000”}
}
}
- “httpResponse” : {
-
-
cookies
-
delay
- {
“timeUnit”: “SECONDS”,
“value”: 10
}
- {
-
-
-
3 . 优先级
-
priority
- 整数
- 负优先级可用于指定默认的期望或响应。
-
-
4 . 次数
-
times
-
remainingTimes
- 整数
-
unlimited
- ture
- false
-
atLeast
- 最少
-
atMost
- 最多
-
是否是两次
- “times”: {
“atLeast”: 2,
“atMost”: 2
}
- “times”: {
-
-
-
5 连接时间
-
timeToLive
-
timeUnit
- SECONDS
-
timeToLive
- 整数
-
unlimited
- ture
- false
-
-
-
查询接口
-
根据创建的的 接口配置的 接口路径进行查询
- eg:
http://172.17.17.135:1080 /account/ermas/overDueInfo
- eg:
删除接口
-
删除指定的接口
-
根据类型删除接口
-
请求地址
- http://172.17.17.135:1080/mockserver/clear?type=EXPECTATIONS
-
请求方式
- PUT
-
请求参数
-
{
“path”: “/account/ermas/overDueInfo”
}- path 对应的值为 需要删除的 uri
-
-
-
-
删除全部的接口
- http://172.17.17.135:1080/mockserver/reset
官网地址
https://mock-server.com/
日志地址
http:// host:1080//mockserver/dashboard
- http://172.17.17.135:1080/mockserver/dashboard