Yapi接口平台个人总结
YApi是去哪儿移动架构组开源的API管理系统,是一款api管理平台。
一,yapi相关信息与教程
官网地址:https://yapi.ymfe.org/
示例地址:http://yapi.demo.qunar.com/
使用教程:https://hellosean1025.github.io/yapi
二,插件安装:
cross-request_v3.0,谷歌插件:cross-request_v3.0 下载后安装到谷歌浏览器即可:
安装流程:
a,下载,解压;
b,chrome 输入 chrome://extensions
打开扩展页;
c,开启开发者模式;
d,加载已解压的程序源,即可看到如下页面;
使用:点击 cross-request 背景页, 打开 network 就能看到新发起的请求信息
三,mock使用
Mockjs脚本编写:http://mockjs.com/examples.html
1,常用占位符功能详述
@integer(min?, max?)
返回一个随机的整数。
- min:可选参数,整数最小值。
- max:可选参数,整数最大值。
例:
@integer
//--> 1686805249110932
@integer(10,100)
//--> 26
@float( min?, max?, dmin?, dmax? )
返回一个随机浮点数。
- min:可选,整数部分最小值。
- max:可选,整数部分最大值。
- dmin:可选,小数部分最小长度。
- dmax:可选,小数部分最大长度。
例:
@float
//--> 1924364975802932.5
@float(60, 100, 2, 6)
//--> 68.1258
@string
返回随机字串,有如下几种使用方式:
@string @string(length) @string(pool, length) @string(min, max) @string(pool, min, max)
- length: 字串长度
- min: 字串最短长度
- max: 字串最大长度
- pool:表示字符池。如果传入 'lower'、'upper'、'number'或'symbol',表示从内置的字符池从选取。对应关系如下:
lower: "abcdefghijklmnopqrstuvwxyz",
upper: "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
number: "0123456789",
symbol: "!@#$%^&*()[]"
例:
@string(6)
//--> kV(qj4
@string('upper',2,6)
//--> NJKU
@string('123abc!@#', 2,6)
//--> #ab!21
@url(protocol?, host?)
随机生成一个 URL。
- protocol:指定 URL 协议。例如 http。
- host:指定URL域名和端口号。
例:
@url('https', '123.sogou.com')
//--> https://123.sogou.com/ccdkttr
@ip
随机生成一个IP地址。
@timestamp
返回当前unix时间戳
@datetime(format?)
返回一个随机的日期和时间字符串。
- format:生成的日期和时间字符串的格式。默认值为yyyy-MM-dd HH:mm:ss。
例:
@datetime()
//--> 1977-11-17 03:50:15
@datetime('y-M-d H:m:s')
//--> 02-4-23 2:49:40
@pick(arr)
从数组中随机选取一个元素,并返回。
例:
@pick(['this', 'is', 'picker', 'test'])
//--> picker
其他常规就不详细写了,看官方文档或者百度下你啥都知道
2,Pre-request Script脚本再项目中的应用
引用global中的变量---context.storage.sign;
a,获取sign,signed_at, pre设置可直接引用不用添加
console.log(context)
try{
var commonParams = {}
//秘钥
var secretKey = "111111111111111111";
console.debug("secretKey:" + secretKey);
//设置请求时间戳
var signed_at = Math.round(new Date().getTime()/1000);
commonParams.signed_at = signed_at
console.debug("signed_at:" + signed_at);
//请求参数
var data = context.method === 'POST' ? context.requestBody : context.query;
data = Object.assign({
signed_at: signed_at
}, data)
//GET
// if(context.query instanceof Object){
// context.query.each(function(obj){
// if(obj.disabled === undefined) data[obj.key] = obj.value;
// });
// }
//POST
// if(context.requestBody instanceof Object){
// context.requestBody.each(function(obj){
// if(obj.disabled === undefined) data[obj.key] = obj.value;
// });
// }
console.debug("data:" + JSON.stringify(data));
//参数排序
var params = [];
for(var key in data){
if(key != "sign") params.push(key);
}
params.sort();
console.debug("params:" + params);
console.log(params)
//拼装字符串
var str = '';
params.forEach(function(value){
str += value;
data[value] = data[value] ? data[value].toString() : "";
//if(data[value].indexOf("{{")!= -1){
// str += data[value].replace(new RegExp('(\{|\})', "g"),"");
//}
//else{
str += data[value];
//}
});
console.log(str)
str = secretKey + str + secretKey;
console.debug("str:" + str);
//生成签名
var sign = context.utils.md5(str).toString();
commonParams.sign = sign;
if (context.method === 'POST') {
context.requestBody = Object.assign( commonParams, context.requestBody)
} else {
context.query = Object.assign( commonParams, context.query)
}
}catch(err){
console.error("Pre-Request Script " + err.name + ":" + err.message);
}
b,mockserver,基础使用
生成mock数据
四,YAPI优缺点
优点
颜值高;安装简便;集成WIKI、接口编写、接口自动化测试于一体,更新非常及时;支持权限管理;支持swagger等其他API管理工具的格式数据导入;支持LDAP、SSO、CAS等登录方式;支持集群。
缺点
(1)接口返回值只能设置一个模板
有时候我们希望正确返回设置一个模板、错误返回设置一个模板,这是swagger可以做到的,而YAPI无法做到
(2)接口模板必须复制粘贴
不像swagger解耦合一样,一处配置处处运行,例如配置“分页模板”,然后每个分页只需要引用一下就好了,修改起来只需要修改一次。而YAPI目前只有复制粘贴。
已经有人提issue了:
(3)测试功能太鸡肋
只能做冒烟测试,给数据、返回期望数据。无法编写测试逻辑(如果返回XX则跳到XX),无法返回多个值(如果200则XX,如果404则XX),也就无法编写单元测试了。
五,总结
个人+会议总结
yapi接口管理平台探讨--会议记录
简单总结会议:yapi接口管理平台,在开发偏敏捷的情况下,对接口的规范性,前后端联调便捷性,冒烟测试、线上回归,起到了积极作用,但对于测试来说,测试功能比较鸡肋。
该平台的帮助:
1,mockserver方案:解决前期模拟测试数据,便于调试;
2,服务端接口开发:规范后台api文档,丰富了开发自测方案,间接提高开发质量;
3,前后端联调:减少联调沟通成本;
4,测试方面:更好的进行接口测试,接口冒烟测试,以及线上验收测试;
目前来看存在的问题有如下几个方面:
1,文档管理方面:接口历史文档查看和管理,无法操作;
2,接口关联性方面:接口返回数据的获取和下一个接口使用,不易用;
3,变量管理+前置脚本调试方面:前置脚本sign或其他参数获取,做为公共变量或私有变量传递,不易用;
4,版本管理:目前tag更多的是标签作用;
5,自动化方面:异常用例管理和编写,局限性过大,不易进行;
6,协议局限性:websocket等类似协议接口无法测试;
以上为,会议简要总结,有问题可随时沟通;
Yapi接口平台个人总结相关推荐
- Yapi 接口平台(Windows、Linux 在线离线安装部署)
YApi 搭建 简介 YApi 由 YMFE开源,旨在为开发.产品.测试人员提供更优雅的接口管理服务,可以帮助开发者轻松创建.发布.维护API 内网部署-YApi官网 环境要求 nodejs(7.6+ ...
- Swift直接解析YApi接口为模型
如果你的接口平台使用的是YApi接口,开发语言使用Swift,那么一定要尝试一下这个Xcode插件,一键转化为Swift模型,还带注释哟 github
- YAPI接口自动化测试工具---使用记录
目录 1.前置条件 2.开始使用 2.1 用户管理 2.2 空间 2.3 项目 2.4 接口 2.4.1 接口管理 2.4.2 测试集合 1.前置条件 yapi自动化平台已经搭建完成 yapi的官网地 ...
- 接口批量同步数据_千手接口平台+电商ERP,助德嵘大药房征战拼多多
拼多多对C端经营者来说,是一个处于红利期的第三方C端电商平台,进驻费比天猫低很多,而且流量成本也低,很多商家都跃跃欲试.但对于没有C端平台运营经验的商家,进驻后会发现几个"坑":客 ...
- 为什么越来越多的企业选择短信接口平台?
一.操作方便 对于企业来说,短信接口具备最大程度的兼容性,不受语言和运行环境限制,对接简单.就算是不会对接的企业,短信服务商也能提供技术支持,尽快帮助完成验证码短信接口的对接. 二.数据真实性高 短信 ...
- 亚马逊电商数据自动化管理接口平台JAVA SP-API接口开发(下)
亚马逊电商数据自动化管理接口平台JAVA SP-API接口开发(下) 重要说明 本文章为亚马逊系列其中的一篇,具体详见 主页 中亚马逊分类 该系列项目均为[CSDN轻夏]原创,未经允许禁止转载 如有疑 ...
- 亚马逊电商数据自动化管理接口平台JAVA SP-API接口开发(中)
亚马逊电商数据自动化管理接口平台JAVA SP-API接口开发(中) 重要说明 本文章为亚马逊系列其中的一篇,具体详见 主页 中亚马逊分类 该系列项目均为[CSDN轻夏]原创,未经允许禁止转载 如有疑 ...
- 亚马逊电商数据自动化管理接口平台ProductType格式展示
亚马逊电商数据自动化管理接口平台ProductType格式展示 重要说明 本文章为亚马逊系列其中的一篇,具体详见 主页 中亚马逊分类 该系列项目均为[CSDN轻夏]原创,未经允许禁止转载 如有疑问请添 ...
- 解析全球热点脑机接口平台(下)
Hello, 这里是壹脑云,我是炊烟袅袅~ 前段时间我们介绍了比较通用的脑-机交互软件平台BCI2000,而OpenViBE 与BCI2000 类似,同样以软件套件的形式呈现,通过由用户定制场景的方式 ...
- idea:使用easyYapi插件导出yapi接口
文章目录 idea:使用easyYapi插件导出yapi接口 一.安装插件easyYapi 二.配置easyYapi Token方式 项目id方式 idea:使用easyYapi插件导出yapi接口 ...
最新文章
- 从更底层研究C\C++动态内存分配
- 2013豆瓣校园招聘研发类笔试题
- swift -自定义返回图片,替换系统图片backItem
- 保存多序列tiff文件_干货技巧!如何使你保存的Phtoshop文件容量更小?
- pycharm关闭自动更新
- python函数库_ctypes --- Python 的外部函数库 — Python 3.9.0 文档
- 【数据结构(C语言)】数据结构-内部排序
- hibernate教程笔记2
- atitit.浏览器web gui操作类库 和 操作chrome浏览器的类库使用总结
- Beautiful Soup 4.2.0 文档
- LabVIEW升级图像识别功能
- 【原创】Magisk+Shamiko过APP ROOT检测
- 几种常用的分布式定时任务
- 启明星辰产品解读_IPS
- (一)计网五层模型概述
- 高标准农田建设通则2014
- Android深入浅出系列之Bluetooth—蓝牙操作(一)
- 使用皮皮影院搭建电影展
- PHP软件库源码+支持CDKey卡密充值
- 平安好医生和智慧教育的AI(语音)技术应用
热门文章
- 你知道怎么给客户朋友圈点赞吗?
- ubuntu 13.10 skype登不上问题
- 现代前端技术解析:前端三层结构与应用
- Json字符串的标准写法
- 大数据算法工程师知识点大全
- linux kettle命令,Linux下用命令来执行kettle文件资源库的文件ktr与kjb的方法
- 出版一本书可以赚多少钱_今年出版5本书
- ch2第一个shiny应用_v1
- Error: Incorrect contents fetched, please reload.
- 【NOIP or 省选】Melancholy ——线段树+容斥原理