编辑:[db:作者] 时间:2024-08-25 07:29:42
问题
过去的一年闲鱼客户端在首页、搜索、商品发布等核心场景下进行App体验优化与升级,在客户端快速迭代过程中常常会涌现UI改版之后某些关键埋点没有上报、埋点关键字段缺失落、埋点字段值禁绝确等问题,而这些问题在线下测试的时候由于不影响用户体感而被忽略,每每客户端版本发布之后算法或者数据同学察觉到数据非常才会回过分来定位埋点问题,问题修复代价很高,常日会追加客户端版本或者开关降级来办理埋点非常的问题。通过对迭代过程中涌现的问题复盘得出来紧张有以下的急需办理的问题
•哪些是我们须要重点保障的核心埋点
•如何开展有效的线下埋点测试
•如何提高埋点问题的打消效率
针对以上问题,闲鱼技能质量团队结合自身业务特点供应了一套低侵入埋点质量保障方案
埋点质量保障方案
闲鱼端上承载着恒河沙数的埋点,且随着业务的增长埋点个数也在一直地增多,而这些埋点由于历史缘故原由都没有沉淀干系的解释文档,依赖开拓、数据、产品同学主动梳理埋点数据显然是一件耗时费力又随意马虎出错的事情,以是针对端上埋点质量保障我们的核心思想是:通过历史数据的剖析和人工干预天生埋点画像(校验规则、值特色),优先保障核心埋点,并供应自动化测试和埋点版本比拟来提升埋点数据交付的信心。
如图所示为闲鱼端内埋点质量保障方案,埋点数据hook后进行数据的抄送,抄送的埋点数据会分为两部分,一部分样本会交给埋点剖析做事提取埋点的Key/Value特色,进而生产埋点的校验规则;另一部分核心埋点会交给验证做事处理,参考已天生的校验规则和人工干预的校验条件会对这部分数据进行逐个校验,末了在版本灰度发布前也会供应埋点的版本比对功能来确定核心埋点是否漏报。
核心埋点梳理
首先须要从成千上万的埋点中圈选出重点保障的埋点,圈选的原则是
•埋点数据缺失落/非常会导致搜索推举算法精准性
•埋点数据缺失落/非常会导致大盘统计数据偏差
•埋点数据缺失落/非常会导致运营投放策略
知足上述条件的都会被标记为闲鱼客户端核心埋点。前期我们梳理了闲鱼首页、同城、关注、搜索、详情等场景,并通过埋点所属页面(PAGE)、事宜标识(ARG1)、事宜类型(EVENTID)进行核心埋点的标记,终极在后续的测试中也更侧重于这部分核心埋点,而这部分的埋点的校验规则则是由样本数据剖析和人工规则干预得出的。
埋点数据上报
圈选出核心埋点之后,接着须要办理的问题便是如何获取客户端埋点数据。闲鱼端上集成的埋点SDK是通过实时上报通道对埋点数据进行上报,上报后数据经由处理后会终极落到数仓中,以是说要拿到埋点数据可以从数仓中取数据,也可以在端高下功夫。由于数仓取数存在数据实时性不高、数据量大、调用链路长等问题,终极选取了客户端埋点抄送的方案。通过对端上埋点上报通道的hook来实现每一个埋点数据抄送。
例如在Android端我们采取的是AOP切面拦截的办法对开拓包的埋点数据进行截获然后通过HttpAPI抄送到数据吸收做事。当然采取这种直接拦截代码的办法做数据抄送须要熟习代码逻辑,做最小化的侵入。除了AOP切面拦截,类似的通用技能方案Frida[1]也是不错的选择。
埋点校验规则
有了埋点数据之后接下来便是补全核心埋点的特色,例如埋点上报哪些字段、字段是必须上报的、字段的值是离散的还是可列举的、字段在高下文场景中值的特点。后真个数据处理就会根据核心埋点的分布和版本上报数据进行样本的提取,对每个样本逐字段进行检讨,并统计Key的分布、Value的分布,当样本数达到阈值之后根据历史Key/Value分布数据就能得出以下的根本校验规则
•Key非空
•Value非空
•Value取值范
上面的根本规则得出之后进一步对数据进行聚类剖析,就可以得出以下的场景校验规则
•组合Key条件下Value的特色
例如:通过样本的聚类剖析可以推断出类似于“同一次搜索过程中,rn参数必须保持同等”这样的规则
埋点自动化测试
有了数据和规则接下来就须要自动化测试脚本大显技艺了。通过手工操作闲鱼App能知道对应埋点触发的机遇、页面等信息,因此只要编写自动化测试代码替代人工的点击、滑动、浏览行为就可以做到埋点的自动化验证。以搜索点击核心埋点为例整体的自动化验证过程示意如下
埋点的自动化测试可以大幅提高埋点回归的效率,测试同学只需按照版本掩护核心埋点自动化用例,就可以在分钟级别完成闲鱼核心埋点的自动化验证。埋点自动化测试办理了大部分的核心埋点的精准验证问题,版本比对则是在自动化之上实现埋点Diff的功能,通过不同版本埋点数据的比对快速检测出新版本中哪些埋点丢了,哪些埋点埋点格式发生了变革,进一步降落人工打消的本钱。
总结
闲鱼端内埋点质量保障方案对端上侵入较少,通过历史样本数据剖析免去了人工主动梳理埋点的事情量,目前梳理出闲鱼端内主要场景(首页/关注/同城/搜索/发布/详情)下的核心埋点共计100+,UI自动化验证整体回归韶光由手工测试耗时0.5天下降为到分钟级别,快速的版本比对和可视化的埋点数据展示和筛选也让埋点问题排查变得更加方便。
在未来我们将连续从以下两点来进行方案的整体优化:
•埋点自动化将纳入端上集成卡点之中,即开拓同学集成后就立即触发埋点的自动化验证和比对,在集成阶段就提早创造埋点问题。
•自动化深度和用例的可掩护性方便也是我们须要努力的方向。
希望我们的自动化手段能让更多技能小二从重复劳动中开释出来,提升数据质量的同时也为每一个闲鱼的用户供应知心的个性化推举行事,为每一个闲鱼用户供应更好的购物体验。
References
[1] Frida:https://github.com/frida
闲不住?来闲鱼!
PICK ME
闲鱼技能团队通过创新追寻更多代价,不断驱动业务变革。
从闲置买卖的老本行,到打造“无忧购”“会玩社区““新线下”,
从出版书本、峰会发声,到开源专利、海外传播,
闲不住,上闲鱼——技能团队对极致的探索与深耕是我们的底气。
立即加入
1、招客户端/做事端/前端/架构/质量工程师
2、发简历给guicai.gxy@alibaba-inc.com
3、您还可以在头条、知乎、掘金、facebook、twitter找到我们
本站所发布的文字与图片素材为非商业目的改编或整理,版权归原作者所有,如侵权或涉及违法,请联系我们删除,如需转载请保留原文地址:http://www.baanla.com/xyj/177334.html
上一篇:实用电子DIY制作一个无线遥控开关将你的生活变得智能化
下一篇:返回列表
Copyright 2005-20203 www.baidu.com 版权所有 | 琼ICP备2023011765号-4 | 统计代码
声明:本站所有内容均只可用于学习参考,信息与图片素材来源于互联网,如内容侵权与违规,请与本站联系,将在三个工作日内处理,联系邮箱:123456789@qq.com