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接口平台个人总结相关推荐

  1. Yapi 接口平台(Windows、Linux 在线离线安装部署)

    YApi 搭建 简介 YApi 由 YMFE开源,旨在为开发.产品.测试人员提供更优雅的接口管理服务,可以帮助开发者轻松创建.发布.维护API 内网部署-YApi官网 环境要求 nodejs(7.6+ ...

  2. Swift直接解析YApi接口为模型

    如果你的接口平台使用的是YApi接口,开发语言使用Swift,那么一定要尝试一下这个Xcode插件,一键转化为Swift模型,还带注释哟 github

  3. YAPI接口自动化测试工具---使用记录

    目录 1.前置条件 2.开始使用 2.1 用户管理 2.2 空间 2.3 项目 2.4 接口 2.4.1 接口管理 2.4.2 测试集合 1.前置条件 yapi自动化平台已经搭建完成 yapi的官网地 ...

  4. 接口批量同步数据_千手接口平台+电商ERP,助德嵘大药房征战拼多多

    拼多多对C端经营者来说,是一个处于红利期的第三方C端电商平台,进驻费比天猫低很多,而且流量成本也低,很多商家都跃跃欲试.但对于没有C端平台运营经验的商家,进驻后会发现几个"坑":客 ...

  5. 为什么越来越多的企业选择短信接口平台?

    一.操作方便 对于企业来说,短信接口具备最大程度的兼容性,不受语言和运行环境限制,对接简单.就算是不会对接的企业,短信服务商也能提供技术支持,尽快帮助完成验证码短信接口的对接. 二.数据真实性高 短信 ...

  6. 亚马逊电商数据自动化管理接口平台JAVA SP-API接口开发(下)

    亚马逊电商数据自动化管理接口平台JAVA SP-API接口开发(下) 重要说明 本文章为亚马逊系列其中的一篇,具体详见 主页 中亚马逊分类 该系列项目均为[CSDN轻夏]原创,未经允许禁止转载 如有疑 ...

  7. 亚马逊电商数据自动化管理接口平台JAVA SP-API接口开发(中)

    亚马逊电商数据自动化管理接口平台JAVA SP-API接口开发(中) 重要说明 本文章为亚马逊系列其中的一篇,具体详见 主页 中亚马逊分类 该系列项目均为[CSDN轻夏]原创,未经允许禁止转载 如有疑 ...

  8. 亚马逊电商数据自动化管理接口平台ProductType格式展示

    亚马逊电商数据自动化管理接口平台ProductType格式展示 重要说明 本文章为亚马逊系列其中的一篇,具体详见 主页 中亚马逊分类 该系列项目均为[CSDN轻夏]原创,未经允许禁止转载 如有疑问请添 ...

  9. 解析全球热点脑机接口平台(下)

    Hello, 这里是壹脑云,我是炊烟袅袅~ 前段时间我们介绍了比较通用的脑-机交互软件平台BCI2000,而OpenViBE 与BCI2000 类似,同样以软件套件的形式呈现,通过由用户定制场景的方式 ...

  10. idea:使用easyYapi插件导出yapi接口

    文章目录 idea:使用easyYapi插件导出yapi接口 一.安装插件easyYapi 二.配置easyYapi Token方式 项目id方式 idea:使用easyYapi插件导出yapi接口 ...

最新文章

  1. 从更底层研究C\C++动态内存分配
  2. 2013豆瓣校园招聘研发类笔试题
  3. swift -自定义返回图片,替换系统图片backItem
  4. 保存多序列tiff文件_干货技巧!如何使你保存的Phtoshop文件容量更小?
  5. pycharm关闭自动更新
  6. python函数库_ctypes --- Python 的外部函数库 — Python 3.9.0 文档
  7. 【数据结构(C语言)】数据结构-内部排序
  8. hibernate教程笔记2
  9. atitit.浏览器web gui操作类库 和 操作chrome浏览器的类库使用总结
  10. Beautiful Soup 4.2.0 文档
  11. LabVIEW升级图像识别功能
  12. 【原创】Magisk+Shamiko过APP ROOT检测
  13. 几种常用的分布式定时任务
  14. 启明星辰产品解读_IPS
  15. (一)计网五层模型概述
  16. 高标准农田建设通则2014
  17. Android深入浅出系列之Bluetooth—蓝牙操作(一)
  18. 使用皮皮影院搭建电影展
  19. PHP软件库源码+支持CDKey卡密充值
  20. 平安好医生和智慧教育的AI(语音)技术应用

热门文章

  1. 你知道怎么给客户朋友圈点赞吗?
  2. ubuntu 13.10 skype登不上问题
  3. 现代前端技术解析:前端三层结构与应用
  4. Json字符串的标准写法
  5. 大数据算法工程师知识点大全
  6. linux kettle命令,Linux下用命令来执行kettle文件资源库的文件ktr与kjb的方法
  7. 出版一本书可以赚多少钱_今年出版5本书
  8. ch2第一个shiny应用_v1
  9. Error: Incorrect contents fetched, please reload.
  10. 【NOIP or 省选】Melancholy ——线段树+容斥原理