点击上方“马蜂窝技术”,关注订阅更多优质内容
接口作为服务端和前端/客户端之间的连接纽带,在系统交互间至关重要。这就让接口测试成为了软件质量保障中必不可少的一环。
接口测试在底层模拟用户的行为,直接和服务器进行快速交互。它可以在项目提测之前介入,只要给出接口的定义及实现,不需要界面也可以进行。另外,我们可以将需求中的业务用例分拆成不同的接口组合,针对每一个接口进行异常测试,来弥补页面测试或业务测试的不足。
对于测试人员来说,通过接口测试可以更加熟悉系统功能的组成,包括接口依赖关系、接口验签的实现等,帮助测试更贴近代码。
现状和痛点
可以进行接口测试的工具有很多,比如 Postman、Jmeter、SoapUI 等,在一些复杂的场景下也需要自己编写的 Java、Python 脚本,这种「百花齐放」的态势一方面给测试人员更多选择,但在一些大型的项目和团队中,也会带来一些不便:
1.管理混乱:入口不统一,各自为政,方式、套路各不相同;如果项目中接口测试意识不强,做与没做也无法衡量。
2.扩展性差:随着业务线功能的迭代,接口越来越多,而接口包含元素众多,名称、路径、入参、出参等,其中有的值动辄几十行,添加起来非常复杂。
3.维护成本高:测试接口中的验签、断言、参数化、关联执行需要编写各种脚本或引入工具,编写接口用例成本、测试脚本维护成本高。
4.重复造轮子:项目中编写完的接口用例或者脚本,只能在单一项目、工具中运行,无法提供服务给其他系统,如 CI/CD。
为了解决以上痛点,交酒测试团队决定在统一的测试平台上打造自己的接口测试工具(以下简称 ITest),提升测试人员的效率,按需开发,灵活运用。
ITest 的设计与实现
1. 设计思路和目标
目前业务线存在两种协议的接口:一种是网关层 HTTP/HTTPS 接口,另一种是 Dubbo 协议接口。一期工程先实现 HTTP/HTTPS 协议下的接口测试功能,工具命名 ITest。
目前业务线引入了环境隔离,网关层的服务就是用环境隔离标示来区分的,而接口就在这个服务下。因此 我们首先根据环境隔离+服务名称+环境名称的规则对 ITest 中的服务命名,根据服务快速创建接口,用程序的方式将接口组织成用例,添加进用例集合来标识项目,然后执行用例,查看结