Yapi:高级Mock的使用

在Yapi上建立的一个项目,添加一个接口,练习一下高级Mock的简单使用。get请求,三个请求参数,两个返回值。
Yapi:高级Mock的使用_第1张图片

1 期望

点击【高级Mock】,点击页面中的【添加期望】:
【基本信息】定义发送请求的参数
【响应】定义发送请求参数对应的返回信息
Yapi:高级Mock的使用_第2张图片
Yapi:高级Mock的使用_第3张图片
添加后默认为开启状态:
在这里插入图片描述
此时,发送请求,其中参数:BuildEnv=daily,得到在期望中配置的响应
Yapi:高级Mock的使用_第4张图片
可以根据不同的参数,设置不同的响应,配置多条期望:
Yapi:高级Mock的使用_第5张图片

2 脚本

也可以使用自定义Mock脚本来配置不同的参数请求返回相应不同的响应。
在高级Mock页面选择【脚本】,并开启。
上面设置的第一个期望,等同于如下Mock脚本:

if(params.BuildEnv == 'daily'){
    mockJson={
        test_build:1,
        message:'mock脚本,通过!'
    }
}

编辑之后,点击【保存】(注意先关闭期望中的配置,Yapi中mock优先级期望>脚本),然后发送请求
Yapi:高级Mock的使用_第6张图片
Mock脚本中可使用Random函数,随机生成返回值。比如Random.csentence(),随机生成一句中文。修改脚本:

if(params.BuildEnv == 'daily'){
    mockJson={
        test_build:1,
        message:'mock脚本,通过!'
        message:Random.csentence()
    }
}

保存后再次访问
Yapi:高级Mock的使用_第7张图片
同样,脚本中可以添加多条这样的数据,实现不同的响应


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

你可能感兴趣的:(Yapi)