现在的互联网行业已经不是大鱼吃小鱼的时代了,而是快鱼吃慢鱼的时代,具体来讲就是从用户需求转化成企业服务的能力,其中研发效能的高低对用户需求转化速率起到了至关重要的作用,而API服务的研发效能是当中非常重要的一环。
随着公司的发展,研发人员越来越多,公司产品多元化,模块复杂度不断提升,API的研发效能也成为了决定公司研发能力的关键因素之一,同时对API研发管理,研发效率也有了新的挑战:
我们希望能够研发一个API管理平台,可以满足以下的需求:
对比了市面上已有的接口管理平台,我们发现YApi可以说是最好用、功能最完善的API接口管理平台了。
YApi原生已经支持以下功能:
我们决定基于YApi进行二次开发,满足内部的定制化需求,演进出公司内部的GTest接口管理平台。目前,围绕着接口管理和效能提升,已经开发了以下平台:
依托目前的GTest接口管理平台,对比一下过去和现在的接口开发流程:
下面举两个例子来说下有了GTest平台之后整个API研发过程发生的变化:
研发提测质量:
之前规定研发提测前,需要开发把测试提供的冒烟用例执行一遍,但是这种方式无法保证测试用例的执行情况,也没有数据化的校验结果,比较主观。
依托GTest平台,在几乎不需要人工参与的情况下,根据接口定义的字段规则、字段是否必须等自动生成接口测试用例集合,开发一键即可接口验证,并生成详细的测试报告。对于开发提测的版本,自动化执行冒烟测试集合,减少测试人员的参与,提测质量数据化展示,一目了然。
API业务监控:
之前每个业务上线,都需要业务方自行开发拨测系统用于监控服务的运行情况,各个业务方实现标准不统一,拨测系统本身的稳定性等很难保证。
依托API监控平台,提供标准的定时监测功能、告警功能等,还可以直接复用GTest平台的测试集合进行流程监控。随着监控用例的完善,未来还可以评估线上故障的影响范围,服务恢复情况等。
API研发效能的提升不是一蹴而就的,是一个不断迭代和推进的过程。中间会涉及到前端、后端、测试、运维等多方面的人员。也会有基于技术的问题,基于流程的问题。下面是我们在推进API研发效能提升的一些经验总结:
引入流程
可能很多人听到流程的概念,都会想到繁文缛节、效率低下等字眼。但是对于像GTest这样作为多方人员协作的平台,无规矩,难成方圆。一个人能把平台使用好不代表一帮人可以把平台使用好。所以必须制定好流程。
比如 接口开发流程:在接口开发之前,必须制定好详细的接口协议。这样后端开发人员根据接口协议进行开发,前端人员根据接口协议调用Mock服务,测试人员根据接口协议编写测试用例,三方人员并行工作,不用相互依赖,阻塞自己的工作进度。
比如 冒烟测试流程:测试人员应该在开发人员提测之前,在GTest上面编写好冒烟测试集合。这样开发人员在GDevops平台提测打包时,会自动打包,部署服务到K8S,自动化执行冒烟测试集合,测试通过会自动发送提测邮件。
小范围试用
对于制定的规范、标准、新功能等先找一两个团队进行小范围试用。小步快跑,快速验证合理性、可行性。而且真正的应用到实际场景中,才能发现制定的标准示范合理,规范能否应用起来,新功能能否满足真实的场景。小范围的试用也方便与使用团队的深入交流,如果直接推广到整个公司,反而会引入稳定性、规范普及、场景未完全覆盖等问题,疲于奔命,无法聚焦,还会留下难用的印象。
制定标准
对于GTest平台,多方人员共同协作,维护着整个公司业务的API接口,那么怎么管理人员,管理API等也变成一个问题。只有制定相关的标准,才能井然有序的运行。
比如:API接口需要按照分组
项目
分类
接口
这样的层级来维护,不然接口杂乱无章很难找到。
比如:接口协议需要定义字段是否必须
默认值
长度大小限制
规则
,这样API Mock环节,测试用例编写才能根据定义的协议来完成。
API研发效能提升涉及的面非常广,有技术能力上的,也有管理规范上的。对于整个API研发生命周期,每个环节的提升,都会带来API研发效能提升。未来,我们还有很长的路要走,比如 API自动生成平台,API开放交易平台等。
如果你有什么问题,也欢迎后台留言交流。