yapi上个接口返回数据当做参数_使用postman做自动化接口校验

要想实现接口的自动化测试,需要以下几个步骤:

自动登录

首先点击postman左上角的new按钮,创建一个collection,在pre-request-scripts标签下,给整个collection创建一个公用规则

编写登录脚本

pre-request-scripts在请求发送前执行的脚本,在整个集合期间只会执行一次;

在集合变量(参考上图)中添加对应的用户名和密码

//获取集合const { host, username, password } = pm.collectionVariables.toObject();

使用pm.sendRequest方法发送一个ajax请求,将请求成功的结果的token值存到环境变量中。

const data = res.json();

pm.environment.set("token", data.data["X-Access-Token"]);

完整代码如下:

const {

// host, yapiToken,

yapiHost,

variable_key,

token,

catid,

CooperationPlatformId

} = pm.variables.toObject();

const { host, username, password } = pm.collectionVariables.toObject();

const echoPostRequest = {

url: `${host}/api/login`,

method: 'POST',

header: 'Content-Type: application/json;charset=UTF-8',

body: {

mode: 'raw',

raw: JSON.stringify({ username, password})

}

};

//使用pm.sendRequest方法发送一个ajax请求,if(!token){

pm.sendRequest(echoPostRequest, function (err, res) {

console.log(err ? err : res.json());

const data = res.json();

pm.environment.set("token", data.data["X-Access-Token"]);

});

}

yapi,去哪网出的开源的可视化接口管理平台,推荐部署到公司服务器,也可以直接使用官方的。YApi-高效、易用、功能强大的可视化接口管理平台​yapi.demo.qunar.com

schema格式的约束文件,值得推荐的地方就是对mockjs语法支持的很好。

{

"type": "object",

"title": "empty object",

"properties": {

"data": {

"type": "object",

"properties": {

"name": {

"type": "string",

"mock": {

"mock": "@string"

}

}

},

"required": [

"name"

]

},

"code": {

"type": "string",

"mock": {

"mock": "@natural"

}

},

"msg": {

"type": "string",

"mock": {

"mock": "@string"

}

}

},

"required": [

"data",

"code",

"msg"

]

}开放Api​hellosean1025.github.io

获取接口的schema文件

yapi的开发api很方便的获取接口相关的信息。

//生成分类下接口列表的map对象const genCatInterfaceListMap = function (catid) {

return new Promise(function (resolve, reject) {

const url = `${yapiHost}/api/interface/list_cat?token=${yapiToken}&catid=${catid}&limit=100`;

pm.sendRequest(url, function(err, res){

if(err){

console.log("err: ", err)

}else{

var data = res.json();

var list = data.data.list;

var catInterfaceListMap = list.reduce((acc, item) => {

var key = item.path.slice(1).split("/").join("_");

acc[key] = item._id;

return acc;

},

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值