现在市面上有很多用于测试的软件或框架。Postman之类的测试软件有很多,但是他们功能是分开的,所以有时候需要结合到一起使用,但是有一定难度的。APIFOX尝试去解决这个问题,目前也有一部分公司正在使用它。
APIFOX有一个特点,就是团队一起测试。一个人写好了接口后,就可以将接口描述分发给很多人去使用。它还能够将其他的描述文档导入、导出,比如OpenAPI、Postman等。这极大地简化了编写和维护接口文档的工作。
测试软件往往都有Mock(也就是产生数据,模拟响应),还可以自己写逻辑去测试。但是网上似乎没什么教程,我就简单写一些我使用的一些技巧。
打开其网站,下载程序并且安装,安装后新建一个项目,就可以开始动手了。由于使用它的主要目的是测试本次青训营的项目的,所以就直接以它为例子了。
想方设法把接口描述写出来。
这次青训营给的API描述文档并不能够导出,我也尝试过去爬取源文件,结果不成,所以和团队内成员一起哼哧哼哧地一个个地写下来了,后面我想明白了为什么不给我导出()。
创建好一个接口后,选择修改文档,填入路由、方法(这里是/douyin/publish/action/,POST方法)。新建请求参数。
这里特别注意的是,如果要上传文件,一定要选择form-data!以及在后面写接口的时候,也要把MuiltPart转换才能正常使用!
接下来处理返回响应。由于青训营给了一个demo,以及一个客户端,我们可以轻松搞到一个json。具体说,就是手机上装HttpCanary,然后去截取收发包信息,这样一个样例json到手了。json可以直接导入到APIFOX里,后面修改一下参数信息,差不多就能做完了。(不过还是好麻烦,毕竟要去和Protobuf文件对比)
简单测试一下
保存后,就可以点击旁边的运行,填参数后,点击发送。如果说找不到服务,要么是你忘记开服务器了,要么是你忘记修改前缀了,就是图中的http://127.0.0.1:8888,再不行,看看你代码写对了没。
可以看到,它会告诉你响应是否正确,返回的json是否符合定义。
组合测试
不得不承认,APIFOX的图形化编程让人觉得有些难受,但是写完后就可以直接用了,这样也不错。
在自动化测试中,创建一个场景,添加步骤,然后就可以开始图形化编程了。
但是怎么用这个图形化编程?以下是一些基本的用法
基本用法
- 提取变量。比如登录后,返回了一个Token,你要重复使用它,那么选择后置操作,点击添加后置操作,选择提取变量,选择Response JSON,输入
$.token,再输入提取后保存的变量名,这样就可以在其他地方使用它了。
APIFOX提供了几类变量,全局、环境、临时等。刚刚的图中就是一个全局的。
- 使用变量。APIFOX提供了Mock和变量名替换。下图是一个变量名的例子,输入{{name}}后,就会去把你提取的值替换上去。
基本的用法集合不能够完成稍微大一点的功能的测试,所以还是得用一些技巧才行。
稍微高级一点点的用法
由于笔者没有学习那么多测试技巧,所以是写不出很好的方案,但是最起码这个可行。
一个用户关注另一个用户,也可以取消关注,现在我要获取粉丝列表、关注的人的列表。这个只用基本用法是远远不够的。
- 创建用户,并获取登录token。这一步很简单。
- 创建一个循环,写一下循环次数,它是用来创建粉丝的。
- 往里面写上创建用户、关注的请求
- 编写逻辑。先在进入循环前的语句里,添加后置操作脚本
在循环前创建一个循环控制变量,方便后面创建用户
- 在最后循环结束的请求,写上递增脚本
这样就可以连续创建多个用户了。用户名、密码都有,token可以这么获取。这样就可以愉(难)快(受)地写测试了