在Yapi上建立的一个项目,添加一个接口,练习一下高级Mock的简单使用。get请求,三个请求参数,两个返回值。
1 期望
点击【高级Mock】,点击页面中的【添加期望】:
【基本信息】定义发送请求的参数
【响应】定义发送请求参数对应的返回信息
添加后默认为开启状态:
此时,发送请求,其中参数:BuildEnv=daily,得到在期望中配置的响应
可以根据不同的参数,设置不同的响应,配置多条期望:
2 脚本
也可以使用自定义Mock脚本来配置不同的参数请求返回相应不同的响应。
在高级Mock页面选择【脚本】,并开启。
上面设置的第一个期望,等同于如下Mock脚本:
if(params.BuildEnv == 'daily'){
mockJson={
test_build:1,
message:'mock脚本,通过!'
}
}
编辑之后,点击【保存】(注意先关闭期望中的配置,Yapi中mock优先级期望>脚本),然后发送请求
Mock脚本中可使用Random函数,随机生成返回值。比如Random.csentence(),随机生成一句中文。修改脚本:
if(params.BuildEnv == 'daily'){
mockJson={
test_build:1,
message:'mock脚本,通过!'
message:Random.csentence()
}
}
保存后再次访问
同样,脚本中可以添加多条这样的数据,实现不同的响应
var test_env = ['test1','test2','test3','test4','test5','test6','test7','test8','prod','app','h5','daily']
var build_server = ['jianlc-web','jianlc-boss','jianlc-api','jianlc-open-api','jianlc-activity','jianlc-msg','jianlc-service','jianlc-thirdpaty']
if(params.BuildEnv === ''){
mockJson={
test_build:0,
message:Random.csentence()
}
}
if(params.BuildEnv == 'daily'){
mockJson={
test_build:1,
message:Random.csentence()
}
}
if(test_env.includes(params.BuildEnv) && params.BuildPerson == 'admin'){
mockJson={
test_build:1,
message:'管理员允许发布'
}
}
if(params.BuildEnv == 'app' && params.BuildPerson == 'xiaoming'){
mockJson={
test_build:1,
message:'允许发布'
}
}
if(params.BuildEnv == 'app' && params.BuildPerson != 'xiaoming'){
mockJson={
test_build:0,
message:'发布人员无效'
}
}
if(test_env.includes(params.BuildEnv) === false){
mockJson={
test_build:0,
message:'部署环境未登记,不允许发布!'
}
}
if(test_env.includes(params.BuildEnv) && params.BuildEnv != 'daily' && params.BuildPerson == 'xiaoming' && build_server.includes(params.BuildServer)){
mockJson={
test_build:1,
message:'允许发布!'
}
}
if(test_env.includes(params.BuildEnv) && params.BuildEnv != 'daily' && params.BuildPerson != 'xiaoming'&& params.BuildPerson != 'admin' && build_server.includes(params.BuildServer)){
mockJson={
test_build:0,
message:'环境登记信息有误,不允许发布!'
}
}