Yapi:高级Mock的使用

it2022-05-05  77

在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:'环境登记信息有误,不允许发布!' } }

最新回复(0)