Apifox简单使用
Apifox
最近一直在以pig、RuiYi-Cloud做一个自己的项目,非常需要一份接口文档工具,Swagger
这种侵入代码式的我不是很喜欢,之前也是有用过YApi
,不用改代码,利用与IDEA
的插件结合,很轻松就生成相关的接口文档,非常好用!
直到发现apifox,发现这个全能选手,如官方所说:
更先进的 API 设计/开发/测试工具
Apifox = Postman + Swagger + Mock + JMeter
如果能熟练使用它那生产力必然极大提升,想系统学习的看官方文档https://www.apifox.com/help/。
另外一提,我能发现它也是因为这篇文章:https://mp.weixin.qq.com/s/fT84AkFPZSINL9VUvAmNJw
下面就开始我的使用吧!
前期准备
下载、注册、建项目等等这些,我不多提了,可以看官网也可以看上面的那篇文章。
配置完成
都配置完成后,就可通过IDEA
插件直接生成文档到Apifox

在你的Controller
类中右键,点击Upload to Apifox

接口管理
在项目中右上角更新接口文档。

要知道初始生成的只有接口文档,也就是上图中的GET
、POST
这些,下一级是我编写的用例。
环境与参数管理
另外注意右上边有环境设置这里可以设置各种环境信息和相关参数,后面我会用到。

接口文档
文档
点开接口,首先是文档,我们可以在此基础上去编写接口文档

运行
就是postman
,我们在此发送请求,所有的请求参数我们都可以通过Mock
来生成,非常方便。

动态值非常丰富,很多场景都适用。

高级Mock
这个还未使用过
用例
用例是由接口文档生成的,也就是具体的请求了。点开文档运行就可以点击保存为用例了。
下面是三个基于分页查询的三个用例。
分页查询全部数据
这里分页请求入参都为空,响应会是全部数据,这里配置了后置操作,取出$.data.total
赋给环境变量的total
,那么在此环境(开发)这个total
就可以复用了。

分页查询成功
这里设置了前置操作如下,就是通过前面设置的total
来计算size
和current
,并把它们赋给对应的变量中,最后入参时使用这些变量。
1 | var total = pm.variables.get("total"); |

查询一条记录
还是分页查询,把size
设置为1,current
计算一下就好,就可以随机查询出一条记录了。
1 | var total = pm.variables.get("total"); |
同时设置后置操作,通过这一条记录,添加id
、name
或者其他单条记录的属性值,这些变量又可以在接下来的根据id
用例中使用。
$.data.records[0].id
上面这些也就是抛砖引玉了,发挥你的想象力吧!
数据模型
就先不说了,看官网吧。
自动化测试
这个还挺有意思的,能省去好多时间。
测试用例
这里的“根据id查询”测试用例,就是前面的用例组合,通过变量的传递,这个用例还是有价值的。同时右边有线程和循环可设置,JMeter
嘛。

测试套件
测试套件呢又是测试用例的集合,不多讲了。

测试报告
就是所有运行过程的报告。
小结
从自动化测试来讲,这种套娃式的,从接口文档到用例到测试用例到测试套件,都说明了接口的重要,编写接口够规范就能剩下很多事情,利用用例再设计的好一些,那么效率就直线提升了。
从Apifox
整体上来讲真的很强很强,用着太舒服了。看来未来postman
不好过呀!