一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

埋点校验方法、埋点校验装置、可读存储介质、电子设备与流程

2023-02-02 01:41:41 来源:中国专利 TAG:


1.本公开的实施方式涉及计算机技术领域,更具体地,本公开的实施方式涉及一种埋点校验方法、埋点校验装置、计算机可读存储介质及电子设备。


背景技术:

2.本部分旨在为权利要求中陈述的本公开的实施方式提供背景或上下文,此处的描述不因为包括在本部分中就承认是现有技术。
3.埋点是在应用中特定的流程收集一些信息,用来跟踪应用使用的情况,以为后续的进一步优化产品提供数据支撑。而对埋点进行校验,可以保证收集到的信息准确性。
4.现有技术中的埋点校验方案主要分为以下2种:第一种是在开发阶段,通过日志的实时上传,在服务端进行规则匹配校验或者将埋点平台上存储的埋点需求规则下发到客户端,在客户端对实时产生的埋点进行校验;第二种是在埋点灰度或全量发布上线后,针对新老版本的埋点进行对比和异常波动监控,以识别埋点数据是否存在问题。


技术实现要素:

5.然而,第一种方案仅关注埋点的正确与否,对于埋点的多报或漏报无法进行校验,因此,校验的准确性不足。第二种方案,需要上线后才能根据新老埋点数据的波动发现问题,对问题的发现周期较长,且其依赖于新版本的用户覆盖量达到一定的占比才能准确的根据新老数据的波动发现问题,导致埋点校验的效率低下,此外,其在埋点上线后才能发现问题,存在问题发现滞后的缺陷。
6.为此,非常需要一种改进的埋点校验方法,可以提高埋点校验的准确性和埋点校验的效率,同时可以在埋点上线之前,发现更多的问题,尽量避免问题发现的滞后性。
7.在本上下文中,本公开的实施方式期望提供一种埋点校验方法、埋点校验装置、计算机可读存储介质及电子设备。
8.根据本公开实施方式的第一方面,提供一种埋点校验方法,包括:接收应用程序客户端的埋点上报信息,响应于所述埋点上报信息包括坑位信息,将所述坑位信息与目标坑位库中的坑位进行匹配;根据匹配结果,基于目标校验规则库,对所述埋点上报信息进行校验;其中,所述目标坑位库和所述目标校验规则库根据待校验埋点任务中的埋点确定。
9.在一种可选的实施方式中,所述根据匹配结果,基于目标校验规则库,对所述埋点上报信息进行校验,包括:响应于匹配成功,获取所述坑位信息中包括的埋点对象标识;针对每个埋点对象标识,基于所述埋点对象标识关联的第一埋点参数在所述目标校验规则库中的校验规则,对所述埋点上报信息中的第一埋点参数进行校验。
10.在一种可选的实施方式中,所述根据匹配结果,基于目标校验规则库,对所述埋点上报信息进行校验,包括:响应于匹配失败,为所述埋点上报信息添加坑位匹配失败的标签。
11.在一种可选的实施方式中,在接收应用程序客户端的埋点上报信息后,所述方法
还包括:确定触发所述埋点上报信息的埋点上报事件关联的第二埋点参数,根据所述第二埋点参数在所述目标校验规则库中的校验规则,对所述埋点上报信息中的第二埋点参数进行校验;和/或根据所述目标校验规则库中的公共参数对应的校验规则,对所述埋点上报信息中的公共参数进行校验。
12.在一种可选的实施方式中,在所述埋点上报信息包括埋点测试任务对应的埋点上报信息的情况下,所述待校验埋点任务包括所述埋点测试任务中的第一埋点任务和所述埋点测试任务针对的应用程序已上线的第二埋点任务。
13.在一种可选的实施方式中,所述待校验埋点任务的确定方式包括:获取所述埋点上报信息中的预设字段的值,根据所述预设字段的值确定所述待校验埋点任务;其中,所述预设字段用于指示所述应用程序客户端的版本,所述待校验埋点任务包括所述应用程序客户端的版本对应的已上线的埋点任务。
14.在一种可选的实施方式中,所述方法还包括:根据接收到的埋点上报信息,更新第一数量和第二数量;响应请求显示第一校验模式校验结果的操作,显示埋点上报事件对应的第一数量和第二数量;其中,所述第一数量包括所述埋点上报信息指示的埋点上报事件的数量,所述第二数量包括所述埋点上报信息指示的埋点上报事件对应的埋点坑位的数量。
15.在一种可选的实施方式中,所述方法还包括:响应请求显示第一校验模式校验结果的操作,根据埋点上报信息的上报时间,顺序的显示埋点上报信息的校验结果。
16.在一种可选的实施方式中,在所述埋点上报信息包括埋点测试任务对应的埋点上报信息的情况下,所述方法还包括:确定包括枚举类型的埋点参数的目标埋点坑位;在每个目标埋点坑位的每个枚举取值都匹配成功的情况下,确定所述埋点测试任务测试完成。
17.在一种可选的实施方式中,所述方法还包括:针对所述埋点上报信息中未通过校验规则描述约束取值范围的目标埋点参数,根据预先与所述目标埋点参数关联的候选取值库,对所述目标埋点参数进行校验。
18.在一种可选的实施方式中,所述方法还包括:根据所述埋点上报信息中的埋点归因参数值,更新第三数量、第四数量、第五数量、第六数量、第七数量中的一种或多种;其中,第三数量用于表征埋点归因参数值为空的埋点上报信息的数量,第四数量用于表征埋点归因参数值非法的埋点上报信息的数量,第五数量用于表征埋点归因参数值不合理的埋点上报信息的数量,第六数量用于表征埋点归因参数值被降级处理的埋点上报信息的数量,第七数量用于表征所述埋点上报信息对应的埋点上报事件的各类型的埋点归因参数值的数量;其中,在埋点归因参数值中的坑位信息指示的坑位不属于埋点坑位的情况下,确定所述埋点归因参数值非法;在埋点归因参数值中的坑位信息指示的待确认坑位属于埋点坑位,但所述待确认坑位与所述埋点上报信息对应的埋点上报事件的候选埋点归因参数值中的坑位信息匹配失败的情况下,确定所述埋点归因参数值不合理;在所述埋点归因参数值中包括预设标识字段的情况下,确定所述埋点归因参数值被降级处理,所述预设字段标识用于标识对所述应用程序客户端中没有埋点对象的坑位进行触发后,生成的埋点归因参数值。
19.在一种可选的实施方式中,所述方法还包括:针对任一应用程序客户端,根据埋点上报信息的上报时间顺序,记录所述应用程序客户端的埋点上报信息;响应对目标埋点上
报信息的查询请求,获取与所述目标埋点上报信息的上报顺序在预设范围内的其它埋点上报信息,以显示所述目标埋点上报信息和所述其它埋点上报信息。
20.在一种可选的实施方式中,所述埋点上报信息包括根据埋点测试任务的测试用例触发所述应用程序客户端所生成的埋点上报信息,其中,所述测试用例基于所述埋点测试任务的待测试埋点坑位生成。
21.在一种可选的实施方式中,在所述埋点上报信息包括埋点测试任务对应的埋点上报信息的情况下,所述方法还包括:通过虚拟对象模拟埋点测试任务中的测试链路对应的测试数据,以基于所述测试链路对所埋点测试任务进行完整性校验。
22.根据本公开实施方式的第二方面,提供一种埋点校验装置,包括:埋点信息接收模块,被配置为接收应用程序客户端的埋点上报信息,响应于所述埋点上报信息包括坑位信息,将所述坑位信息与目标坑位库中的坑位进行匹配;校验模块,被配置为根据匹配结果,基于目标校验规则库,对所述埋点上报信息进行校验;其中,所述目标坑位库和所述目标校验规则库根据待校验埋点任务中的埋点确定。
23.在一种可选的实施方式中,所述根据匹配结果,基于目标校验规则库,对所述埋点上报信息进行校验,包括:响应于匹配成功,获取所述坑位信息中包括的埋点对象标识;针对每个埋点对象标识,基于所述埋点对象标识关联的第一埋点参数在所述目标校验规则库中的校验规则,对所述埋点上报信息中的第一埋点参数进行校验。
24.在一种可选的实施方式中,所述根据匹配结果,基于目标校验规则库,对所述埋点上报信息进行校验,包括:响应于匹配失败,为所述埋点上报信息添加坑位匹配失败的标签。
25.在一种可选的实施方式中,所述埋点校验装置还可以包括第二埋点参数校验模块和/或第三埋点参数校验模块,其中,第二埋点参数校验模块被配置为在接收应用程序客户端的埋点上报信息后,确定触发所述埋点上报信息的埋点上报事件关联的第二埋点参数,根据所述第二埋点参数在所述目标校验规则库中的校验规则,对所述埋点上报信息中的第二埋点参数进行校验;第三埋点参数校验模块被配置为根据所述目标校验规则库中的公共参数对应的校验规则,对所述埋点上报信息中的公共参数进行校验。
26.在一种可选的实施方式中,在所述埋点上报信息包括埋点测试任务对应的埋点上报信息的情况下,所述待校验埋点任务包括所述埋点测试任务中的第一埋点任务和所述埋点测试任务针对的应用程序已上线的第二埋点任务。
27.在一种可选的实施方式中,所述待校验埋点任务的确定方式包括:获取所述埋点上报信息中的预设字段的值,根据所述预设字段的值确定所述待校验埋点任务;其中,所述预设字段用于指示所述应用程序客户端的版本,所述待校验埋点任务包括所述应用程序客户端的版本对应的已上线的埋点任务。
28.在一种可选的实施方式中,所埋点校验装置还包括:数量显示模块,所述数量显示模块包括更新单元和显示单元,所述更新单元被配置为根据接收到的埋点上报信息,更新第一数量和第二数量;所述显示单元被配置为响应请求显示第一校验模式校验结果的操作,显示埋点上报事件对应的第一数量和第二数量;其中,所述第一数量包括所述埋点上报信息指示的埋点上报事件的数量,所述第二数量包括所述埋点上报信息指示的埋点上报事件对应的埋点坑位的数量。
29.在一种可选的实施方式中,所述埋点校验装置还包括顺序显示校验结果模块,所述顺序显示校验结果模块被配置为响应请求显示第一校验模式校验结果的操作,根据埋点上报信息的上报时间,顺序的显示埋点上报信息的校验结果。
30.在一种可选的实施方式中,在所述埋点上报信息包括埋点测试任务对应的埋点上报信息的情况下,所述装置还包括任务完成度校验模块,所述任务完成度校验模块被配置为确定包括枚举类型的埋点参数的目标埋点坑位;在每个目标埋点坑位的每个枚举取值都匹配成功的情况下,确定所述埋点测试任务测试完成。
31.在一种可选的实施方式中,所述埋点校验装置还包括候选校验模块,所述候选校验模块被配置为:针对所述埋点上报信息中未通过校验规则描述约束取值范围的目标埋点参数,根据预先与所述目标埋点参数关联的候选取值库,对所述目标埋点参数进行校验。
32.在一种可选的实施方式中,所述埋点校验装置还包括数量更新模块,所述数量更新模块被配置为:根据所述埋点上报信息中的埋点归因参数值,更新第三数量、第四数量、第五数量、第六数量、第七数量中的一种或多种;其中,第三数量用于表征埋点归因参数值为空的埋点上报信息的数量,第四数量用于表征埋点归因参数值非法的埋点上报信息的数量,第五数量用于表征埋点归因参数值不合理的埋点上报信息的数量,第六数量用于表征埋点归因参数值被降级处理的埋点上报信息的数量,第七数量用于表征所述埋点上报信息对应的埋点上报事件的各类型的埋点归因参数值的数量;其中,在埋点归因参数值中的坑位信息指示的坑位不属于埋点坑位的情况下,确定所述埋点归因参数值非法;在埋点归因参数值中的坑位信息指示的待确认坑位属于埋点坑位,但所述待确认坑位与所述埋点上报信息对应的埋点上报事件的候选埋点归因参数值中的坑位信息匹配失败的情况下,确定所述埋点归因参数值不合理;在所述埋点归因参数值中包括预设标识字段的情况下,确定所述埋点归因参数值被降级处理,所述预设字段标识用于标识对所述应用程序客户端中没有埋点对象的坑位进行触发后,生成的埋点归因参数值。
33.在一种可选的实施方式中,所述埋点校验装置还包括详情显示模块,所述详情显示模块被配置为:针对任一应用程序客户端,根据埋点上报信息的上报时间顺序,记录所述应用程序客户端的埋点上报信息,响应对目标埋点上报信息的查询请求,获取与所述目标埋点上报信息的上报顺序在预设范围内的其它埋点上报信息,以显示所述目标埋点上报信息和所述其它埋点上报信息。
34.在一种可选的实施方式中,所述埋点上报信息包括根据埋点测试任务的测试用例触发所述应用程序客户端所生成的埋点上报信息,其中,所述测试用例基于所述埋点测试任务的待测试埋点坑位生成。
35.在一种可选的实施方式中,在所述埋点上报信息包括埋点测试任务对应的埋点上报信息的情况下,所述埋点校验装置还包括完整性校验模块,所述完整性校验模块被配置为:通过虚拟对象模拟埋点测试任务中的测试链路对应的测试数据,以基于所述测试链路对所埋点测试任务进行完整性校验。
36.根据本公开实施方式的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的埋点校验方法。
37.根据本公开实施方式的第四方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来
执行上述第一方面所述的埋点校验方法。
38.根据本公开实施方式的埋点校验方法、埋点校验装置、计算机可读存储介质及电子设备,在接收应用程序客户端的埋点上报信息的情况下,响应于所述埋点上报信息包括坑位信息,将所述坑位信息与目标坑位库中的坑位进行匹配;根据匹配结果,基于目标校验规则库,可以对所述埋点上报信息进行校验;其中,所述目标坑位库和所述目标校验规则库根据待校验埋点任务中的埋点确定。一方面,本公开基于坑位对埋点信息进行校验,可以对埋点的多和漏进行校验,提高埋点校验的准确性;另一方面,本公开基于待校验埋点任务确定出目标校验规则库,进而可以对埋点的开发、集成、灰度、发布上线后的各个阶段对应的埋点任务,都能够自动的进行埋点校验,提高埋点校验的效率,且在待校验埋点任务是开发阶段中的埋点任务时,可以在开发阶段就对埋点进行校验,以在埋点上线之前尽早的发现埋点问题。
附图说明
39.通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
40.图1示出了根据本公开实施方式的一种埋点校验方法的示意图;
41.图2示出了根据本公开实施方式的一种根据坑位匹配结果,对埋点上报信息进行校验的方法的流程示意图;
42.图3示出了根据本公开实施方式的一种埋点参数配置页面的示意图;
43.图4示出了根据本公开实施方式的另一种对埋点校验方法的流程示意图;
44.图5示出了根据本公开实施方式的一种确定埋点测试任务是否测试完成的方法的流程示意图;
45.图6示出了根据本公开实施方式的一种进行埋点校验时的多端交互流程示意图;
46.图7示出了根据本公开实施方式的另一种对已上线的埋点任务进行实时校验的方法的流程示意图;
47.图8示出了根据本公开实施方式的一种人工提单跟进埋点校验的方法的流程示意图;
48.图9示出了根据公开实施方式的一种埋点校验装置的结构示意图;
49.图10示出了根据本公开实施方式的一种电子设备的结构图。
50.在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
51.下面将参考若干示例性实施方式来描述本公开的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
52.本领域技术人员知道,本公开的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件
(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
53.根据本公开的实施方式,提供一种,埋点校验方法、埋点校验装置、计算机可读存储介质及电子设备。
54.在本文中,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
55.下面参考本公开的若干代表性实施方式,详细阐述本公开的原理和精神。
56.发明概述
57.本公开的发明人发现,在现有的一些埋点校验方案中,仅关注埋点的正确与否,对于埋点的多报或漏报无法进行校验,因此,校验的准确性不足。在现有的另一些埋点校验方案中,需要上线后才能根据新老埋点数据的波动发现问题,对问题的发现周期较长,且其依赖于新版本的用户覆盖量达到一定的占比才能准确的根据新老数据的波动发现问题,导致埋点校验的效率低下,此外,其在埋点上线后才能发现问题,存在问题发现滞后的缺陷。
58.鉴于上述内容,本公开的基本思想在于:提供体征埋点校验方法、埋点校验装置、计算机可读存储介质及电子设备,在接收应用程序客户端的埋点上报信息的情况下,响应于所述埋点上报信息包括坑位信息,将所述坑位信息与目标坑位库中的坑位进行匹配;根据匹配结果,基于目标校验规则库,可以对所述埋点上报信息进行校验,其中,所述目标坑位库和所述目标校验规则库根据待校验埋点任务中的埋点确定。一方面,本公开基于坑位对埋点信息进行校验,可以对埋点的多和漏进行校验,提高埋点校验的准确性;另一方面,本公开基于待校验埋点任务确定出目标校验规则库,进而可以对埋点的开发、集成、灰度、发布上线后的各个阶段对应的埋点任务,都能够自动的进行埋点校验,提高埋点校验的效率,且在待校验埋点任务是开发阶段中的埋点任务时,可以在开发阶段就对埋点进行校验,以在埋点上线之前尽早的发现埋点问题。
59.在介绍了本公开的基本原理之后,下面具体介绍本公开的各种非限制性实施方式。
60.应用场景总览
61.需要注意的是,下述应用场景仅是为了便于理解本公开的精神和原理而示出,本公开的实施方式在此方面不受任何限制。相反,本公开的实施方式可以应用于适用的任何场景。
62.本公开可以应用于对数据进行采集的场景,例如:可以使用本公开提供的埋点校验方法对开发阶段的埋点进行校验,然后在校验通过后,将埋点上线,以采集应用的使用数据(如访问数、访客数、停留时长、页面浏览数等),从而跟踪的应用使用的情况,以为应用的进一步优化提供数据支持;在信息推荐场景中,可以使用本公开提供的埋点校验方法对采集到的与用户的行为相关的历史数据进行校验,以确定采集到的与用户的行为相关的历史数据是否准确,进而准确的刻画用户画像,以为用户进行信息推荐。
63.本公开也可以应用于对应用程序客户端进行优化的场景,例如:在埋点上线后,可以根据本公开的埋点校验方法对应用程序客户端上报的埋点信息进行校验,并统计校验结果,然后对校验结果进行分析,以确定需要对应用程序客户端中的哪些页面或者控件进行优化,进而提升用户的交互体验。
64.示例性方法
65.相关技术中的埋点校验方案,仅关注埋点的正确与否,对于埋点的多报或漏报无法进行校验,导致埋点校验的准确性不足。且在另一些埋点校验方案中,需要上线后才能根据新老埋点数据的波动发现问题,对问题的发现周期较长,且其依赖于新版本的用户覆盖量达到一定的占比才能准确的根据新老数据的波动发现问题,导致埋点校验的效率低下,此外,其在埋点上线后才能发现问题,存在埋点问题发现滞后的缺陷。
66.本公开的示例性实施方式首先提供一种埋点校验方法,以至少克服相关技术中存在的上述的全部或部分缺陷。
67.图1示出了本公开一示例性实施例中的埋点校验方法,可以包括:
68.步骤s110,接收应用程序客户端的埋点上报信息,响应于所述埋点上报信息包括坑位信息,将所述坑位信息与目标坑位库中的坑位进行匹配;
69.步骤s120,根据匹配结果,基于目标校验规则库,对所述埋点上报信息进行校验;
70.其中,所述目标坑位库和所述目标校验规则库根据待校验埋点任务中的埋点确定。
71.下面分别对图1中的每个步骤做具体说明。
72.步骤s110,接收应用程序客户端的埋点上报信息,响应于所述埋点上报信息包括坑位信息,将所述坑位信息与目标坑位库中的坑位进行匹配。
73.在一种示例性的实施方式中,步骤s110中的应用程序客户端可以包括埋点测试任务应用程序客户端。其中,埋点测试任务应用程序客户端可以理解为开发人员在对开发的埋点任务进行测试时,使用的应用程序客户端。
74.埋点开发人员在对埋点任务进行测试时,使用的应用程序客户端是待测试应用程序对应的客户端。如,埋点开发人员在1.0版本的应用程序的埋点的基础上进行了修改以完成了新埋点任务的开发,完成后,可以将新埋点任务和1.0版本的应用程序的埋点任务进行合并,以生成待测试应用程序,然后在任一终端设备中安装生成的待测试应用程序,从而得到待测试应用程序客户端。
75.在步骤s110中的应用程序客户端包括开发人员在对开发的埋点任务进行测试时,使用的应用程序客户端的情况下,步骤s110中的埋点上报信息可以包括埋点测试任务对应的埋点上报信息。
76.在埋点测试阶段对埋点进行测试校验,可以在很大程度上保证埋点任务开发过程中,新增埋点的准确性和完整性。但考虑到埋点的测试往往在需求的开发代码分支上,即每个开发人员负责对自己开发的埋点任务分支进行测试,其在测试完成后依然可能会进行修改,以及在和其他分支的新增埋点任合并到主干发版分支的过程中,也可能会有其它的冲突,导致会对测试完成后的埋点进行修改。换言之,测试完成后的埋点任务分支距离合成、灰度、全量上线的代码尚有一定的差距和变动的可能。所以,在埋点测试完成后,针对于埋点任务集成、灰度以及上线后的状态都可以使用本公开中的埋点校验方法进行校验。
77.其中,灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行a/b测试,即让一部分用户继续用产品特性a,一部分用户开始用产品特性b,如果用户对b没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到b上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度,即控制部分用户使用最新的发布版本。全量发布是指当点击发布之后,所有用户访问程序时都会使用
当前最新的发布版本。
78.基于此,在另一种示例性的实施方式中,步骤s110的应用程序客户端可以包括在埋点任务合成、灰度、或全量发布上线后对应的任一应用程序客户端。对于一个应用程序而言,随之不断的优化升级,会产生不同的版本。所以,不同的用户使用的应用程序的版本可能不同,步骤s110中的应用程序客户端可以包括任一版本的应用程序客户端。
79.换言之,本公开示例性实施例所提供的埋点校验方法既可以在埋点测试阶段对埋点进行校验,也可以在埋点任务合成或者上线后,继续对应用程序客户端上报的埋点信息进行校验,以对在埋点任务测试时未发现的问题进行及时查漏补缺,从而全方面的对埋点进行校验,提高埋点上报信息的准确性。
80.在一种示例性的应用场景中,当在应用客户端中发生触发操作时,应用程序客户端就可以对该触发操作对应的埋点信息进行埋点信息上报。然后,就可以对应用程序客户端上报的埋点信息进行校验。
81.示例性的,可以判断埋点上报信息中是否包含有坑位信息,根据判断结果,对埋点上报信息校验。
82.举例而言,如果埋点上报信息中包含坑位信息对应的字段标识,则可以判断埋点上报信息中包含有坑位信息,否则就可以确定埋点上报信息中不含有坑位信息,即当前上报的埋点信息可能是事件埋点等。以用字段标识spm(super content model,超级位置模型,指在埋点上报信息中表达坑位的参数字段)标识埋点坑位信息为例,在埋点上报信息中包括spm字段时,就可以确定埋点上报信息中包括坑位信息。
83.在判断埋点上报信息中包含坑位信息的情况下,可以将埋点上报信息中的坑位信息与目标坑位库中的坑位进行匹配,以对埋点上报信息进行校验。
84.其中,目标坑位库根据待校验埋点任务中的埋点确定。即目标坑位库根据待校验埋点任务中的埋点所对应的坑位确定。
85.在一种示例性的实施方式中,在步骤s110中的埋点上报信息包括埋点测试任务对应的埋点上报信息的情况下,待校验埋点任务包括埋点测试任务中的第一埋点任务和埋点测试任务针对的应用程序已上线的第二埋点任务。
86.举例而言,本公开中的埋点校验方法可以面向埋点任务需求进行埋点的实时测试校验。开发人员可以对自己负责开发的埋点任务进行实时测试校验,即在进行埋点测试时,可以选择特定埋点任务。对于埋点测试任务而言,对其进行校验时,可以根据应用程序已经发布上线的所有埋点和当待测试埋点任务(未发布上线)中的埋点的坑位确定出目标坑位库。
87.对于开发人员而言,每次在进行新埋点任务的开发时,可以在某个版本的应用程序(已上线)对应的埋点任务的基础上进行新增、修改、删除等操作中一种或多种。通常情况下,就是在最新版本的应用程序对应的埋点任务的基础上进行新增、修改、删除等操作中的一种或多种,以完成新埋点任务的开发。最新版本的应用程序中的埋点任务都已经发布上线了,所以,在埋点上报信息包括埋点测试任务对应的埋点上报信息的情况下,待校验埋点任务包括埋点测试任务中的第一埋点任务和埋点测试任务所针对的应用程序已上线的第二埋点任务。
88.当然,开发人员也可以根据需要,在任一历史版本的应用程序的基础上进行新埋
点任务的开发,本示例性实施方式对此不做特殊限定。当开发人员在任一历史版本的应用程序的基础上进行新埋点任务的开发的情况下,待校验埋点任务就可以包括当前待测试埋点任务和该历史版本的应用程序对应的埋点任务。
89.在一种示例性的应用场景中,开发人员在埋点管理平台完成新埋点任务的开发后,其可以在埋点管理平台选择新埋点任务,然后使用新埋点任务对应的应用程序已上线的历史版本(如当前最新版本)对应的客户端扫码登录埋点管理平台。由于开发人员进行了扫码登录,在扫码登录时,就可以获取开发人员所使用的应用程序客户端的版本,根据开发人员所使用的应用程序客户端的版本对应的所有已上线的埋点任务和开发人员手动选择的待测试埋点任务(即开发人员完成的新埋点任务)就可以确定待校验埋点任务,从而根据待校验埋点任务确定出目标坑位库以及目标校验规则库,以进行待测试埋点任务的校验测试。
90.本公开中,在进行埋点任务测试时,由于待校验埋点任务中既包括了当前新开发的埋点任务,又包括了已上线的历史埋点任务,所以,可以对新老埋点同时进行校验,以测试新埋点任务是否对老埋点任务的正确性产生影响,避免在新埋点任务开发过程中将正确的老埋点改成了错误的埋点,从而进一步提高埋点校验的准确性。
91.在另一种示例性的实施方式中,步骤s110中的待校验埋点任务的确定方式可以包括:获取所述埋点上报信息中的预设字段的值,根据所述预设字段的值确定所述待校验埋点任务。其中,所述预设字段用于指示所述应用程序客户端的版本,所述待校验埋点任务包括所述应用程序客户端的版本对应的已上线的埋点任务。
92.如前所述,为了保证埋点校验的全面性,可以在代码合入集成、以及灰度发布和全量发布上线之后的各个阶段对埋点进行校验,以尽早的发现埋点问题,从而及时的进行修正。但对于代码合入集成、以及灰度发布和全量发布上线而言,无法像在测试阶段那样,可以通过开发人员选择的待测试埋点任务和主动扫码登录的方式确定出待校验埋点任务。
93.基于此,在本公开中为了保证在埋点任务测试、集成后、灰度发布后、全量发布后的各个阶段都可以对埋点进行自动的校验,还可以通过在埋点上报信息中携带预设字段,通过预设字段的值确定当前上报的埋点信息对应的应用程序客户端的版本。
94.举例而言,可以在对埋点上报信息进行打包时,根据应用程序客户端的版本在埋点上报信息中埋入该应用程序客户端版本对应的唯一的uuid(universally unique identifier,通用唯一识别码)。同时,在埋点管理平台保存每个uuid和对应的应用程序客户端版本之间的映射关系。这样,埋点管理平台(即服务端)在接收到埋点上报信息时,就可以根据埋点上报信息中的uuid,查找该uuid对应的应用程序客户端版本,进而根据该应用程序客户端版本已上线的埋点任务,确定出待校验埋点任务。
95.对于埋点测试阶段而言,待校验埋点任务就是确定出的应用程序端版本对应的已上线埋点任务和开发人员选择的待测试埋点任务,对于埋点任务集成、灰度发布后、全量发布后的阶段,待校验埋点任务就是确定出的应用程序量客户端的版本对应的全部已上线的埋点任务。
96.通过本公开中的方法,可以准确的确定出埋点测试、集成、灰度、发布的各个阶段的待校验埋点任务,从而基于待校验埋点任务准确的确定出埋点校验的基准(即目标坑位库和目标校验规则库),进而可以在各个阶段都能够对埋点进行自动的校验,提高埋点校验
的效率。
97.示例性的,确定出待校验埋点任务后,可以根据待校验埋点任务中的坑位确定出目标坑位库,在待上报埋点信息包括坑位信息的情况下,可以将待上报埋点信息中的坑位信息和目标坑位库中的坑位进行匹配,以根据匹配结果,确定埋点上报信息的校验结果。
98.继续参考图1,在步骤s120中,根据匹配结果,基于目标校验规则库,对所述埋点上报信息进行校验。
99.其中,目标校验规则库根据待校验埋点任务中的埋点确定。换言之,目标校验规则库中包括待校验埋点任务中的埋点对应的参数配置规则。待校验埋点任务的确定方式已经在上述的步骤s110中进行了详细的说明,参考即可,此处不再进行赘述。
100.示例性的,图2示出了根据本公开实施方式的一种根据坑位匹配结果,对埋点上报信息进行校验的方法的流程示意图。参考图2,该方法可以包括步骤s210至步骤s240。
101.在步骤s210中,将埋点上报信息中的坑位信息和目标坑位库中的坑位进行匹配,响应于匹配成功,转至步骤s220,响应于匹配失败,转至步骤s240。
102.在步骤s220中,获取所述坑位信息中包括的埋点对象标识。
103.在一种示例性的实施方式中,坑位可以理解为客户端应用中可被描述的唯一一个位置,坑位可以是一个页面也可以是一个元素,其完整信息可以包含多个层级对应的对象信息。
104.页面可以理解为在一定的用户界面层级上独占显示的一整片区域,如一个新打开的底层页、一个tab(标签条/选项卡)、一个频道等;页面一般用于组织诸多内容进行分发或者作为单一内容的实际功能承载,页面的流转曝光和停留时长等信息对于应用的分析具有较大的意义。元素可以理解为页面中可被用户交互的ui(user interface,用户界面)组件和/或单元,如一个列表单元、一个按钮、一个可滑动的内容模块等。列表和模块一般用于承载内容分发,其点击率对内容分发效果具有分析意义,按钮一般用于承载用户互动,按钮通常挂载在某个内容单元或者内容功能的底层页面上。
105.页面和元素都可以作为埋点对象。一个页面中可以包括子页面和元素,对于一个页面而言,该页面自身、该页面中的子页面和元素都可以作为该页面中的埋点对象,用户可以根据自己的需求进行自定义设置。
106.示例性的,响应于针对应用程序客户端的触发操作,可以确定触发操作所曝光的目标显示页面的页面节点树,然后根据页面节点树中的节点的属性信息,生成埋点对象树。如可以根据页面节点树中配置有埋点对象标识的节点生成埋点对象树。
107.在生成埋点对象树后,可以基于埋点对象树中的父子关系和预先为埋点对象树中的埋点对象配置的埋点对象标识,确定埋点对象到埋点对象树中的根对象的埋点对象标识链,在埋点对象标识链中添加埋点对象的位置属性信息,以得到埋点对象的坑位信息。
108.埋点对象标识(object id,缩写为oid),是被埋点的页面或元素在客户端的身份标识,同一oid可以用来表征同一种ui样式、同一种内容单元、同一种互动形式或者客户端某一特定位置ui。开发人员在进行埋点开发时,可以为每个埋点对象配置埋点对象标识。
109.考虑到有一些重复类型元素在页面内具有相同层级的情况,例如列表复用单元中的每个列表元素的对象标识相同且都属于相同层级,即列表复用单元中的每个列表元素的对象标识都为列表单元的对象标识,每个列表元素的层级都为列表单元的层级,这种情况
下,如果仅用埋点对象标识链表示埋点对象的坑位信息,则无法区分当前曝光的到底是列表单元中的第几个元素,进而会影响埋点信息上报的准确性。
110.为了解决这一问题,在一种可选的实施方式中,可以在埋点对象标识链中添加埋点对象的位置属性信息,以得到埋点上报信息中的坑位信息。
111.例如,当前曝光的埋点对象是_oid1,其在埋点对象树中的父节点的埋点对象标识是oid2、其父节点的父节点是根节点,根节点的埋点对象标识是oid3,其中,oid2的位置属性信息为pos2,则该埋点对象对应的埋点上报信息中的坑位信息可以表示为oid1|oid2:pos2|oid3。然后,坑位信息中的每个埋点对象标识所关联的埋点参数的当前取值都可以进行上报。
112.在对埋点上报信息进行校验时,可以对坑位信息中的埋点对象标识指示的埋点对象关联的埋点参数进行校验。所以,可以获取坑位信息中包括的埋点对象标识。
113.在步骤s230中,针对每个埋点对象标识,基于埋点对象标识关联的第一埋点参数在目标校验规则库中的校验规则,对埋点上报信息中的第一埋点参数进行校验。
114.其中,埋点对象标识关联的第一埋点参数可以理解为埋点对象标识指示的埋点对象的私有参数。
115.示例性的,图3示出了根据本公开实施方式的一种埋点参数配置页面的示意图。从图3可以看出,对于埋点对象而言,其可以配置有私参(即上述的第一埋点参数),还可以配置有事件参数和全局公共参数。
116.其中,私有参数可以理解为仅属于某个埋点对象标识指示的埋点对象的参数。事件参数可以理解为在客户端发生相应的事件时,需要上报的参数。如在埋点管理平台中将页面曝光事件配置为埋点上报事件,页面曝光事件关联有事件参数1,给埋点对象1配置了页面曝光事件,那么,在埋点对象1曝光时,就需要上报页面曝光事件对应的事件参数1。如图3中为page1配置了页面曝光开始事件和页面曝光结束事件,也就是说在page1开始曝光或结束曝光时,需要上报对应的页面曝光开始事件或页面曝光结束事件所关联的事件参数1。全局公共参数可以理解为整个应用程序客户端中的任一埋点对象都可能配置的参数,即不是只能属于某个特定的埋点对象标识指示的埋点对象的参数。如图3中的全局公参v1。
117.举例而言,埋点开发人员可以在埋点管理平台中预先为每个埋点对象配置对应的埋点参数,如可以在图3所示的页面中为每个埋点对象配置对应的埋点参数,同时为每个埋点参数配置对应的取值规则。该取值规则就可以作为该埋点参数的校验规则。
118.示例性的,针对坑位信息中包括的每个埋点对象标识,都可以将该埋点对象标识关联的第一埋点参数的当前取值和目标校验规则库中该第一埋点参数的取值规则进行匹配,如果匹配失败,则第一埋点参数校验失败。如,某个第一埋点参数的取值规则为0或1,在当前的埋点上报信息中,第一埋点参数的取值为0或1中的任一值时,该第一埋点校验参数的当前次校验成功,但如果第一埋点参数的取值为0或1之外的其它值,如5,则该第一埋点校验参数的当前次校验就失败。
119.换言之,可以判断每个具有取值规则的第一埋点参数在当前埋点上报信息中的取值是否在其对应的取值规则所约束的范围内,如果是,则该第一埋点参数的当前校验成功,如果否,则该第一埋点参数的当前校验失败。
120.在步骤s240中,为埋点上报信息添加坑位匹配失败的标签。
121.举例而言,响应于接收到埋点上报信息,可以先判断埋点上报信息中是否包含坑位信息,在埋点上报信息包含坑位信息的情况下,可以将埋点上报信息中包含的坑位和目标坑位库中的坑位进行匹配。如果匹配成功,则表明待上报埋点信息是埋点任务中的坑位所产生的上报信息,如果匹配失败,就说明待上报埋点信息不是埋点任务中的坑位所产生的上报信息,就可以为埋点上报信息添加坑位匹配失败的标签。
122.示例性的,在坑位信息匹配成功的情况下,也可以为匹配成功的埋点上报信息添加坑位匹配成功的标签。这样,通过坑位匹配和添加的坑位匹配成功或坑位匹配失败的标签,就可以检查埋点的多和漏。比如,未匹配成功的坑位就是埋点任务中不需要的埋点坑位,即多埋的坑位,如果在待测试埋点任务的测试操作全部完成后,匹配成功的坑位中没有待测试埋点任务中的某个坑位,则该坑位就是被少埋的坑位。
123.如前所述,埋点对象的参数还可以有事件参数或公共参数中的一种或多种。基于此,在接收应用程序客户端的埋点上报信息后,还可以确定触发所述埋点上报信息的埋点上报事件关联的第二埋点参数,根据所述第二埋点参数在所述目标校验规则库中的校验规则,对所述埋点上报信息中的第二埋点参数进行校验;和/或根据所述目标校验规则库中的公共参数对应的校验规则,对所述埋点上报信息中的公共参数进行校验。其中,第二埋点参数就可以理解为上述的事件参数。
124.举例而言,在接收到应用程序客户端的埋点上报信息后,可以先将埋点上报信息中的参数标识字段和目标校验规则库中的事件参数标识字段以及全局参数标识字段进行匹配,确定出埋点上报信息中的事件参数和全局参数。然后,将该埋点上报信息中确定出的事件参数或全局参数的当前取值和目标校验规则库中该事件参数或全局参数的取值规则进行匹配,确定当前取值是否在对应的取值规则约束的取值范围内,以对埋点上报信息中的事件参数和全局参数进行校验。同时,在该埋点上报信息包括坑位信息的情况下,还可以继续根据上述的步骤s210至步骤s240对坑位信息中的每个埋点对象关联的私有参数进行校验。
125.示例性的,图4示出了根据本公开实施方式的另一种对埋点校验方法的流程示意图。参考图4,该方法可以包括步骤s401至步骤s412。其中:
126.在步骤s401中,接收埋点上报信息;在步骤s402中,判断埋点上报信息中是否有坑位信息,如果有,则转至步骤s403,否则转至步骤s411;在步骤s403中,将埋点上报信息中的坑位信息和目标坑位库中的坑位进行匹配;在步骤s404中,判断坑位信息是否匹配成功,如果匹配成功,则转至步骤s405,否则转至步骤s412;在步骤s405中,确定埋点上报信息的坑位信息中包含的埋点对象对应的埋点对象列表;在步骤s406中,判断埋点对象列表是否为空,如果是,则转至步骤s411,否则,转至步骤s407至步骤s410;在步骤s407中,获取埋点对象列表中的第一个埋点对象;在步骤s408中,判断第一个埋点对象是否配置有私有参数规则,如果是,则转至步骤s409,否则,转至步骤s411中;在步骤s409中,遍历该第一个埋点对象的私有参数规则,以对埋点上报信息中该第一埋点对象的私有参数进行校验;在步骤s410中,对第一个埋点对象的私有参数校验完成后,将第一个埋点对象从埋点对象列表中删除,继续转至步骤s406;在步骤s411中,遍历事件参数和公共参数,根据目标校验规则库对遍历到的事件参数和公共参数的取值进行校验;在步骤s412中,为当前埋点上报信息添加坑位匹配失败的标签。
127.举例而言,在接收到埋点上报信息后,可以先判断埋点上报信息中是否有坑位信息,如果没有坑位信息的话,则直接对埋点上报信息中的事件参数和/或公共参数进行校验。如果有坑位信息的话,则将埋点上报信息中的坑位信息和目标坑位库(基于待校验埋点任务中的埋点坑位确定目标坑位库)中的坑位进行匹配,如果匹配失败,则为埋点上报信息添加坑位匹配失败的标;如果匹配成功,则确定坑位信息中包含的埋点对象对应的埋点对象列表,遍历埋点对象列表中的每个埋点对象,针对遍历到的埋点对象,确定埋点对象是否配置有私有参数,如果有的话,就对私有参数进行校验,如果没有的话,就对埋点对象配置的公共参数或事件参数进行校验。在遍历完埋点对象列表后,还可以继续对埋点上报信息中的其它事件参数或公共参数进行校验。
128.当然,在接收到埋点上报信息后,也可以先不判断埋点上报信息中是否有坑位信息,直接先根据目标校验规则库中的公共参数和/或事件参数,对埋点上报信息中的公共参数和/或事件参数进行校验。在对公共参数和/或事件参数校验完成后,再去判断埋点上报信息中是否有坑位信息,如果没有坑位信息的话,就结束对该埋点上报信息的校验,如果有坑位信息的话,再将坑位信息和目标坑位库中的坑位进行匹配,对匹配成功的坑位信息,获取坑位信息中的埋点对象,根据目标校验规则库中该埋点对象的私有参数的校验规则,对坑位信息中的每个埋点对象的每个私有参数的在当前埋点上报信息中的取值进行校验,对于匹配失败的坑位信息,则直接为其添加坑位匹配失败的标签即可,本示例性实施方式对此不做特殊限定。
129.在一种示例性的实施方式中,进行埋点测试时,可以通过测试人员手动进行操作,以触发埋点上报,从而得到埋点上报信息。为了进一步提高埋点测试的准确性,在埋点测试阶段,可以对客户端发生的每种类型的埋点上报事件的数量和该埋点上报事件对应的坑位的数量进行统计,以便测试人员可以发现埋点上报信息的多和漏的情况。
130.基于此,本公开中的埋点校验方法还可以包括:根据接收到的埋点上报信息,更新第一数量和第二数量;响应请求显示第一校验模式校验结果的操作,显示埋点上报事件对应的第一数量和第二数量;其中,所述第一数量包括所述埋点上报信息指示的埋点上报事件的数量,所述第二数量包括所述埋点上报信息指示的埋点上报事件对应的埋点坑位的数量。
131.举例而言,在接收到埋点上报信息时,可以确定埋点上报信息指示的埋点上报事件,然后对该埋点上报事件的数量进行更新,即在之前统计的数量的基础上加1。埋点上报信息指示的埋点上报事件可以理解为导致上报当前埋点信息的事件,如当前发生了页面曝光事件,导致进行了此次埋点信息上报,则页面曝光事件的数量就加1。还可以确定埋点上报信息中是否包含有坑位,如果有的话,判断在此次测试过程中,当前坑位中是否已经产生过埋点上报信息,如果是的话,就不进行任何处理,如果否的话,就可以更新埋点上报信息指示的埋点上报事件对应的埋点坑位的数量,即在之前统计的该埋点上报事件对应的埋点坑位的数量的基础上加1。
132.通过更新统计的第一数量和第二数量,可以使得测试人员分析埋点时机的准确性和埋点个数的准确性。如在某个埋点任务中针对页面曝光事件在7个坑位中进行了埋点,测试人员在测试过程中进行了16次操作,测试人员在完成测试操作后,可以触发第一校验模式校验结果显示控件,然后就可以显示此处测试过程中埋点上报事件对应的第一数量和第
二数量。如果第一数量是16,第二数量是7,则测试人员可以确定该埋点任务的埋点时机和埋点坑位数量开发正确。
133.在一种示例性的实施方式中,响应请求显示第一校验模式校验结果的操作,根据埋点上报信息的上报时间,顺序的显示埋点上报信息的校验结果。
134.举例而言,测试人员在完成测试操作后,可以触发第一校验模式校验结果显示控件,则根据埋点上报信息的上报时间的先后顺序,显示埋点上报信息的校验结果。可以将最新的埋点上报信息显示在最前面,也可以将最新的埋点上报信息显示在最后面,本示例性实施方式对此不做特殊限定。校验结果可以包括验证通过、验证不通过、未匹配到坑位信息无法验证等结果。其中,未匹配到坑位信息就可以理解为埋点上报信息中包括坑位信息,但该坑位信息没有和目标坑位库中的坑位匹配成功。
135.换言之,在第一校验模式的校验结果显示页面中,可以显示第一数量、第二数量、顺序展示的埋点上报信息的校验结果的显示列表中的一种或多种。在第一校验模式的校验结果显示页面中包括顺序展示的埋点上报信息的校验结果的显示列表的情况下,响应用户对任一埋点上报信息的校验结果记录的触发操作,可以显示该埋点上报信息的校验详情。其中,对于验证未通过的埋点上报信息,在其校验详情中可以在未通过校验的参数附近进行错误信息提示,以对测试人员进行错误提醒,便于测试人员尽快发现问题,并进行修正,从而提高测试效率。
136.示例性的,在埋点上报信息包括埋点测试任务对应的埋点上报信息的情况下,图5示出了根据本公开实施方式的一种确定埋点测试任务是否测试完成的方法的流程示意图。参考图5,该方法可以包括步骤s510至步骤s520。其中:在步骤s510中,确定包括枚举类型的埋点参数的目标埋点坑位;在步骤s520中,在每个目标埋点坑位的每个枚举取值都匹配成功的情况下,确定所述埋点测试任务测试完成。
137.举例而言,在埋点测试阶段进行埋点上报信息校验时,除了需要统计埋点坑位的数量的准确性,避免埋点坑位的多和漏之外,需要每个埋点坑位中的每个枚举类型的埋点参数的每个枚举值都匹配成功的情况下,才确定埋点测试任务测试完成,进而才允许埋点任务上线。这样可以更加完整地确保每个埋点任务分支的埋点的准确性。
138.在一种示例性的场景中,在进行埋点校验时,并不是所有的埋点参数都可以通过描述规则来准确的约束取值范围。如,某个参数的取值,只能通过规则约束其取值不能为空,但无法通过规则约束其取值的范围。
139.基于此,在一种示例性的实施方式中,本公开中的埋点校验方法还可以包括:针对埋点上报信息中未通过校验规则描述约束取值范围的目标埋点参数,根据预先与目标埋点参数关联的候选取值库,对目标埋点参数进行校验。
140.举例而言,对于无法通过简单规则描述取值范围的参数,可以通过与服务端保存的埋点参数的相关正确取值伪表(即上述的候选取值库)进行关联,通过包含判断来校验该埋点参数的取值的正确性。即通过判断参数的取值是否与正确取值伪表中的某个值匹配成功,来对该参数进行校验。
141.以网易云音乐客户端为例,比如,对于歌曲名称参数而言,其取值无法通过简单的规则进行约束,但是网易云音乐歌单库中包括哪些歌曲是可以知道的,那么针对上报的歌曲名称参数,可以判断其对应的歌曲名是否在歌单库中,如果在,则校验通过,否则,该参数
校验失败。
142.进一步的,在本公开中,在埋点开发测试、埋点集成、灰度发布、全量发布的各个阶段,除了对埋点参数的取值进行取值规则校验、以及进行统计校验(如上述的第一数量、第二数量以及枚举型参数的校验)外,还可以进行埋点归因校验,即可以校验埋点上报信息中的归因参数的取值是否正确。
143.基于此,本公开中的埋点校验方法还可以包括:根据所述埋点上报信息中的埋点归因参数值,更新第三数量、第四数量、第五数量、第六数量、第七数量中的一种或多种,其中,第三数量用于表征埋点归因参数值为空的埋点上报信息的数量,第四数量用于表征埋点归因参数值非法的埋点上报信息的数量,第五数量用于表征埋点归因参数值不合理的埋点上报信息的数量,第六数量用于表征埋点归因参数值被降级处理的埋点上报信息的数量,第七数量用于表征所述埋点上报信息对应的埋点上报事件的各类型的埋点归因参数值的数量。
144.在一种示例性的实施方式中,在埋点归因参数值中的坑位信息指示的坑位不属于埋点坑位的情况下,确定埋点归因参数值非法;在埋点归因参数值中的坑位信息指示的待确认坑位属于埋点坑位,但待确认坑位与埋点上报信息对应的埋点上报事件的候选埋点归因参数值中的坑位信息匹配失败的情况下,确定埋点归因参数值不合理;在埋点归因参数值中包括预设标识字段的情况下,确定埋点归因参数值被降级处理,预设字段标识用于标识对应用程序客户端中没有埋点对象的坑位进行触发后,生成的埋点归因参数值。
145.举例而言,可以对归因为空、归因坑位非法、归因坑位不合理、归因降级、归因类型分布等情况进行统计汇总,以对埋点进行校验,从而根据汇总结果分析当前埋点存在的问题,对埋点进行优化。
146.如基于上述的第七数量,可以确定出埋点上报事件各类型的埋点归因参数值的分布情况。以网易云音乐客户端中的歌曲播放事件为例,在新埋点任务全量上线后,针对每个版本的埋点任务统计出歌曲播放事件对应的不同类型的埋点归因参数值的数量,如埋点归因参数值为搜索类型的数量,埋点归因参数值为自动播放类型的数量等,然后分析各个类型的埋点归因参数值的占比。将当前占比和上一版本的占比进行比较,以分析歌曲播放事件埋点的波动情况,根据波动情况确定是否需要对该埋点进行优化或者根据波动情况判断该埋点是否存在问题,如当波动超出一定范围时,确定歌曲播放事件埋点存在问题,进而分析问题产生的原因,对其进行优化改正。
147.通过对埋点归因参数进行校验,可以对由于业务交互和处理逻辑的不合理,以及埋点遗漏的情况导致的归因错误的情况进行校验,从而进一步提高埋点校验的全面性,进而辅助提高后续进行埋点的准确性。
148.在一种示例性的场景中,在集成阶段、灰度发布、全量发布的任一过程中,发生问题的时候相关现场已经不存在,对于问题往往很难直接复现(不是测试阶段时,开发人员在本地用测试包去测试,可复现),故埋点问题的排查确认往往是一个痛点,需要极大的工作量。基于此,在本公开中还可以在埋点校验过程中,以发生问题的埋点的前后为锚点,提供用户详细埋点日志明细的查询能力,以便快速定位问题。
149.在一种示例性的实施方方式中,本公开中的埋点校验方法还可以包括:针对任一应用程序客户端,根据埋点上报信息的上报时间顺序,记录应用程序客户端的埋点上报信
息;响应对目标埋点上报信息的查询请求,获取与目标埋点上报信息的上报顺序在预设范围内的其它埋点上报信息,以显示目标埋点上报信息和其它埋点上报信息。其中,预设范围可以根据需求进行自定义,如前后2条埋点上报信息。
150.举例而言,目标埋点上报信息就可以包括验证失败的埋点上报信息。如埋点上报信息中的第120条埋点上报信息校验的结果是验证失败,当点击与第120条埋点上报信息关联的用户日志详情控件时,就可以显示第118条到第122条的埋点上报信息。这样,就可以自动的还原用户当时的操作路径,以辅助研发人员分析错误原因,提高埋点问题排查的效率。
151.在一种示例性的应用场景中,本公开中的埋点上报信息可以包括基于用户对应用程序客户端的人为触发操作,而自动生成的埋点上报信息。
152.在另一种示例性的应用场景中,在本公开中的埋点上报信息还可以包括根据埋点测试任务的测试用例触发应用程序客户端所生成的埋点上报信息,其中,测试用例基于埋点测试任务的待测试埋点坑位生成。
153.举例而言,在本公开中,埋点的坑位是基于埋点对象树确定的,其可以准确的描述清楚每个埋点位置。所以,在埋点测试任务中,可以根据所有的待校验埋点任务的坑位编写测试用例,以给应用程序测试客户端下发覆盖的用户操作路径,通过全遍历模式实现埋点任务上线前的全面覆盖测试,避免人工操作可能导致的埋点覆盖不全的问题,提高埋点测试的准确性,并且可以提高埋点任务上线前的测试效率。在遍历过程中相关埋点会自动分流给埋点管理平台进行校验,从而输出校验结果,实现埋点测试校验的完全自动化。
154.与此同时,基于人工操作进行测试的过程中,在参数取值的有无、是否符合取值规则、是否在候选取值库等情况判断都正确的情况下,无法进一步自动化的准确校验“是不是就是那个”的逻辑。比如,对于网易云音乐的歌单详情页中的相关歌单推荐卡片,其内容取值即使可以通过网易云音乐中的歌单库(即候选取值库)进行包含判断校验,单在歌单1和歌单2都在歌单库中的情况下,无法校验当前的歌单是不是就是真的是“歌单1”,而不是“歌单2”。而通过编写测试用例,就可以基于测试用例对埋点参数的取值进行绝对正确性校验,如测试用例中写的是触发歌单1,就可以将埋点上报信息中上报的歌单和测试用例中的歌单进行对比,从而对歌单内容的绝对正确性进行自动化校验。
155.在一种示例性的实施方式中,在埋点上报信息包括埋点测试任务对应的埋点上报信息的情况下,本公开中的埋点校验方法还可以包括:通过虚拟对象模拟埋点测试任务中的测试链路对应的测试数据,以基于所述测试链路对所埋点测试任务进行完整性校验。
156.举例而言,尽管用户的使用数据是个性化的且其埋点结果可能是非固定不可穷举的,但大会对应客户端中产生埋点的页面、坑位和逻辑而言是有限的且可以被维护的。基于此,对于某些比较重要的场景,可以通过mock(模拟,在测试过程中,对于某些不易构造或不易获取的对象,通过创建虚拟对象的方式买模拟测试的测试方法)下发特定数据,即可得到该场景中各个坑位的埋点结果,从而构建对应的完整校验链路,以保障核心场景的指标口径的绝对准确性。当然,对于任何场景都可以基于mock校验其链路的完整性,本示例性实施方式对此不做特殊限定。
157.接下来,图6示出了根据本公开实施方式的一种进行埋点校验时的多端交互流程示意图。首先是客户端打包流程,如图6所示,在步骤s611中,客户端在进行埋点上报信息打包时,根据客户端的版本生成唯一的uuid;在步骤s612中,将uuid添加到包内;在步骤s613
中,包uuid、包信息、待校验埋点任务上传至服务端的包信息数据库中。
158.其次是客户端上报日志流程,举例而言,在步骤s621中,客户端获取包内的uuid;在步骤s622中,将埋点上报信息和uuid一起上报给服务端。
159.服务端接收到埋点上报信息后,就可以开始服务端的埋点校验流程。对于服务端埋点校验流程而言,在步骤s631中,服务端可以根据埋点上报信息中的包uuid,从包信息数据库中确定出该埋点上报信息对应的待校验埋点任务,以根据待校验埋点任务确定出目标校验规则库和目标坑位库;在步骤s632中,根据目标校验规则库和目标坑位库对埋点上报信息进行规则校验,同时还可以进行统计校验、归因校验、参数取值覆盖校验。校验完成后,服务端可以将包uuid、埋点上报信息和校验结果一起存储到日志数据库中。
160.日志数据库和前述的包信息数据库可以辅助服务端进行日志和报表的查询。例如,可以根据包的筛选条件将复杂条件转换为包列表,可以避免客户端包内打入大量复杂的包信息。基于包括包uuid的查询语句,在日志数据库中就可以进行过滤查询,从而可以获取满足辅助的包筛选条件的日志。
161.图7示出了根据本公开实施方式的另一种对已上线的埋点任务进行实时校验的方法的流程示意图。参考图7,步骤s701中,解析接收到的埋点上报信息的日志格式;在步骤s702中,提取埋点上报信息中的包uuid;在步骤s703中,根据包uuid获取校验规则本地缓存;在步骤s704中,计算校验结果,包含规则校验、归因校验、统计校验(如前所述的第一数量、第二数量、第三数量、第四数量、第五数量、第六数量、第七数量)、参数取值覆盖校验(如前所述的枚举类型的参数进行枚举值覆盖校验);在步骤s705中,将校验结果提交到队列中;在步骤s706中,单线程处理流程获取校验结果提交给队列;在步骤s707中,写入线程中的私有待提交列表;在步骤s708中,判断待提交列表中的数量是否大于预设值或上次写入时间是否发生在预设时长前,如果是,则转至步骤s709,否则转至步骤s710;在步骤s709中,批量将待提交列表中的数据写入数据库,并清空待提交列表;在步骤s710中,不进行处理。
162.其中,上述的步骤s701至步骤s705,可以通过计算线程进行处理,每个计算线程对应一个消息队列的partition(部分),从而可以多线程同时处理多个消息队列或者单个线程的多个partition。在步骤s703中,可以以包uuid为关键字,规则为关键字对应的值,将校验规则缓存在本地的公共存储区域内。步骤s705中的校验结果可以存储在公共内存区域,然后,在步骤s706中,单线程从公共内存区域的队列中获取校验结果。
163.通过积累多条校验结果后批量写入日志数据库,可以减写入并发的数量,提高写入的稳定性。
164.如前所述,本公开可以从埋点任务开发阶段、埋点任务集成阶段、埋点任务灰度阶段、埋点任务上线阶段等不同阶段实现埋点校验,保障埋点校验的全面性。其中,在需求开发阶段,可以通过埋点管理平台通过webscoket(种在单个tcp(transmission control protocol,传输控制协议)连接上进行全双工通信的协议)提供日志的实时上传和自动校验能力,提供面向需求的增量和历史存量埋点的及时校验测试;需求集成阶段,通过建立集成产物与已合入的分支和任务的准确关联关系,明确待校验任务,利用集成产物的内部人工使用和机器自动化遍历实现相关埋点的自动校验;需求灰度和上线阶段,通过线上日志的标识(即uuid)分流,对埋点进行进一步的校验,同时统计埋点的波动情况,对波动情况进行准确校验。但是,这样可能仍然不能保障在上线前就能100%的发现全部问题。
165.基于此,对于未能通过自动校验发现的埋点问题,还可以建立起闭环的人工提单和跟进流程。如图8所示,在步骤s801中,业务方和算法方可以先根据自己的经验分析上报的数据表是否存在问题;在步骤s802中,如果明确数据表存在问题,则可以列出数据问题清单;在步骤s803中,数据仓库的研发人员可以分析问题清单中的问题发生的原因,如分析是任务异常、埋点异常、版本问题等中的哪一个。对于确定是埋点异常的数据问题,可以整理出灰度版本和全量上线版本分别对应的埋点问题清单。在步骤s804中,可以对问题进行确认和开发修复,对新埋点和老埋点进行自测。
166.通过图8所示的流程,可以对上线后才发现的埋点问题及时进行确认和修复,进一步保证埋点的准确性。
167.本公开提供的埋点校验方法,可以有效实现数据埋点质量的前移保障,以尽早的发现埋点问题,在需求开发、集成回归、灰度上线、全量上线等各个阶段形成有效的问题发现和拦截,可以做到减少数据埋点问题、加快问题发现速度、提升问题定位和解决速度的目的。
168.进一步的,本公开中的埋点校验方法是面向埋点对象进行校验,其具有良好的扩展性和通用性,适用于任何的业务和大前端平台框架。
169.同时,本公开的埋点校验方法可以在各个阶段对埋点进行校验,全面的保障埋点数据的准确性。
170.示例性装置
171.本公开示例性实施方式还提供一种埋点校验装置。参考图9所示,该埋点校验装置900可以包括:埋点信息接收模块910和校验模块920。其中:
172.埋点信息接收模块910,被配置为接收应用程序客户端的埋点上报信息,响应于所述埋点上报信息包括坑位信息,将所述坑位信息与目标坑位库中的坑位进行匹配;
173.校验模块920,被配置为根据匹配结果,基于目标校验规则库,对所述埋点上报信息进行校验。
174.在一种可选的实施方式中,基于前述实施例,所述目标坑位库和所述目标校验规则库根据待校验埋点任务中的埋点确定。
175.在一种可选的实施方式中,基于前述实施例,所述校验模块920可以被具体配置为:响应于匹配成功,获取所述坑位信息中包括的埋点对象标识;针对每个埋点对象标识,基于所述埋点对象标识关联的第一埋点参数在所述目标校验规则库中的校验规则,对所述埋点上报信息中的第一埋点参数进行校验。
176.在一种可选的实施方式中,基于前述实施例,所述校验模块920可以被具体配置为:响应于匹配失败,为所述埋点上报信息添加坑位匹配失败的标签。
177.在一种可选的实施方式中,埋点校验装置900还可以包括第二埋点参数校验模块和/或第三埋点参数校验模块,其中,第二埋点参数校验模块被配置为在接收应用程序客户端的埋点上报信息后,确定触发所述埋点上报信息的埋点上报事件关联的第二埋点参数,根据所述第二埋点参数在所述目标校验规则库中的校验规则,对所述埋点上报信息中的第二埋点参数进行校验;第三埋点参数校验模块被配置为根据所述目标校验规则库中的公共参数对应的校验规则,对所述埋点上报信息中的公共参数进行校验。
178.在一种可选的实施方式中,在所述埋点上报信息包括埋点测试任务对应的埋点上
报信息的情况下,待校验埋点任务包括埋点测试任务中的第一埋点任务和所述埋点测试任务针对的应用程序已上线的第二埋点任务。
179.在一种可选的实施方式中,待校验埋点任务的确定方式包括:获取所述埋点上报信息中的预设字段的值,根据预设字段的值确定待校验埋点任务;其中,所述预设字段用于指示所述应用程序客户端的版本,所述待校验埋点任务包括所述应用程序客户端的版本对应的已上线的埋点任务。
180.在一种可选的实施方式中,所埋点校验装置900还可以包括:数量显示模块,所述数量显示模块包括更新单元和显示单元,所述更新单元被配置为根据接收到的埋点上报信息,更新第一数量和第二数量;所述显示单元被配置为响应请求显示第一校验模式校验结果的操作,显示埋点上报事件对应的第一数量和第二数量;其中,所述第一数量包括所述埋点上报信息指示的埋点上报事件的数量,所述第二数量包括所述埋点上报信息指示的埋点上报事件对应的埋点坑位的数量。
181.在一种可选的实施方式中,所述埋点校验装置900还可以包括顺序显示校验结果模块,所述顺序显示校验结果模块被配置为响应请求显示第一校验模式校验结果的操作,根据埋点上报信息的上报时间,顺序的显示埋点上报信息的校验结果。
182.在一种可选的实施方式中,在所述埋点上报信息包括埋点测试任务对应的埋点上报信息的情况下,所述装置900还可以包括任务完成度校验模块,所述任务完成度校验模块被配置为确定包括枚举类型的埋点参数的目标埋点坑位;在每个目标埋点坑位的每个枚举取值都匹配成功的情况下,确定所述埋点测试任务测试完成。
183.在一种可选的实施方式中,所述埋点校验装置还可以包括候选校验模块,所述候选校验模块被配置为:针对所述埋点上报信息中未通过校验规则描述约束取值范围的目标埋点参数,根据预先与所述目标埋点参数关联的候选取值库,对所述目标埋点参数进行校验。
184.在一种可选的实施方式中,所述埋点校验装置还可以包括数量更新模块,所述数量更新模块被配置为:根据所述埋点上报信息中的埋点归因参数值,更新第三数量、第四数量、第五数量、第六数量、第七数量中的一种或多种;其中,第三数量用于表征埋点归因参数值为空的埋点上报信息的数量,第四数量用于表征埋点归因参数值非法的埋点上报信息的数量,第五数量用于表征埋点归因参数值不合理的埋点上报信息的数量,第六数量用于表征埋点归因参数值被降级处理的埋点上报信息的数量,第七数量用于表征所述埋点上报信息对应的埋点上报事件的各类型的埋点归因参数值的数量;其中,在埋点归因参数值中的坑位信息指示的坑位不属于埋点坑位的情况下,确定所述埋点归因参数值非法;在埋点归因参数值中的坑位信息指示的待确认坑位属于埋点坑位,但所述待确认坑位与所述埋点上报信息对应的埋点上报事件的候选埋点归因参数值中的坑位信息匹配失败的情况下,确定所述埋点归因参数值不合理;在所述埋点归因参数值中包括预设标识字段的情况下,确定所述埋点归因参数值被降级处理,所述预设字段标识用于标识对所述应用程序客户端中没有埋点对象的坑位进行触发后,生成的埋点归因参数值。
185.在一种可选的实施方式中,所述埋点校验装置还可以包括详情显示模块,所述详情显示模块被配置为:针对任一应用程序客户端,根据埋点上报信息的上报时间顺序,记录所述应用程序客户端的埋点上报信息,响应对目标埋点上报信息的查询请求,获取与所述
目标埋点上报信息的上报顺序在预设范围内的其它埋点上报信息,以显示所述目标埋点上报信息和所述其它埋点上报信息。
186.在一种可选的实施方式中,所述埋点上报信息包括根据埋点测试任务的测试用例触发所述应用程序客户端所生成的埋点上报信息,其中,所述测试用例基于所述埋点测试任务的待测试埋点坑位生成。
187.在一种可选的实施方式中,在所述埋点上报信息包括埋点测试任务对应的埋点上报信息的情况下,所述埋点校验装置还可以包括完整性校验模块,所述完整性校验模块被配置为:通过虚拟对象模拟埋点测试任务中的测试链路对应。
188.此外,本公开实施方式的其他具体细节在上述方法的发明实施方式中已经详细说明,在此不再赘述。
189.示例性存储介质
190.下面对本公开示例性实施方式的存储介质进行说明。
191.本示例性实施方式中,可以通过程序产品实现上述方法,如可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
192.该程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
193.计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
194.可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、re等等,或者上述的任意合适的组合。
195.可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言-诸如java、c 等,还包括常规的过程式程序设计语言-诸如"c"语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
196.示例性电子设备
197.参考图10对本公开示例性实施方式的电子设备进行说明。该电子设备可以是客户端或服务端。
198.图10显示的电子设备1000仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
199.如图10所示,电子设备1000以通用计算设备的形式表现。电子设备1000的组件可以包括但不限于:至少一个处理单元1010、至少一个存储单元1020、连接不同系统组件(包括存储单元1020和处理单元1010)的总线1030、显示单元1040。
200.其中,存储单元存储有程序代码,程序代码可以被处理单元1010执行,使得处理单元1010执行本说明书上述"示例性方法"部分中描述的根据本公开各种示例性实施方式的步骤。例如,处理单元1010可以执行如图1所示的方法步骤等。
201.存储单元1020可以包括易失性存储单元,例如随机存取存储单元(ram)1021和/或高速缓存存储单元1022,还可以进一步包括只读存储单元(rom)1023。
202.存储单元1020还可以包括具有一组(至少一个)程序模块1025的程序/实用工具1024,这样的程序模块1025包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
203.总线1030可以包括数据总线、地址总线和控制总线。
204.电子设备1000也可以与一个或多个外部设备1100(例如键盘、指向设备、蓝牙设备等)通信,这种通信可以通过输入/输出(i/o)接口1050进行。电子设备1000还包括显示单元1040,其连接到输入/输出(i/o)接口1050,用于进行显示。并且,电子设备1000还可以通过网络适配器1060与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器1060通过总线1030与电子设备1000的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1000使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
205.应当注意,尽管在上文详细描述中提及了装置的若干模块或子模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
206.此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
207.虽然已经参考若干具体实施方式描述了本公开的精神和原理,但是应该理解,本公开并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献