QECon质效前沿

其他

精选TOP10|电商大促万亿级数据稳定性保障解决方案

topic实际历史峰值数据为基础,进行数据膨胀和针对性流量补充。在源头TT
2022年11月30日
其他

基于出行领域全场景的mock提效探索与实践

哈啰业务数据场景痛点软硬件一体化应用场景用户从APP端、支付宝小程序、微信小程序、H5和WEB,经过一些核心服务。核心服务通过HTTP或内部的RPC接口,包含用户增长、配置平台、综合平台、用户增长等,对应的基础平台包括存储平台、用户平台、算法平台、开放平台、大数据、地图平台等。物联网目前主要对接单车、电动车、电池、电柜等。研发测试阶段遇到的痛点单车这里,红包车数据测试链路过长,手工构造一次数据需要0.5天以上;不同入参返回不同结果,难以构造模拟返回数据。助力车这里,超区断电依赖地图算法模型,测试线下路上跑来跑去模拟临区超区耗时过长。顺风车这里,对接众多第三方平台,迭代回归第三方接口,各种场景返回难以构造。支付这里,异常场景众多,实名认证信息难以构造。换电这里,不同项目并行开发,对方接口未开发的情况下,开发调试成本过高;无法模拟只支持某个时间段的返回结果。电动车这里,通过单测的方式Mock各种场景代码量巨大;部分场景Mock需要研发配合改造代码,侵入性过高,成本较大。哈啰HiMock和传统Mock的对比传统Mock在哈啰全场景先天性不足传统Mock一是代码改动频繁,只要代码变动,case相关代码都需要改动,整体耗时较长;二是链路简单,只支持简单链路的Mock;三是Mock难度上,数据构造难,非本业务线同学如果没有接口文档,不知道如何快速Mock;四是扩展难度较大,仅支持部分软件协议,不能扩展。而哈啰全场景业务特性一是代码改动难,涉及到多个业务方,研发无法及时配合验证迭代需求改动相关代码;二是链路复杂,需要支持前后多端、涉及硬件协议链路的Mock;三是Mock难度上,并行开发时,多个业务同个接口模拟不同的返回,构造成本较大;四是拓展程度上,需要支持软硬件协议数据模拟。打破传统Mock的设计思路我们为了打破传统Mock的设计思路,从以下六点设计HiMock。一是低代码,代码开发量少,可以快速搭建框架;二是代码解耦,不需要用户改动任何代码;三是高性能,不影响原有系统的性能指标;四是应用性,用户可以低成本Mock;五是支持前后置场景,如签名、回调、数据库操作等;六是全场景,支持前后端各种协议。Mock技术支撑全场景业务域的实践打破传统互联网的软硬件结合的Mock业务架构首先介绍服务链路,C端用户主要来源于哈啰APP、支付宝小程序、微信小程序,通过HTTP网关,再进入各个业务的入口,包括单车、助力车、电动车、换电、顺风车等,接下来我们协议拦截之后,再去匹配对应规则引擎里配置的规则来看是不是命中了对应的Mock,并去检查对应的静默开关、生效时间、生效范围、延时、参数替换、后置条件,这些都是通过规则引擎拿到对应的数据。我们通过Mock返回的规则,一站式并支持多端。接下来介绍产品能力,一是Mock管理,包括case创建、case列表、我的Mock;二是工具管理,主要是YAPI|Swagger接口导入;三是大盘统计,主要是调用统计的分析,包含每个业务域、调用量以及对应的Mock量、各业务线使用的分析等;四是权限管理,包括用户权限和用户组权限;五是拦截规则引擎,包括高并发支持、静默支持、生效范围和参数替换;六是一体化Mock工作台,可以集成APP、H5、微信小程序和支付宝小程序,自动接口抓包、一键功能,并支持YAPI|Swagger接口导入、接口参数自动获取、匹配规则参数自动生成;七是自动更新,底层代码改动,自动更新最新代码;八是环境稳定性,保证整体研发测试流程不被打断,Mock可被追溯。HiMock整体流程我们case的来源分为三部分,包括HiMock、Fox和第三方。左边这部分就是用户请求,分为后端请求和前端请求。后端请求我们通过Agent拦截到对应的协议之后,根据Mock、规则引擎去匹配对应的规则,如果能匹配到,就把对应的Mock结果返回出去。Agent的下载流程也有两部分,一是Atlas部署的时候,会去检查Agent是否存在,如果不存在,会自动下载到对应服务的原容器上或者ECS上面。二是添加或更新case的时候,也会去判断Agent是否存在。前端请求iOS是针对NSURLProtocol协议进行拦截和转发到对应的Mock规则引擎,去判断是否命中;安卓是针对OkHttp协议拦截和转发,其他协议也可以在这里进行兼容适配处理。HiMock底层Agent设计HiMock底层Agent设计主要分四方面,一是字节码拦截,我们经过大量的对比分析,最终选型ByteBuddy作为字节码拦截的底层框架,可实现低代码,迭代敏捷迅速开发。二是拦截协议,我们实现插件化模式开发,可快速实现拦截协议的开发与配置,支持多维度协议拦截。三是壳化Agent,对外暴漏一个premain的壳函数,可实现动态代码更新相关功能。四是后置处理,复杂链路信息,需要在Mock
2022年10月12日
其他

把度量引导到正确的方向上

文章转载来源:极客邦科技InfoQ写作社区研发效能度量的出发点虽然很好,但是如何正确、有效的度量却是一个颇有难度的技术活儿。近期围绕如何进行效能度量的讨论不绝于耳,但如何构建度量的体系化框架、如何进行度量指标的选取、如何进行度量分析、如何进行落地运营,却鲜有文章具体阐述。在这一背景下,张乐老师撰写了《研发效能度量核心方法与实践》系列文章,对以往经验进行了总结和提炼,包括以下内容:
2022年5月26日
其他

相聚鹏城、论道质效:QECon大会深圳站圆满落幕

29日全天还有其它9个专场分别登场亮相,有质量内建、质量保障体系、DevOps与持续交付、研发流程管理、工程效能与开源协同、团队建设与转型、业务价值与用户体验、智能测试、新兴测试,其中自动化测试
2021年5月31日