关于此mock
服务相关介绍见:https://fugary.com/?p=626
安装运行
- 下载运行:https://github.com/fugary/simple-boot-mock-server/releases下载最新zip文具
- 下载解压后,
bin\start.bat
运行即可
- 下载解压后,
- Docker运行:
docker run -p 9086:9086 fugary/simple-boot-mock-server:latest
登录使用
默认启动访问:http://localhost:9086
有两个用户admin/12345678
和mock/mock
,登录后第一时间修改密码,新建自己的账户
修改密码
进入个人资料,清空密码,修改自己的密码即可
mock分组
进入mock
分组页面,点击【新增】,每个分组对应一个api
接口组,里面可以有多个请求路径,每个路径可以认为是一个api
接口。
新增,主要填写名【分组名称】就可以了,【路径ID】一般自动生成(需要全局唯一),不过保留手动填写的支持,方便需要手动指定的特殊情况。
注意:代理地址是配置的请求之外的地址将发送到代理地址获取数据,支持http和https,也就是需要使用的真实地址,本地mock这个是不需要填写的
点击【配置】进入子页面配置请求路径
mock请求
一个mock
分组下面可以配置多个mock
请求,处理不同的请求并给出响应,下面三个值唯一定位一个请求
- 请求路径(默认会自动在前面加上
/
) - 请求方法
- 匹配规则
新建请求
保存后可以点击测试:
测试请求
请求测试这块说明:
- 如果在分组时没有配置【代理地址】,只配置请求没有配置响应数据将会得到
404
错误 - 如果在分组时配置了【代理地址】,只配置请求没有配置响应数据将会转发给代理地址,从代理地址获取响应:
- 如果配置了响应数据,将会返回配置的响应数据,下面会介绍如何配置响应数据,将在后面做测试
mock响应数据
响应数据是给当前请求路径配置实际的响应体,支持各种状态码,content type等
新建响应数据
每个请求下面都可以配置多个响应数据,但是只有一个默认请求数据
简单写死配置响应数据很简单,如下图所示:
保存后就可以测试实际响应
注意:这里有两个测试:
- 请求测试时针对请求的,请求下面配置有多个响应数据时,选择第一条,如果指定了默认数据就取默认数据
- 数据测试时针对单个数据的,每个数据测试时返回自己配置的响应数据
因为只有唯一一条数据,请求测试和响应数据测试时响应的数据都一样:
默认响应数据
有多条响应数据的时候可以指定某一条为默认数据,在测试多种响应的时候很有用,比如要测试正常和错误两种响应,可以先配置好两条响应数据,当需要正确数据时,就把正确的那一条设置为默认,如果需要错误的数据时,就把错误那条设置为默认。
【默认标记】与【设置默认按钮】见下图
如果把错误设置为默认,测试如下:
数据复制功能
为了快速添加多条数据,可以直接点击某一条数据的【复制按钮】
,可以快速复制一份一模一样的数据,然后修改成自己想要的数据即可。高级功能
下面介绍下高级功能,如果上面的基本功能不够用,下面有比较多的高级功能,有一定难度
Mock.js支持
目前响应数据时支持Mock.js
语法的,使用的就是Mock.js
,不过是通过JDK
的ScriptEngine
调用。
什么是Mock.js
:http://mockjs.com/
Mock.js
文档:https://github.com/nuysoft/Mock/wiki
测试Mock.js
支持:
在刚才的数据中写入Mock.js
支持的格式,这里以生成一些城市数据为例:
测试请求响应如下:
变量支持
有时候我们可能需要用一些变量替换响应数据,这里没有Mock.js
那么强大,不过不局限于json
响应,可以支持XML
中替换数据,变量支持如下:
request.body
——body
内容对象(仅json
时会解析成对象)request.bodyStr
——body
内容字符串request.headers
——头信息对象request.parameters
——请求参数对象request.pathParameters
——路径参数对象
简单变量替换
比如请求参数中有个name
字段,需要响应中返回回来:
测试如下:
Mock.js变量使用
如果是JSON
的post请求
,可以解析出请求的值,并替换给返回数据:
配置请求:
测试结果:
匹配规则
匹配规则是稍微比较复杂的功能,主要是在相同url
和请求方法的情况下,区分不同请求给出不同的响应。
比如这个场景:如果请求参数的orderNo>100
时返回正确正确的数据,否则返回错误的数据
匹配规则使用JS表达式计算,计算结果为真就是匹配,为假就是不匹配
匹配规则和默认响应有冲突,优先按照匹配规则匹配,只要配置有匹配规则不能作为默认响应
这里的匹配规则,支持的变量和前面【变量支持】模块一致:
测试成功:
测试错误: