【关键导读】
本文着重详解了接口测试解决方案的进阶之路,如何从典型的java+TestNG+Jenkins,围绕着提升接口测试ROI(减少投入成本,增加使用率)的目标,一步步结合业务应用实践,打造了一个高效的基于接口的团队协作平台GoAPI,让接口测试人人能做,人人能用,随处可用。
一、历史的接口测试与管理
1.1 一个“活着”的接口
接口是应用开发中必然存在的产物,无论你是开发、测试还是运维人员,你都会与接口产生千丝万缕的联系。开发是接口的创造者,他们定义了接口,同时赋予了他们血肉之躯。测试是接口的健康守护者,无论在哪个阶段,都在默默的为他们找出伤害他们健康的“蛀虫”(To BUG)。听了我的YY,有没有觉得接口是有生命的,如果没有,那么可以看下下图
如此看来,接口是具有生命周期的,结合软件研发流程来看的话,在不同的阶段,不同角色都会围绕着接口做不同的事情。如下,一个“典型”的接口生命周期
接口生命周期中的每一个阶段都需要得到“细心的照料”,这就涉及到接口的测试与管理。接下来,将从历史的进程来看下,接口是如何被得到“照顾”的。
1.2 "历史”的接口管理与测试缩影
想到2014年,那是一个····的年头,我们的接口管理与测试是这么玩的,接口文档管理采用的是wiki,接口手工测试采用的是Postman/Jmeter,接口自动化是基于TestNG编写的测试框架,接口线上监控是采用的Jenkins CI驱动。
可以看下当时封装的接口自动化测试框架
说起框架特点当时还很“自豪”的讲出了几大特点:
特点:
Annotation 依赖性测试 支持并发测试 支持错误重运行测试 参数化测试 支持测试分组 通过testng.xml来管理测试 详实的报告,可按照自己需要进行二次开发定
同时在当时也调研过python的方案,Python Nose 方案 ,两者对比如下:
在业务的发展过程中,对于接口的测试与管理,遇到了很多问题和瓶颈,如下也许会感同:
同一件事情被多人重复做了:
开发人员在开发完一个API接口,会部署到开发环境中,然后通过自己写自动化脚本或者利用 POSTMAN工具验证一下这个API 接口是否符合预期,这时候其实已经做过一个简单的API测试了。到了提测阶段开发会将写好的API接口文档给测试人员,测试人员会部署代码到测试环境中去,然后通过 testNG 或者其他自动化测试框架写接口测试用例,我们发现,API的正向用例测试,开发人员做