编者按
根据USB合作开发操作过程中的一连串关键点,提供更多USB文件格式管理组织工作,USBMock,USB增容、试验等有效率软件系统,使其间端USB有关组织工作更为高效率。
大背景
网络的高速路发展,API显得非常重要。随着API数目稳步激增,他们发现在API文件格式保护,USB增容,示例撰写、管理组织工作,统计数据Mock等方面管理效率是十分低落的,如前所述此大背景,58Api管理组织工作网络平台(Aapi网络平台)不断涌现。
API软件系统
58USB类型主要分成HTTP和SCF三种。简单如是说呵呵SCF,SCF (Service Communication Framework)是58独立自主研制的RPC架构,致力在分布式系统自然环境下提供更多高效率能、高可信、多词汇和制度化的软件系统。
他们期许有两个完备的USB辅助工具,可以全力支持三种USB的全研制业务流程,并资源整合USB合作开发操作过程中的大部份辅助工具。在说计划以后,先归纳呵呵在合作开发操作过程中的一些难题,比如说:
1、USB表头更改,后端和试验老师最新消息发展缓慢;2、后端合作开发顺利完成,后端服务工程项目仍未顺利完成,后端老师难以禁绝;3、允诺模块特别多时,内部结构两个允诺十分费时,API文件格式已存档模块,试验时又要再次写两遍,产生大批多次重复组织工作;4、scfUSB试验试验老师需撰写大批的java标识符,并全自动构筑,用例撰写成本低;。。。。。。以上难题出现在工程项目的不同期,引致管理效率减少,如前所述这些关键点,他们制订了Api综合性软件系统,如下表所示右图:
整个系统以产品方向维度划分业务模块,每个产品方向可创建多个工程项目,权限管理组织工作有效率的对各产品方向及各工程项目进行隔离。工程项目成员在所在工程项目下创建USB,撰写USB文件格式,顺利完成USB信息存档后,一切都可以Run起来了。后端老师可以MockUSB,通过模拟统计数据和后端服务工程项目并行合作开发。后端合作开发老师可以进行USB增容及禁绝,网络平台历史模块可查询试验记录,通过回填功能,试验老师可在研制禁绝基础上修改模块值,有效率节省了试验时间。
通过任务方式对示例进行分类管理组织工作,可执行任务,查看结果报告。网络平台还全力支持Excel和PostMan示例的批量导入功能。
自然环境配置模块和公司四套自然环境保持一致,分别为:试验自然环境、沙箱自然环境、稳定自然环境和线上自然环境。USB试验及任务执行时选择特定自然环境,自动顺利完成自然环境切换。试验自然环境配置效果如下表所示图右图:
统计数据看板模块从产品、任务、示例和人员四个维度提供更多统计统计数据,可查看本周或近两个月的统计数据,亦可进行统计数据对比:
整个计划的设计操作过程,不仅需要考虑API辅助工具的资源整合,还需结合整个工程项目业务流程,把组织工作流转的各节点和自动化工具有效率结合,如下表所示图右图:
根据工程项目成员角色,他们把网络平台用户角色分成五类:PM、RD、FE、QA和游客。
组织工作流转操作过程为:
1、工程项目成立初期,首先由管理组织工作员创建产品方向;
2、随着后续的迭代,每个版本由PM创建项目;
3、技术设计期,由RD老师创建USB,撰写USB文件格式;
4、合作开发期,RD老师可进行USB增容/禁绝,同时FE老师MockUSB,和后端USB并行合作开发,QA老师开始撰写USB示例。
5、提测后,QA老师进行USB试验,并创建示例集任务,用于在预上线期回归验证及后续发布后的线上验证。
工程项目管理组织工作
随着版本的迭代,API数越来越多,如何把USB进行分类?回顾整个合作开发业务流程,USB依附于工程项目做更改,也就是先有工程项目,再有USB变更,而工程项目又依附于某个大的产品方向。所以这部分的设计思路是,按某一产品方向下的工程项目为划分,来创建管理组织工作USB。
工程项目管理组织工作又涉及权限难题,不同产品方向之间或同一产品方向下不同工程项目之间能够做到有效率隔离。Aapi把扁平化管理组织工作模式引入到产品权限管理组织工作中,超级管理组织工作员拥有最高权限,并将权限分给若干产品方向管理组织工作员,超级管理组织工作员只需管理组织工作产品方向管理组织工作员即可;产品方向管理组织工作员拥有产品方向下的大部份权限,对产品方向及工程项目负责,并可将权限分给若干工程项目管理组织工作员,工程项目管理组织工作员拥有工程项目下的大部份权限。
单USB试验
系统全力支持http、scf三种USB试验,如下表所示图右图:
httpUSB试验大家通常都会使用postman等类似的辅助工具,所以在GUI交互设计上借鉴了postman的风格。目前网络平台全力支持get、post允诺,全力支持http,https三种协议,全力支持上下文关联USB,全力支持登录功能。
SCFUSB试验计划在《API管理组织工作网络平台之SCF服务工程项目试验篇》会详细如是说,大家敬请期待!
历史记录模块可查看、编辑试验记录,还全力支持回填功能,回填后在历史试验统计数据基础上做单纯修改,即可继续试验。
示例列表可搜索示例、查看示例详情。还可编辑、删除示例,废弃、启用示例,同时也全力支持回填功能。
1、登录过期
USB在允诺时,往往需要登录。仿照postman可以把cookie信息写到header中,但难题来了,为了保障登录的安全性,一段时间后PPU会失效,引致示例执行失败。如何解决这一难题呢?58中台提供更多了通过用户名、密码生成登录信息的USB,在header模块存档用户名、密码,后台调用此USB动态生成登录信息,可解决cookie失效难题。但又会引发另外两个难题:用户名、密码多次重复存档和账号安全问题(用户密码作为模块输入,直接暴露在GUI页面)。最终的软件系统是把账号作为配置统一管理组织工作,同一账号一次存档多次使用,密码隐藏显示。
2、USB上下文关联
已关联的新USB,在历史记录中直接筛选即可,如下表所示图右图:
另外一部分是网络平台已有USB,通过USB名或示例ID查找到已有示例进行关联,如下表所示图右图:
另外有些公共USB,如城市ID、城市名称、类目ID等,通过筛选示例方式会减少效率,网络平台直接封装一键生成,如下表所示图右图:
3、 断言计划
列表、详情信息展示是QA关望值,这样可精准断言。
还有一些场景,列表页第一页共展示150条帖子,需要验证USB返回的帖子总数。若USB提供更多Count表头,直接断言value值即可,但有些返回值并未提供更多这样的表头,需要统计List的长度。他们的软件系统是提供更多Length断言类型,输入JsonPath和期许返回的帖子总数,即可断言。另外二手车帖子可根据价格区间进行筛选,那么如何验证返回的大部份车源都在此价格区间呢?同样网络平台提供更多了统计数据区间断言类型,输入JsanPath和期许的统计数据区间。断言示例如下表所示图右图:
批量示例试验
系统通过任务对示例进行分类和管理组织工作。试验创建任务时,选择试验类型,HTTPUSB试验或SCFUSB试验,然后选择示例集,系统调起当前产品方向下大部份USB,根据USB及示例标签筛选示例集,顺利完成任务创建。网络平台还全力支持同一任务包含HTTP及SCF三种USB示例,选择某一USB类型示例集后可追加选择另一种USB类型示例集。通过配置中心选择试验自然环境,可运行任务。网络平台还提供更多了结果报告和运行历史查看功能。
目前全力支持四种任务调度方式:全自动触发、提测触发、上线触发和定时触发。
提测触发:关联任务,定时监听提测版本部署状态,如提测成功,且版本更新触发任务执行。
上线触发:关联任务,定时监听发布状态,如发布成功,且版本更新触发任务执行。
定时触发:选择时间间隔,定时触发关联任务。
成果
API USB管理组织工作网络平台极大的提高了研制效率,提效点归纳如下表所示:
1)后端合作开发:规范USB文件格式,丰富合作开发禁绝计划,提高合作开发质量;2)后端合作开发:mock计划,解决前期模拟统计数据难题,便于增容,并行合作开发;4)试验方面:USB文件格式和USB试验采用同一统计数据源,试验期无需全自动存档USB表头;5)试验方面:QA在RD禁绝基础上,只需单纯表头修改即可顺利完成试验,减少时间成本;AapiUSB管理组织工作网络平台已推广到整个汽车技术部。目前共创建19个产品方向,80个工程项目,237个USB,USBMock次数超过1500+次,累计示例2500+条,重点USB功能覆盖率达62%。
作者简介
董威一,2015年4月加入58汽车事业部,现任汽车技术部质量负责人。主要负责提效辅助工具网络平台设计合作开发、业务质量保障及质量技术部管理组织工作组织工作。
END
阅读推荐
开源|Magpie:混合合作开发工程化架构
开源|Magpie:58 跨网络平台技术应用及 Flutter 实践概览