YAPI 重点功能使用介绍
1 项目配置
建立项目并填写基本信息
成员配置
数据导入(从其它API管理工具迁移接口文档)
环境配置
与swagger自动同步(已经使用了swagger的项目)
钉钉通知配置
2. 接口调试
接口登陆验证
在实际使用中,我们需要调试接口是否正常工作(通达、正确),但是接口都需要登陆才能请求,这种情况下,我们可以使用全局请求配置功能,将登陆后获取到的token
动态添加到每一个接口的requestHeader
中去:
定时自动刷新token
此功能需要安装【接口自动鉴权】插件(yapi-plugin-interface-oauth2-token
)
在项目设置面板找到【接口自动鉴权】插件,从左侧选择需要配置自动刷新token的环境,并填写相关信息:
点击保存,然后去环境中配置通用header:
当设定的间隔时间到了之后,插件就会自动请求获取TOKEN接口,将结果中返回的TOKEN值拿到,替换环境配置中设置的Header中的token字段的值。
token的值需要手动登陆系统一次获得。
参数传递
有时候,我们需要一系列自动化测试,比如请求列表接口后再请求列表返回的某条数据的详情,这时候详情页接口需要的ID就需要从列表页接口的返回中获取。
此时可以在测试集合里的详情页接口里配置某项参数为动态参数,该参数将读取列表接口返回值中的数据。
消息通知和接口动态
消息通知分为系统本身的通知和第三方插件实现的通知,本身的通知,在自己所在小组的接口发生变化时会通过系统发送到你的账号的通知列表里,但是一般情况下,开发人员无法实时去检查自己的消息列表,所以主要还是使用第三方通知。
第三方通知需要安装插件,目前发现有两个插件:
yapi-plugin-dingding
: 这个可以将接口变动推送到钉钉机器人。yapi-plugin-notifier
: 这个可以将接口变动推送到钉钉机器人和企业微信等,并且定制化更高,推荐使用这个。
安装插件后,当接口发生任何变动,系统都会将变动推送到钉钉上,点击钉钉上的链接可以直接跳转到接口文档页面。
当然,具体哪些地方发生了变化,在接口文档页面无法体现,就需要进入到接口动态面板中查看改动详情。
3 mock相关
在YAPI中,有很多地方可以进行mock设置
全局mock脚本
全局Mock脚本允许对所有接口的返回做统一响应处理,即不管请求什么接口的mock数据,最终都会经过全局mock处理一遍。
已上图为例,YAPI的所有mock请求的响应数据都位于 mockJson
对象中,我们在全局mock脚本中将这个对象的code属性改为502后,我们不管请求什么接口的mock数据,返回的mock数据中的code属性都会是502。
当然,除了可以改响应数据外,还可以全局修改请求和响应的其它一些对象:
请求
header
请求的 HTTP 头params
请求参数,包括 Body、Query 中所有参数cookie
请求带的 Cookies
响应
-
mockJson
接口定义的响应数据 Mock 模板 -
resHeader
响应的 HTTP 头 -
httpCode
响应的 HTTP 状态码 -
delay
Mock 响应延时,单位为 ms
3.4.2.2 接口Mock期望
接口的高级Mock功能里,可以添加mock期望,当我们期望某个请求参数为特定值,则返回特定的mock数据时,就可以添加mock期望。
这样,当YAPI检测到该接口符合设定的要求时,就会返回我们事先填写好的期望数据。
接口Mock 脚本
接口mock脚本使用方法和全局mock脚本一样,只不过它针对的是单个接口,而非整个项目。
字段Mock配置
在接口编辑面板,请求参数和返回数据的每一个字段,都可以为其配置mock规则,这样,当我们请求mock数据时,该字段的值就会符合我们设定的规则。
上述四种 mock 方式,如果针对同一个字段进行配置,那么它们的优先级是: 接口mock期望 > 接口mock脚本 > 全局mock脚本 > 字段mock配置。
mock 写法介绍
mock写法-基础
- 中文标题:
@ctitle(minlength,maxlength)
- 中文人名:
@cname
- 中文句子:
@csentence(minlength, maxlength)
- 中文段落:
@cparagraph
- 邮箱:
@email
- 日期:
@date(format)
- 时间:
@time(format)
- 日期 + 时间:
@datetime(format)
- 当前时间:
@now(unit?, format)
- 整数:
@integer(min,max)
- 小数:
@float
- 布尔:
@boolean
- 省份:
@province
- 城市:
@city
- 县乡:
@county
- URL:
@url
- 图片:
@image(size, background, foreground, format, text)
mock写法进阶
@pick(arr)
:从给定数组中随机选择一个元素
比如,需要模拟电话号码:
@pick(['135', '138', '181', '157'])@integer(10000000,99999999)