01#
背景
数据一致性差:接口调试、mock、测试等使用多种工具,如Postman、pytest等,导致接口信息不同步。
例如,开发阶段接口多次调整,各工具中接口信息没更新,测试时频繁出错。
上手成本高:使用pytest、自研测试框架等工具需要代码能力,即使熟练人员编写复杂用例也非常繁琐。
例如,测试用例执行数据库校验、生成token等,调试稳定用例需要耗费巨大精力。
使用成本高:不同工具和平台功能差异,学习和适应新的工具耗费大量时间和精力。自动化用例通常在项目测试结束后才开始编写,需要额外的时间投入,且自动化验证的时间也被推迟。
维护成本高:多个业务线各自开发接口测试框架或平台,需持续投入人力维护。
例如,多平台需要持续人力投入,系统冗余功能多,无法快速推广部分优秀功能。
02#
解决方案:搭建接口管理全
生命周期的一体化协作平台
分层管理模型:对接口进行多层次管理,包括业务线、应用和接口的管理
业务线:顶层管理单元,涵盖多个应用,确保接口和服务的连贯性和统一性。
应用:每个应用对应一个Git项目,包含多个接口,是业务实现的具体模块。
接口和用例:每个接口隶属于应用,支持版本跟踪和优先级管理,包含关联的测试用例。
细颗粒度权限:确保授予相应权限的人员才能访问和管理特定资源。
权限配置灵活:管理员可配置权限策略,满足不同团队需求。例如,只公开某些接口给特定成员。
全局检索:通过智能搜索快速找到接口、错误码、数据结构及自动化用例等信息。
跨业务线和应用访问:减少信息查找时间,避免在多个文档和平台间切换。
规范统一:采用 OpenAPI 3.0,提供高度结构化和标准化的格式。
内容详尽可扩展:支持详细描述请求、响应、参数、认证和错误码,允许自定义扩展内容。
自动化支持:结合CI/CD工具实现文档自动生成和实时更新,避免文档遗漏问题。
一键调试:依托接口文档,使用定义好的参数进行接口调用并查看结果。
CURL命令生成:在调试界面中提供生成CURL命令,方便本地使用。
辅助定位:调试与测试请求自带Trace信息,可以查询服务响应和错误日志,精准问题定位。
文档即 Mock:平台自动生成格式正确、取值随机的 Mock 数据,并提供接口专属 Mock 地址。
调试结果转 Mock:调试通过的结果可转存为Mock数据,前端开发无需硬编码Mock结果。
自定义 Mock:支持定义不同的Mock结果,模拟各种场景。
自动更新:后端接口变更时,依赖接口文档的Mock数据自动更新,确保一致性。
1. 可视化界面:
零代码编排接口请求和数据断言,通过拖拽和配置参数实现用例编写,并立即查看执行结果。
零代码基础快速写用例,使业务线随项目进展同步完成自动化测试。
2. 高效复用:
调试通过的结果可转存为自动化测试用例,减少重复工作。
用例支持在不同环境和角色间的复用,显著提升ROI,一次编写,多次使用。
3. 智能校验和智能脚本:
4. 持续集成与复用:
无缝对接持续集成系统,通过通知和报告实时反馈错误信息,确保问题及时发现和解决。
一键筛选和编排自动化测试用例,通过CI流水线和定时任务实现持续测试。
5. 脚本管理:
分支管理:支持接口与用例的分支管理,不同分支互不影响。
版本控制:精细管理接口和测试用例版本,方便回溯和优化。
03#
最佳实践
基于以上问题和解法,我们将一个项目迭代划分为接口设计、开发、测试和上线四个阶段,每个阶段的最佳实践如下:
平台通过自动化流水线实现高效、准确和持续更新的接口文档维护流程:
集成接口文档到代码库:在开发项目中接入Swagger工具,开发人员在编写代码时,通过使用Swagger的注解来编写接口注释。这些注释将直接嵌入源代码中,与代码版本一起管理
使用插件自动生成文档:增加swagger编译插件,在代码编译期间自动导出Swagger的JSON格式文档
接入CI/CD部署:在CI/CD流水线中加入自动同步步骤,每次代码提交或更新时,自动将编译产出的Swagger文档投递到平台
提供可视化文档平台:平台按照接口分组和接口目录树结构展示最新的文档,并提供搜索、浏览及权限管理功能
版本控制和历史追踪:记录每次接口的变动历史,维护接口的各个分支版本,支持多分支接口的并行维护、查看与对比
3.2 接口开发阶段:前后端并行开发,工具辅助提效
自动化用例随项目测试完成:
04#
平台收益
接口文档维护时间下降为零
简单用例编写时间下降50%,复杂用例编写时间下降80%
微信扫一扫
关注该公众号