前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GTest(基于YApi)接口研发效能提升10倍 实战

GTest(基于YApi)接口研发效能提升10倍 实战

作者头像
公号:咻咻ing
发布2020-11-09 15:17:50
1.1K0
发布2020-11-09 15:17:50
举报
文章被收录于专栏:公众号:咻咻ing

现在的互联网行业已经不是大鱼吃小鱼的时代了,而是快鱼吃慢鱼的时代,具体来讲就是从用户需求转化成企业服务的能力,其中研发效能的高低对用户需求转化速率起到了至关重要的作用,而API服务的研发效能是当中非常重要的一环。

随着公司的发展,研发人员越来越多,公司产品多元化,模块复杂度不断提升,API的研发效能也成为了决定公司研发能力的关键因素之一,同时对API研发管理,研发效率也有了新的挑战:

挑战

  1. 接口协议同步不及时:API接口定义多是文档化管理,文档更新往往不及时,当接口协议发生变化时,无法及时同步给前端、测试等团队。
  2. 自动化水平低:测试用例一般通过Excel、Xmind等维护,需要手工测试,每次回归测试都需要人工手动执行测试用例,大大占用测试资源。
  3. 联调周期长:每次联调可能涉及多个模块,几个研发团队协作,一方出现问题,就会卡住整个流程,拖慢联调进度。
  4. 提测质量无法保证:研发自测不充分,冒烟测试用例执行情况无法量化,导致提测质量参差不齐,
  5. 性能压测:性能测试门槛高,压测机器碎片化无法统一管理,缺乏专业的性能分析。

愿景

我们希望能够研发一个API管理平台,可以满足以下的需求:

  1. 接口协议更新能够及时同步。
  2. 减少前端、后端、测试等团队间的依赖。
  3. 提升接口自动化水平。
  4. 有专业的压测平台。

破局

对比了市面上已有的接口管理平台,我们发现YApi可以说是最好用、功能最完善的API接口管理平台了。

YApi原生已经支持以下功能:

  • 可视化接口管理
  • 数据mock
  • 自动化接口测试
  • 数据导入(各种,包括swagger、har、postman、json、命令行)
  • 权限管理
  • 支持本地化部署
  • 支持插件
  • 支持二次开发

我们决定基于YApi进行二次开发,满足内部的定制化需求,演进出公司内部的GTest接口管理平台。目前,围绕着接口管理和效能提升,已经开发了以下平台:

  1. GTest(API管理平台):基于YApi1.3.22版本演进,支持内部RPC协议、接口定义优化、支持集群模式、Chrome插件功能扩展等功能,目前已经完全自主迭代。
  2. 压测平台:基于Gatling开发,支持内部RPC协议压测、动态随机参数、返回值断言等。结合GTest,选择压测模式,让压测像接口调用一样便捷。
  3. GDetector(API监控平台):支持Ping、Telnet、Http等协议的监测,对接口返回值进行断言,可配置定时规则和告警规则,结合GTest测试集合也支持流程级别的监测。
  4. GDevops(CICD平台):只需简单配置即可进行代码质量监测、规范控制,自动化构建镜像和K8S部署。

依托目前的GTest接口管理平台,对比一下过去和现在的接口开发流程:

案例

下面举两个例子来说下有了GTest平台之后整个API研发过程发生的变化:

研发提测质量:

之前规定研发提测前,需要开发把测试提供的冒烟用例执行一遍,但是这种方式无法保证测试用例的执行情况,也没有数据化的校验结果,比较主观。

依托GTest平台,在几乎不需要人工参与的情况下,根据接口定义的字段规则、字段是否必须等自动生成接口测试用例集合,开发一键即可接口验证,并生成详细的测试报告。对于开发提测的版本,自动化执行冒烟测试集合,减少测试人员的参与,提测质量数据化展示,一目了然。

API业务监控:

之前每个业务上线,都需要业务方自行开发拨测系统用于监控服务的运行情况,各个业务方实现标准不统一,拨测系统本身的稳定性等很难保证。

依托API监控平台,提供标准的定时监测功能、告警功能等,还可以直接复用GTest平台的测试集合进行流程监控。随着监控用例的完善,未来还可以评估线上故障的影响范围,服务恢复情况等。

经验

API研发效能的提升不是一蹴而就的,是一个不断迭代和推进的过程。中间会涉及到前端、后端、测试、运维等多方面的人员。也会有基于技术的问题,基于流程的问题。下面是我们在推进API研发效能提升的一些经验总结:

  1. 引入流程 可能很多人听到流程的概念,都会想到繁文缛节、效率低下等字眼。但是对于像GTest这样作为多方人员协作的平台,无规矩,难成方圆。一个人能把平台使用好不代表一帮人可以把平台使用好。所以必须制定好流程。 比如 接口开发流程:在接口开发之前,必须制定好详细的接口协议。这样后端开发人员根据接口协议进行开发,前端人员根据接口协议调用Mock服务,测试人员根据接口协议编写测试用例,三方人员并行工作,不用相互依赖,阻塞自己的工作进度。 比如 冒烟测试流程:测试人员应该在开发人员提测之前,在GTest上面编写好冒烟测试集合。这样开发人员在GDevops平台提测打包时,会自动打包,部署服务到K8S,自动化执行冒烟测试集合,测试通过会自动发送提测邮件。
  2. 小范围试用 对于制定的规范、标准、新功能等先找一两个团队进行小范围试用。小步快跑,快速验证合理性、可行性。而且真正的应用到实际场景中,才能发现制定的标准示范合理,规范能否应用起来,新功能能否满足真实的场景。小范围的试用也方便与使用团队的深入交流,如果直接推广到整个公司,反而会引入稳定性、规范普及、场景未完全覆盖等问题,疲于奔命,无法聚焦,还会留下难用的印象。
  3. 制定标准 对于GTest平台,多方人员共同协作,维护着整个公司业务的API接口,那么怎么管理人员,管理API等也变成一个问题。只有制定相关的标准,才能井然有序的运行。 比如:API接口需要按照分组 项目 分类 接口这样的层级来维护,不然接口杂乱无章很难找到。 比如:接口协议需要定义字段是否必须 默认值 长度大小限制 规则,这样API Mock环节,测试用例编写才能根据定义的协议来完成。

展望

API研发效能提升涉及的面非常广,有技术能力上的,也有管理规范上的。对于整个API研发生命周期,每个环节的提升,都会带来API研发效能提升。未来,我们还有很长的路要走,比如 API自动生成平台,API开放交易平台等。

如果你有什么问题,也欢迎后台留言交流。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 咻咻ing 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 挑战
  • 愿景
  • 破局
  • 案例
  • 经验
  • 展望
相关产品与服务
Prowork 团队协同
ProWork 团队协同(以下简称 ProWork )是便捷高效的协同平台,为团队中的不同角色提供支持。团队成员可以通过日历、清单来规划每⽇的工作,同时管理者也可以通过统计报表随时掌握团队状况。ProWork 摒弃了僵化的流程,通过灵活轻量的任务管理体系,满足不同团队的实际情况,目前 ProWork 所有功能均可免费使用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档