今年三四月份的时候,公司已经上线的项目,发现有部分接口存在重复提交的情况,接口也没做好幂等,导致数据库落下了大量重复数据,于是我就开始优化接口,加了redis分布式锁和一些防重校验,好了,背景介绍完毕。
锁是加上了,但是吧,要想测试就需要模拟压测环境,这个时候如果完全依赖测试同事,很显然不是我的风格,本着宁可麻烦自己也不麻烦别人的原则(减少扯皮,节省时间),于是想要自己做并发测试,看一看锁有没有效果。
刚开始先想到了JMeter,毕竟也在测试那多多少少了解过,但是当我安装完准备使用的时候,发现配置很复杂,即使我叫来了测试同事,也很难讲的明白,于是乎我就在网上搜索的时候,发现了 Apifox。看了这款产品的定位:Postman + Swagger + Mock + JMeter。秒啊,立马安装一个。
1、所有数据同步在云端,即使更换电脑,也可以通过浏览器使用(安装插件即可);
2、定义好API文档,就可以开始调试、Mock、自动化测试,非常方便;
3、区分测试环境,因为我的项目多而杂,定义多套环境,免去了频繁更改接口上下文的时间;
4、API文档直接生成在线分享链接,方便了与其他同事共享信息,要比口述来的更加高效;
5、通过数据导入,可将项目的所有接口一次性加载进来,导入数据模型后,还可以根据数据结构直接生成接口入参;
…
还是想说一说自动化测试的模块,测试用例可以直接从已有的接口文档导入,如果需要批量测试,可以通过导入csv文件批量导入测试数据,并且自动生成测试报告。
对于我需要的压测场景,只需要简单的配置循环次数、线程数、间隔停顿就可以实现,比如我需要测试同一时间的并发场景,只需要配置间隔停顿为0毫秒,就像这样:
这极大的节省了我的调试时间,使我在自测阶段就可以规避大部分的问题,最终提交给测试时就已经是一个完成度很高的接口。我顺便把这个工具推荐给了测试同事(顺便好秀了下操作),不会用的地方看一看官方提供的帮助文档,还是很容易上手的。
之前使用过几款API调试工具,Postman等,它们给我的感觉是大同小异的,可以满足基本的接口调试工作,但是并没有我觉得很亮眼的功能,当然也有可能是我还没有接触到比较高级的操作,但是吧,一款优秀的软件,首先上手门槛应该是低的,拥有很友好的界面,很详细的文档,以及和谐的沟通社区,这些我都在ApiFox上感受到了。