Ant+Jmeter+Jenkins自动化接口测试思路
在平时测试工作中发现一个很朴素的需求存在:后台开发人员A改了一个接口,相关联开发人员B并不知道(当然开发人员A也不知道修改该接口会影响到开发人员B),导致测试过程中出现BUG,甚至开发人员之间会相互抱怨,此时如果有那么一套接口测试在持续集成运行的话,当接口自动化回归测试报错开发人员B一下子就能发现,也就能立即优化修复。针对这个需求,最近我也努力在研究接口自动化。
其实接口自动化方案非常多,可能会有人问我为什么会选择用Jmeter做Case管理,而不自己去写框架,况且现在网上各社区论坛开源的框架也很多,也有很多借鉴的地方。说实话,自己写框架有很大优势,比如易于拓展,易于定制,平时也用Python+Xml管理Case尝试写过一个,但是过程很坎坷,遇到了很多坑(技术积累不足是很重要的一方面)。例如编写Case的时候调试很麻烦,后续拓展需要不断维护(不断封装新的参数获取方法)等等。所以,最终选择了它。
Jmeter做接口测试很方便,可以支持录制,而且还有Gui界面操作,入手相对简单,Gui便于调试,本地调试通过上传,管理容易,维护成本小,Jmeter功能比较全面,不会让自己陷入不停的维护框架的坑。当然除了这些优点外,还是有缺陷的地方,Jmeter执行Case是单条的,而且依赖本地,比方说某个接口有参数化,你的参数化文件必须在本地才能访问数据,有点不方便,再者Jmeter拓展性稍差,后续如果想要自己编写平台,导出这些Case是个不小的工作量。
大家都知道,Jmeter运行常见的方式是启动GUI界面或者通过命令来执行,这样有诸多的不便,所以在这里利用Ant来驱动jmeter,同时结合jenkins来达到自动化的目的。
上面讲述的都是接口自动测试执行方案,当然也有其他更好的方式,只不过结合博纳团队的情况,我认为这种方案挺适合公司团队的。