跟着大厂学测试:京东怎么做埋点测试平台?

程序员二黑 程序员二黑     2022-12-10     781

关键词:

  • 📢 我是二黑,一个快要秃头的测试人

  • 📢 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!

  • 📢 我收集了一些软件测试资料,关注我公众号:程序员二黑,免费领取!

  • 📢 最困难的时候,也就是我们离成功不远的时候!


截至目前,京东零售集团拥有超过4.174亿活跃用户,是全球2600多家超亿元品牌和数十万个第三方商家的最大增量场。为了研究业务模块功能是否满足用户的期望,业务团队通常会在应用程序中预先设置埋点数据。若用户在使用应用程序的过程中,触发预先设置了埋点的功能模块,应用程序会发送相应的埋点数据到服务器,如下图。通过处理埋点数据以及进一步的分析,能够推测出应用程序功能是否被用户广泛使用,并可根据埋点数据结果对应用程序进行调整或改善,从而更好的满足用户需求,提高用户体验。

在这里插入图片描述

为了保证埋点数据分析结果的正确性,通常在应用程序发版之前,测试人员需要对埋点数据进行测试。现有技术中,埋点测试方法一般如下:应用程序在设置埋点数据后,测试人员通过抓包工具(Fiddler、Whistle等)截获网络传输的数据包,并在数据包中提取出埋点数据进行校验。具体的校验方法:应用程序上报的埋点数据与预先规定的埋点数据需求文档是否一致,一致则测试通过,否则应用程序需要重新设置埋点数据,测试人员重新触发埋点进行验证。

早期埋点测试方法

1、早期的埋点测试方法通常是:测试人员通过抓包工具(Fiddler、Whistle等)截获网络数据包,抽取出埋点数据,然后和埋点数据需求文档人工进行一一对比;当埋点数量较多时,测试人员需要频繁的通过抓包工具获取埋点数据,步骤较多,成本较高,测试效率较低;人工对埋点数据进行对比验证,容易出错,漏测率较高。

在这里插入图片描述

手工抓包测试埋点缺点:

  • 京东APP埋点加密,无法直接在抓包工具里查看

  • 阻碍开发自测

  • 大量埋点上报时,人工肉眼查看成本高,漏测率较高

  • 手工记录结果,费时费力

  • 当老埋点数据在应用程序升级过程中被修改出问题时,由于测试人员精力有限且主要集中在新埋点的测试中,导致老埋点数据问题遗留到线上环境

2、部分团队通过运行UI自动化用例触发埋点数据上报,并和埋点数据需求文档自动进行对比分析,减少了繁琐的手工触发和肉眼对比的操作,从而降低了成本。

UI自动化测试埋点缺点:

  • 应用程序迭代较快,UI控件布局变化频繁,导致UI自动化用例稳定性差、失败率高,维护成本高

  • 学习编写UI自动化用例门槛较高,不利于广泛推广使用

埋点测试平台(track)建设与实践

1、为了方便测试人员、开发人员、产品人员高效快速的测试验收埋点,我们自主研发了track埋点测试平台。结构图如下:


其中几个关键点:

  • 代理支持:通过对Fiddler开发自定义插件、Whistle进行二次开发,track平台能够无缝衔接抓包工具(Fiddler、Whistle等),实现了无侵入的收集应用程序的埋点数据,减少了获取埋点数据的步骤,节约了测试时间;

  • APP扫码上报埋点:无需连接代理,APP扫描二维码便可上报埋点到track平台,且能够实时查看埋点数据。解决了产品人员、开发人员等因没有安装代理环境或不会使用代理工具等因素,而无法验收、自测埋点的问题;

  • 漏报性检测:检测埋点是否漏报;

  • 规则自动对比:根据埋点数据的需求文档生成动态的规则库,自动对应用程序上报的埋点数据进行实时、快速的一致性检测,降低了验证埋点的成本,提高了埋点测试的准确性;

  • 历史埋点数据:进行持久化存储,方便追溯历史数据;

  • 埋点方案规范性检测:活动上报的埋点数据必须满足一定的规范,才能保证埋点提数的正确性,以及活动运营数据评估的准确性。在埋点测试之前,对埋点方案进行规范化检查,能够尽早揭露问题,实现了测试左移;

特点:

  • 无痕获取埋点数据

  • 自动和埋点方案对比测试,失败时高亮提示

  • 记录埋点测试过程数据、一键生成报告

  • 丰富多样的规则库,能灵活配置,维护成本低

  • 图表功能直观展示,可查看实时、历史埋点数据

2、track平台埋点测试流程如下图所示,抓包工具(Fiddler、Whistle等)包含一个自定义插件,当测试人员使用APP扫码或者连接抓包工具并触发应用程序时,会无感知的收集埋点数据并上报到服务器。服务器包含一个动态规则库:通用规则和自定义规则,根据动态规则库自动检测埋点数据是否正确,并生成测试报告。

在这里插入图片描述

基于track平台的埋点测试的详细流程如下描述:

(1)抓包工具(Fiddler、Whistle等)安装自定义插件,无感知的获取应用程序的埋点数据。自定义插件的具体实现方法如下:1)监听抓包工具传输的所有网络数据包的域名(HostName);2)当网络数据包的域名(HostName)和应用程序的埋点上报的域名一致时,拷贝网络数据包的请求内容(RequestBody),并发送到服务器;

自定义插件只需开发实现一份,可重复利用,测试人员不需要进行额外的操作,学习成本低,有利于推广使用;自定义插件自动监听埋点数据并发送到服务器,不需要对被测应用进行二次改造,达到了无侵入、无感知的收集埋点数据的目的。

(2)如图所示,服务器收到埋点数据后,根据动态规则库对埋点数据进行自动检测,并生成测试报告。动态规则库包括通用规则和自定义规则。

通用规则的实现方法具体如下:需求文档中埋点数据的固有属性抽象成通用规则,例如:埋点数据的类型(点击、PV、曝光);埋点数据的字段是否为空;埋点数据字段的拼接个数等。因通用规则具有普遍性,适用性广,所以只需生成一份,可重复使用,实现成本比较低。

自定义规则的实现方法具体如下:需求文档中的埋点数据,因触发应用程序的场景不同,导致实际上报的埋点数据存在差异性时,需对埋点数据的字段采用正则表达式生成自定义规则。因自定义规则是针对某个具体埋点数据实现的,满足了个性化的需求。

当埋点数据量比较庞大时,优先生成并使用通用规则,只有埋点数据的格式存在不确定性时,才利用正则表达式生成自定义规则。所以该动态规则库既节约了成本,同时具有灵活性、多样性的特点。

3、track平台埋点测试功能使用场景如下图:

在这里插入图片描述

功能测试期间:当用户(测试、开发、产品)触发业务模块功能时,会实时推送埋点数据到track平台,且实时地、自动地进行规则检查;track平台会提取埋点的关键字进行单独显示,能快速方便的找到埋点测试的要点,节约时间成本。

在这里插入图片描述

回归测试期间:采用通用规则和自定义规则,定时自动地对一级模块的核心埋点进行回归检测,防止因合并代码或模块功能的改动影响到核心埋点的正确性。回归测试检测报告部分内容如下图。

在这里插入图片描述

测试成本对比

以单个埋点为例,埋点测试节约时间成本如下:

在这里插入图片描述

以单个埋点为例,查看历史版本节约时间成本如下:

在这里插入图片描述

总结及展望

埋点测试track平台通过自定义插件、扫码等方式,无感知、无侵入的收集应用程序的埋点数据。且能够根据动态规则库自动检测出异常的埋点数据,节约人力时间成本,提高了埋点测试的准确性。

track平台在若干个月内,便可收集千万条数据。通过对埋点数据提取特征值,并对大量的已被测试标注为是否正确的埋点数据进行训练分析,建立模型,定义一个清晰的决策边界,从而找出与正常埋点数据集差异较大的离群点,智能化分析出异常埋点数据。

最后为方便大家学习测试,特意给大家准备了一份13G的超实用干货学习资源,涉及的内容非常全面。


包括,软件学习路线图,50多天的上课视频、16个突击实战项目,80余个软件测试用软件,37份测试文档,70个软件测试相关问题,40篇测试经验级文章,上千份测试真题分享,还有2021软件测试面试宝典,还有软件测试求职的各类精选简历,希望对大家有所帮助……

关注我公众号:【程序员二黑】即可获取这份资料了!

如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入我们的群:785128166 大家一起讨论交流,里面也有各种软件测试资料和技术交流。

推荐阅读

高薪程序员也躲不过35岁这一关…当能力与年龄脱节,我们该如何自救

大学毕业开始销售…不甘于现状,转行测试的自救之路

从销冠到失业,最后选择软件测试,回头看看这段路,我很幸运!

京东科技埋点数据治理和平台建设实践

导读本文核心内容聚焦为什么要埋点治理、埋点治理的方法论和实践、奇点一站式埋点管理平台的建设和创新功能。读者可以从全局角度深入了解埋点、埋点治理的整体思路和实践方法,落地的埋点工具和创新功能都有较高... 查看详情

京东科技埋点数据治理和平台建设实践

导读本文核心内容聚焦为什么要埋点治理、埋点治理的方法论和实践、奇点一站式埋点管理平台的建设和创新功能。读者可以从全局角度深入了解埋点、埋点治理的整体思路和实践方法,落地的埋点工具和创新功能都有较高... 查看详情

京东科技埋点数据治理和平台建设实践

导读本文核心内容聚焦为什么要埋点治理、埋点治理的方法论和实践、奇点一站式埋点管理平台的建设和创新功能。读者可以从全局角度深入了解埋点、埋点治理的整体思路和实践方法,落地的埋点工具和创新功能都有较高... 查看详情

平台化测试难度大?京东教你如何用无人测试实现产品质量效率双提升

...,时任京东B2B产品质量团队负责人杨瑾老师分享的《无人测试如何助力京东提升产品测试效率与质量》实录,重点分享:无人测试,创新测试方法论,接口测试案例。(PPT+文稿)。杨瑾老师拥有10年以上互联网及传统行业测试经... 查看详情

平台化测试难度大?京东教你如何用无人测试实现产品质量效率双提升

...,时任京东B2B产品质量团队负责人杨瑾老师分享的《无人测试如何助力京东提升产品测试效率与质量》实录,重点分享:无人测试,创新测试方法论,接口测试案例。(PPT+文稿)。杨瑾老师拥有10年以上互联网及传统行业测试经... 查看详情

如何设计出一个高效的埋点管理系统?

​作者介绍@九果入行大数据8年;某大厂数据产品经理;专注于数据产品,并持续学习中;“数据人创作者联盟”成员。 01 为什么要做埋点管理系统? 备注:如果您已经知道为什么要做埋点管理系统了,可以直接跳去第三节... 查看详情

2000字原创大厂都在用的几款软件测试平台!

目录一、测试用例管理平台二、bug管理平台三、代码管理平台四、持续集成管理平台一、测试用例管理平台jira:推荐方案,定制性很强redmine:推荐方案,开源,活跃,定制性很强testlink:流行的测试用... 查看详情

数据分析——埋点

...和talkingdata等,不过部分深层次的用户行为数据还是需要做埋点收集的  做埋点时,一般需要两个表,一个是埋点事件表,一个是埋点统计表  1、埋点事件表:  数据埋点事件表一般是记录每个页面的交互事件,一般是后... 查看详情

全网独家分享,软件测试就该这么学,3个月进大厂!

软件测试学前准备这是比较重要的内容,因为学前准备的知识是为以后的测试做铺垫的,如果基础打不好,后面的测试学习很难进行。在学前准备中包括系统知识、数据库、编程等,其中系统知识又包括Linux、Windo... 查看详情

埋点测试埋点接口测试

2018-12-01  15:56:22    http://www.sohu.com/a/257194700_465988埋点是一种数据分析工具,用来分析用户行为。捕捉用户数据,管理数据。埋点是一种客户端行为采集方式。分为代码埋点、全埋点、可视化埋点。 为什么要专门埋点... 查看详情

京东多端全流程交易解决方案阿波罗平台ios单元测试实践(代码片段)

...言、函数式编程、强类型、MVC或其他任何东西,而是来自测试文化的兴起。”——XML之父TimBray单元测试什么是单元测试?单元测试,是针对一小段代码或方法,检验被测代码一个小的、明确的功能是否正确,证明某段代码的行... 查看详情

揭秘:培训机构学三个月,就拿到一线大厂软件测试offer

...候听了面试分析课,抱着试试看的态度去投了某一线大厂,被机构老师优化过的简历更快就让我收到了面试邀请,面试过程中,果然有套路不过,听了面试课的人无所畏惧,很快就收到offer啦!月入过... 查看详情

面试京东测试岗后的感想,很后悔这5年来一直干的都是“点工测试”

前两天,我的一个朋友去大厂面试,跟我聊天时说:输的很彻底…我问她:什么情况?她说:很后悔这5年来一直都干的是功能测试…相信许多测试人也跟我朋友一样,从事了软件测试很多年,却依... 查看详情

如何学习网络安全?手把手带你跟着b站一起学——网络安全渗透测试篇(第一天)

如何学习网络安全?手把手带你跟着B站一起学——网络安全渗透测试篇(第一天)前言物理机,虚拟机,集成开发环境,网站的关系基础概念名词的补充1.什么是服务器2.什么是客户端3.什么是getshell4.什么... 查看详情

埋点测试基础篇--什么是站包

站点包,是说用测试站点打的包,正式站点编号和测试站点编号对应的字段都是std,在埋点SDK初始化的时候由APP传入,主站APP正式站点编号是XX2016_311210,数据上报至正式环境mmm.xx.com;使用测试站点:cs09,数据会上报至测试环境luna... 查看详情

app埋点测试

手把手教你进行APP数据埋点2017年09月18日11:02:46 hackeey 阅读数:42543经过大半年的努力,产品终于开始趋向稳定,之前的版本一直在探索,需求经常改动,没时间系统进行埋点。随着产品的稳定以及工作的深入,越发认识... 查看详情

测试2年拿30k,你让开发怎么办?

...发面前,真的只能是“卑微”吗?一位在杭州某大厂工作的“大佬”终于忍不住了:“测试行业入门简单,技术难度低”,这明显是对测试行业的偏见;如果你去一线大厂溜一圈,你会发现:企业... 查看详情

大厂光环下的功能测试,出去面试自动化一问三不知

...;这种情况并不少见。一个京东员工发帖吐槽:感觉在大厂快待废了,出去面试问自己接口环境搭建、pytest测试框架,自己做点工太久都忘记了。平时用的时候搜一搜,用法不难,但一些知识点看了就忘,... 查看详情