小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
github:github.com/YMFE/yapi
前言
由于业务需要,部署yapi方便前后端联调
依赖
- nodejs(7.6+)
- mongodb(2.6+)
- git
安装
# 安装命令
npm install -g yapi-cli --registry https://registry.npm.taobao.org
# 启动服务,会启动一个9090服务,访问http://127.0.0.1
yapi server
利用pm2方便服务管理维护
npm install pm2 -g //安装pm2
cd {项目目录}
pm2 start "vendors/server/app.js" --name yapi //pm2管理yapi服务
pm2 info yapi //查看服务信息
pm2 stop yapi //停止服务
pm2 restart yapi //重启服务
更新(更新没试过,不太敢适,安装插件直接跑不起来,一堆类似issus官方不处理)
cd {项目目录}
yapi ls //查看版本号列表
yapi update //更新到最新版本
yapi update -v {Version} //更新到指定版本
问题汇总
自动化测试无法使用,断言方法未找到
vendors/server/utils/sandbox.js修改如下,需要给写入权限的根据提示修改
const Safeify = require('safeify').default;
module.exports = async function sandboxFn(context, script) {
// 创建 safeify 实例
const safeVm = new Safeify({
timeout: 3000,
asyncTimeout: 60000,
// quantity: 4, //沙箱进程数量,默认同 CPU 核数
// memoryQuota: 500, //沙箱最大能使用的内存(单位 m),默认 500m
// cpuQuota: 0.5,
// true为不受CPU限制,以解决Docker启动问题
unrestricted: true,
unsafe: {
modules: {
// 引入assert断言库
assert: 'assert'
}
}
});
safeVm.preset('const assert = require("assert");');
script += "; return this;";
// 执行动态代码
const result = await safeVm.run(script, context);
// 释放资源
safeVm.destroy();
return result
};
其他
基于他文档二开或者安装dingding通知都是失败,官方维护力度不大,优点失望
优点
- 后端、前端、测试都可以使用,一次创建所有人都可以使用
- 统一接口规范测试规范,提高接口测试速度
- 后端同学可以写简单的测试用例,用于接口的自动化测试
- 可以逼真、快速的mock数据,提前联调
- 接口统一在yapi测试,逆推接口文档要规范,比如入参,出参
- 测试接口方便,会根据接口定义添加参数
Tip
- 定时器导入yapi的时候建议使用增量导入,变更的手动修改,防止修改过的被覆盖
- 导入接口后可以新建测试集合,批量导入到测试集合,方便后面测试接口
- 环境设置,第一条为默认