埋点测试方法、装置、设备及存储介质
技术领域
本申请实施例涉及埋点测试技术领域,尤其涉及一种埋点测试方法、装置、设备及存储介质。
背景技术
埋点是一种常见的数据采集方式,是指针对特定用户行为或事件进行捕获、处理和发送的数据采集过程。
埋点测试的目的是发现多埋、漏埋、埋错等埋点异常情况。
常见的埋点测试实现方式是埋点测试人员在移动终端上打开目标应用程序(APP),并按照埋点字段表中记载的埋点信息对目标APP进行相应的操作,埋点测试人员查看上报的埋点日志,并将埋点日志与埋点字段表进行比对,从而发现上述埋点异常情况。人工埋点测试的处理效率低。
发明内容
本申请实施例提供一种埋点测试方法、装置、设备及存储介质,以达到提高埋点测试处理效率的目的。
第一方面,本申请实施例提供一种埋点测试方法,包括:
在目标应用程序运行过程中,获取目标应用程序的埋点事件;
利用至少一个埋点测试规则检测上述埋点事件中是否包含异常埋点特征,每个埋点测试规则对应至少一个埋点异常情况,用于检测对应的埋点异常情况对应的异常埋点特征,包含异常埋点特征的埋点事件存在对应的埋点异常情况。
发明人在实现本发明的过程中,通过大量分析,发现各种埋点异常情况存在共性特征(即埋点事件中的埋点异常特征)。这意味着,存在某个埋点异常情况对应的埋点异常特征的埋点事件,为存在该埋点异常情况的埋点异常事件。基于这一发现,发明人创造性地提出了本发明实施例提供的方法:在目标应用程序运行过程中,获取埋点事件,进而利用预先确定的埋点测试规则检测埋点事件中是否包含异常埋点特征,从而实现了自动化的埋点测试,提高了埋点测试的效率。
本发明实施例提供的方法可以在移动终端上实现,也可以在服务端上实现,还可以在与移动终端通信连接的计算机设备上实现。若在移动终端上实现上述方法,相应的,获取目标应用程序的埋点事件的实现方式可以是:在目标应用程序上报跟踪服务发送事件时,拦截跟踪服务发送事件中的埋点事件。
本发明实施例提供的方法可以在移动终端实现,无需通过联网在服务端或其他计算机设备上实现,从而简化其实现方式。在移动终端上实现自动化的埋点检测,可以利用跟踪服务发送事件机制,在目标应用程序上报跟踪服务发送事件时,拦截埋点事件,而无需另外增加埋点事件获取流程,简化了埋点测试的实现过程。
埋点异常情况包括多埋、漏埋、埋错等。其中,发明人在实现本发明的过程中,进一步对这些埋点异常情况进行梳理分析,有如下发现:
针对多埋的情况,其一种异常表现为重复上报,也就是说,如果出现重复上报,就意味着存在多埋这一埋点异常情况。另一种异常表现为回调异常,也就是说,如果出现回调异常,就意味着存在多埋这一埋点异常情况。
针对漏埋的情况,其一个原因是新增业务或框架导致的漏埋,另一个原因是业务或框架代码修改导致的漏埋。无论哪种原因导致的漏埋,都会存在如下两种异常表现:其一是发生了目标行为,本应产生对应的埋点事件,但没有产生,也就是说,如果发生了目标行为,但没有对应的埋点事件,意味着存在漏埋这一埋点异常情况;其二是关联的双发埋点事件本应同时发生,但没有,也就是说,如果某个双发埋点事件发生,但其关联的双发埋点事件没有发生,意味着存在漏埋这一埋点异常情况。
针对埋错的情况,其中一个异常表现为埋点事件的埋点字段完整性不满足完整性阈值,也就是说,如果埋点事件的埋点字段完整性不符合要求,意味着存在埋错这一埋点异常情况。其另一个异常表现为埋点事件的埋点字段有效性不满足有效性阈值,也就是说,如果埋点事件的埋点字段有效性不符合要求,意味着存在埋错这一埋点异常情况。
相应的,在上述任意实施例的基础上,针对埋点事件重复上报的埋点异常情况,利用本埋点异常情况对应的埋点测试规则检测埋点事件中是否包含异常埋点特征的方式为:
利用第一埋点测试规则检测埋点事件的埋点参数是否重复,埋点事件重复上报导致的埋点异常情况对应的异常埋点特征为埋点参数重复,埋点事件重复上报导致的埋点异常情况对应的埋点测试规则包括所述第一埋点测试规则。
针对回调异常的埋点异常情况,利用本埋点异常情况对应的埋点测试规则检测埋点事件中是否包含异常埋点特征的方式为:
利用第二埋点测试规则检测埋点事件中是否有行为参数,回调异常的埋点异常情况对应的异常埋点特征为埋点事件中不包含行为参数,回调异常的埋点异常情况对应的埋点测试规则包括第二埋点测试规则。
针对漏埋埋点异常情况,利用本埋点异常情况对应的埋点测试规则检测埋点事件中是否包含异常埋点特征的方式为:
检测到目标行为的情况下,利用第三埋点测试规则检测所述埋点事件是否包含所述目标行为对应的行为参数,漏埋埋点异常情况对应的一个异常埋点特征为获取的埋点事件中不包含目标行为对应的行为参数;
利用第四埋点测试规则检测所述埋点事件是否为双发埋点事件,漏埋埋点异常情况对应的另一个异常埋点特征为获取的埋点事件不是双发埋点事件,漏埋埋点异常情况对应的埋点测试规则包括第三埋点测试规则和第四埋点测试规则。
针对埋错埋点异常情况,利用本埋点异常情况对应的埋点测试规则检测所述埋点事件中是否包含异常埋点特征的方式为:
利用第五埋点测试规则检测所述埋点事件的埋点字段完整性,埋错埋点异常情况对应的一个异常埋点特征为埋点事件的埋点字段完整性低于设定的完整性阈值;
利用第六埋点测试规则检测所述埋点事件的埋点字段有效性,埋错埋点异常情况对应的另一个异常埋点特征为埋点事件的埋点字段有效性低于设定的有效性阈值,埋错埋点异常情况对应的埋点测试规则包括第五埋点测试规则和第六埋点测试规则。
在上述任意方法实施例的基础上,若检测到异常埋点特征,还可以输出埋点异常提示框,以提示所述异常埋点特征对应的埋点异常情况。
本发明实施例提供的方法,以提示框的方式提示埋点异常情况,便于用户直观了解埋点异常情况。
第二方面,本申请实施例提供一种买点测试装置,包括:
埋点事件获取模块,用于在目标应用程序运行过程中,获取目标应用程序的埋点事件;
埋点异常测试模块,用于利用至少一个埋点测试规则检测所述埋点事件中是否包含异常埋点特征,每个埋点测试规则对应至少一个埋点异常情况,用于检测对应的埋点异常情况对应的异常埋点特征,包含异常埋点特征的埋点事件存在对应的埋点异常情况。
发明人在实现本发明的过程中,通过大量分析,发现各种埋点异常情况存在共性特征(即埋点事件中的埋点异常特征)。这意味着,存在某个埋点异常情况对应的埋点异常特征的埋点事件,为存在该埋点异常情况的埋点异常事件。基于这一发现,发明人创造性地提出了本发明实施例提供的装置:在目标应用程序运行过程中,获取埋点事件,进而利用预先确定的埋点测试规则检测埋点事件中是否包含异常埋点特征,从而实现了自动化的埋点测试,提高了埋点测试的效率。
本发明实施例提供的装置可以在移动终端上实现,也可以在服务端上实现,还可以在与移动终端通信连接的计算机设备上实现。若在移动终端上实现上述装置,相应的,埋点事件获取模块用于:在目标应用程序上报跟踪服务发送事件时,拦截跟踪服务发送事件中的埋点事件。
本发明实施例提供的装置可以在移动终端实现,无需通过联网在服务端或其他计算机设备上实现,从而简化其实现方式。在移动终端上实现自动化的埋点检测,可以利用跟踪服务发送事件机制,在目标应用程序上报跟踪服务发送事件时,拦截埋点事件,而无需另外增加埋点事件获取流程,简化了埋点测试的实现过程。
相应的,在上述任意装置实施例的基础上,针对埋点事件重复上报的埋点异常情况,埋点异常测试模块利用本埋点异常情况对应的埋点测试规则检测埋点事件中是否包含异常埋点特征的方式为:
利用第一埋点测试规则检测埋点事件的埋点参数是否重复,埋点事件重复上报导致的埋点异常情况对应的异常埋点特征为埋点参数重复,埋点事件重复上报导致的埋点异常情况对应的埋点测试规则包括所述第一埋点测试规则。
针对回调异常的埋点异常情况,埋点异常测试模块利用本埋点异常情况对应的埋点测试规则检测埋点事件中是否包含异常埋点特征的方式为:
利用第二埋点测试规则检测埋点事件中是否有行为参数,回调异常的埋点异常情况对应的异常埋点特征为埋点事件中不包含行为参数,回调异常的埋点异常情况对应的埋点测试规则包括第二埋点测试规则。
针对漏埋埋点异常情况,埋点异常测试模块利用本埋点异常情况对应的埋点测试规则检测埋点事件中是否包含异常埋点特征的方式为:
检测到目标行为的情况下,利用第三埋点测试规则检测所述埋点事件是否包含所述目标行为对应的行为参数,漏埋埋点异常情况对应的一个异常埋点特征为获取的埋点事件中不包含目标行为对应的行为参数;
利用第四埋点测试规则检测所述埋点事件是否为双发埋点事件,漏埋埋点异常情况对应的另一个异常埋点特征为获取的埋点事件不是双发埋点事件,漏埋埋点异常情况对应的埋点测试规则包括第三埋点测试规则和第四埋点测试规则。
针对埋错埋点异常情况,埋点异常测试模块利用本埋点异常情况对应的埋点测试规则检测所述埋点事件中是否包含异常埋点特征的方式为:
利用第五埋点测试规则检测所述埋点事件的埋点字段完整性,埋错埋点异常情况对应的一个异常埋点特征为埋点事件的埋点字段完整性低于设定的完整性阈值;
利用第六埋点测试规则检测所述埋点事件的埋点字段有效性,埋错埋点异常情况对应的另一个异常埋点特征为埋点事件的埋点字段有效性低于设定的有效性阈值,埋错埋点异常情况对应的埋点测试规则包括第五埋点测试规则和第六埋点测试规则。
在上述任意装置实施例的基础上,还可以包括埋点异常输出模块,用于若检测到异常埋点特征,输出埋点异常提示框,以提示所述异常埋点特征对应的埋点异常情况。
本发明实施例提供的装置,以提示框的方式提示埋点异常情况,便于用户直观了解埋点异常情况。
第三方面,本申请实施例还提供一种计算机设备,包括处理器和存储器;
存储器用于存储执行各个方法实施例所述方法的程序;处理器被配置为执行存储器中存储的程序。
本申请实施例提供的计算机设备,在目标应用程序运行过程中,获取埋点事件,进而利用预先确定的埋点测试规则检测埋点事件中是否包含异常埋点特征,从而实现了自动化的埋点测试,提高了埋点测试的效率。
第四方面,本申请实施例还提供一种计算机可读存储介质,存储有执行第一方面各个实施例所述方法的程序。
本申请实施例提供的计算机可读存储介质,在目标应用程序运行过程中,获取埋点事件,进而利用预先确定的埋点测试规则检测埋点事件中是否包含异常埋点特征,从而实现了自动化的埋点测试,提高了埋点测试的效率。
附图说明
图1为本申请实施例提供的埋点测试方法流程图;
图2为本申请实施例提供的埋点测试装置框图;
图3为本申请实施例提供的计算机设备结构示意图。
具体实施方式
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本申请实施例的技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请实施例技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。
本发明实施例提供一种埋点测试方法,以对多埋、漏埋、埋错等埋点异常情况进行检测,如图1所示,该方法包括如下步骤:
步骤101、在目标应用程序运行过程中,获取目标应用程序的埋点事件。
步骤102、利用至少一个埋点测试规则检测上述埋点事件中是否包含异常埋点特征,每个埋点测试规则对应至少一个埋点异常情况,用于检测对应的埋点异常情况对应的异常埋点特征,包含异常埋点特征的埋点事件存在对应的埋点异常情况。
其中,异常埋点特征用来反映埋点异常情况,若存在异常埋点特征,意味着存在该异常埋点特征对应的埋点异常情况。
其中,可以每获取一个埋点事件,即针对该埋点事件执行步骤102,也可以在获取多个埋点事件后,针对多个埋点事件执行步骤102。实际应用中,根据埋点异常情况以及其对应的埋点测试规则的需求确定。
如果存在多个埋点异常情况,本发明实施例不对这些埋点异常情况的检测顺序进行限定。实际应用中,可以并行利用各个埋点异常情况各自对应的埋点测试规则对埋点事件进行检测,以提高处理效率;也可以按照预定的顺序,依次利用各个埋点异常情况各自对应的埋点测试规则对埋点事件进行检测,直至检测到埋点异常事件或遍历全部埋点测试规则,以降低对并发计算能力的要求。
其中,一个异常埋点情况可以仅对应一个埋点测试规则,也可以对应多个埋点测试规则,具体根据埋点异常情况对应的埋点异常特征确定。
发明人在实现本发明的过程中,通过大量分析,发现各种埋点异常情况存在共性特征(即埋点事件中的埋点异常特征)。这意味着,存在某个埋点异常情况对应的埋点异常特征的埋点事件,为存在该埋点异常情况的埋点异常事件。基于这一发现,发明人创造性地提出了本发明实施例提供的方法:在目标应用程序运行过程中,获取埋点事件,进而利用预先确定的埋点测试规则检测埋点事件中是否包含异常埋点特征,从而实现了自动化的埋点测试,提高了埋点测试的效率。
本发明实施例提供的方法可以在移动终端上实现,也可以在服务端上实现,还可以在与移动终端通信连接的计算机设备上实现。若在移动终端上实现上述方法,相应的,获取目标应用程序的埋点事件的实现方式可以是:在目标应用程序上报跟踪服务发送事件(TrackService sendEvent)时,拦截跟踪服务发送事件中的埋点事件。
其中,从上报的跟踪服务发送事件中拦截埋点事件的实现方式可以是:在各个跟踪服务发送事件中查找埋点事件的标识信息,若查找到埋点事件的标识信息,则拦截该事件。
如果在移动终端上实现本发明实施例提供的方法,更进一步的,可以在上述目标应用程序中插入用于埋点测试的SDK(软件开发工具包),由该SDK实现本发明实施例提供的方法。
本发明实施例提供的方法可以在移动终端实现,无需通过联网在服务端或其他计算机设备上实现,从而简化其实现方式。在移动终端上实现自动化的埋点检测,可以利用跟踪服务发送事件机制,在目标应用程序上报跟踪服务发送事件时,拦截埋点事件,而无需另外增加埋点事件获取流程,简化了埋点测试的实现过程。
埋点异常情况包括多埋、漏埋、埋错等。其中,发明人在实现本发明的过程中,进一步对这些埋点异常情况进行梳理分析,有如下发现:
针对多埋的情况,其一种异常表现为重复上报,也就是说,如果出现重复上报,就意味着存在多埋这一埋点异常情况。另一种异常表现为回调异常,也就是说,如果出现回调异常,就意味着存在多埋这一埋点异常情况。
针对重复上报的埋点异常情况,可以编写出第一埋点测试规则,该第一埋点测试规则用于检测重复上报。
针对回调异常的埋点异常情况,可以编写出第二埋点测试规则,该第二埋点测试规则用于检测回调异常。
针对漏埋的情况,其一个原因是新增业务或框架导致的漏埋,另一个原因是业务或框架代码修改导致的漏埋。无论哪种原因导致的漏埋,都会存在如下两种异常表现:其一是发生了目标行为,本应产生对应的埋点事件,但没有产生,也就是说,如果发生了目标行为,但没有对应的埋点事件,意味着存在漏埋这一埋点异常情况;其二是关联的双发埋点事件本应同时发生,但没有,也就是说,如果某个双发埋点事件发生,但其关联的双发埋点事件没有发生,意味着存在漏埋这一埋点异常情况。
针对漏埋的第一种异常表现,可以编写第三埋点测试规则,该第三埋点测试规则用于检测发生目标行为但没有产生对应的埋点事件的情况。
针对漏埋的第二种异常表现,可以编写第四埋点测试规则,该第四埋点测试规则用于检测双发埋点事件未发生的情况。
针对埋错的情况,计算错误或者字段错误均会导致埋错,埋错其中一个异常表现为埋点事件的埋点字段完整性不满足完整性阈值,也就是说,如果埋点事件的埋点字段完整性不符合要求,意味着存在埋错这一埋点异常情况。其另一个异常表现为埋点事件的埋点字段有效性不满足有效性阈值,也就是说,如果埋点事件的埋点字段有效性不符合要求,意味着存在埋错这一埋点异常情况。
针对埋错的第一个异常表现,编写出第五埋点测试规则,用于对埋点字段的完整性进行检测。
针对埋错的第二个异常表现,编写出第六埋点测试规则,用于对埋点字段的有效性进行检测。
相应的,在上述任意实施例的基础上,针对埋点事件重复上报的埋点异常情况,利用本埋点异常情况对应的埋点测试规则检测埋点事件中是否包含异常埋点特征的方式为:
利用第一埋点测试规则检测埋点事件的埋点参数是否重复,埋点事件重复上报导致的埋点异常情况对应的异常埋点特征为埋点参数重复,埋点事件重复上报导致的埋点异常情况对应的埋点测试规则包括所述第一埋点测试规则。
其中,若每获取一个埋点事件,就利用第一埋点测试规则进行检测,那么,埋点参数重复是指当前埋点事件与预定时间段内的历史埋点事件的埋点参数重复,该预定时间段为包含当前埋点事件发生时间在内的时间段。由于重复上报往往是在短时间间隔内发生的,为了避免将正常的埋点事件错认为重复上报的埋点事件,该预定时间段的取值尽可能小,具体取值根据实际情况确定。若获取多个埋点事件后,利用第一埋点测试规则对获取的多个埋点事件进行检测,那么,埋点参数重复是指获取的多个埋点事件中,有至少两个埋点事件的埋点参数重复。
其中,两个埋点事件的埋点参数重复,意味着重复上报。因此,第一埋点测试规则通过检测重复埋点参数来检测重复上报。
这种情况下,埋点事件包含异常埋点特征是指埋点事件包含其埋点参数与其他埋点事件(预定时间段内的历史埋点事件或获取的其他埋点事件)的埋点参数重复。
针对回调异常的埋点异常情况,利用本埋点异常情况对应的埋点测试规则检测埋点事件中是否包含异常埋点特征的方式为:
利用第二埋点测试规则检测埋点事件中是否有行为参数,回调异常的埋点异常情况对应的异常埋点特征为埋点事件中不包含行为参数,回调异常的埋点异常情况对应的埋点测试规则包括第二埋点测试规则。
若埋点事件中不包含行为参数,意味着该埋点事件没有对应的行为,即该埋点事件并不是由行为触发的,是回调异常导致的。这种情况下,埋点事件包含异常埋点特征是指埋点事件中不包含行为参数。第二埋点测试规则通过检测埋点事件中是否包含行为参数来检测回调异常。
针对漏埋埋点异常情况,利用本埋点异常情况对应的埋点测试规则检测埋点事件中是否包含异常埋点特征的方式为:
检测到目标行为的情况下,利用第三埋点测试规则检测所述埋点事件是否包含所述目标行为对应的行为参数,漏埋埋点异常情况对应的一个异常埋点特征为获取的埋点事件中不包含目标行为对应的行为参数;
利用第四埋点测试规则检测所述埋点事件是否为双发埋点事件,漏埋埋点异常情况对应的另一个异常埋点特征为获取的埋点事件不是双发埋点事件,漏埋埋点异常情况对应的埋点测试规则包括第三埋点测试规则和第四埋点测试规则。
其中,若每获取一个埋点事件,就利用第三埋点测试规则进行检测,那么,若当前埋点事件中不包含目标行为的行为参数,且当前埋点事件的发生时间与目标行为的发生时间之间的间隔超过预定时间间隔,则可以确定该目标行为没有产生对应的埋点事件。因此,这种情况下,埋点事件包含异常埋点特征是指其发生时间与目标行为的发生时间之间的间隔超过预定时间间隔的埋点事件中不包含目标行为对应的行为参数。若获取多个埋点事件后,利用第三埋点测试规则进行检测,那么,若获取的全部埋点事件中都不包含目标行为的行为参数,则可以确定该目标行为没有产生对应的埋点事件。因此,这种情况下,埋点事件包含异常埋点特征是指获取的全部埋点事件都不包含目标行为的行为参数。
其中,第三埋点测试规则通过检测埋点事件中是否包含目标行为的行为参数来检测发生目标行为但没有产生对应的埋点事件的情况。
其中,目标行为可以有多个,实际应用中,根据业务需要及业务特点确定目标行为,并针对每个目标行为分别编写第三埋点测试规则。
其中,若每获取一个埋点事件,就利用第四埋点测试规则进行检测,那么,若当前埋点事件不是预定时间段内的历史埋点事件关联的双发埋点事件,则可以确定存在漏埋。该预定时间段为包含当前埋点事件发生时间在内的时间段。由于关联的双发埋点事件上报往往是同时或在短时间间隔内发生的,为了避免判断错误,该预定时间段的取值尽可能小,具体取值根据实际情况确定。因此,这种情况下,埋点事件包含异常埋点特征是指不是预定时间段内的历史埋点事件关联的双发埋点事件。若获取多个埋点事件后,利用第四埋点测试规则进行检测,那么,若获取的全部埋点事件中缺少某埋点事件关联的双发埋点事件,则可以确定漏埋。因此,这种情况下,埋点事件包含异常埋点特征是指缺少关联的双发埋点事件。
其中,若两个或者更多的埋点事件存在关联关系,所谓关联关系是指,某个埋点事件发生,必然导致另外一个埋点事件发生。那么,这两个或者更多的埋点事件均称为双发埋点事件,彼此之间互相关联。实际应用中,可能存在多组关联的双发埋点事件,那么,针对每组关联的双发埋点事件分别编写第四埋点测试规则。
针对埋错埋点异常情况,利用本埋点异常情况对应的埋点测试规则检测所述埋点事件中是否包含异常埋点特征的方式为:
利用第五埋点测试规则检测所述埋点事件的埋点字段完整性,埋错埋点异常情况对应的一个异常埋点特征为埋点事件的埋点字段完整性低于设定的完整性阈值;
利用第六埋点测试规则检测所述埋点事件的埋点字段有效性,埋错埋点异常情况对应的另一个异常埋点特征为埋点事件的埋点字段有效性低于设定的有效性阈值,埋错埋点异常情况对应的埋点测试规则包括第五埋点测试规则和第六埋点测试规则。
其中,字段的完整性和有效性可以在实际应用中根据业务特点进行定义,本发明实施例对其定义不做具体限定。
在上述任意方法实施例的基础上,若检测到异常埋点特征,可以通过多种方式进行提示。例如,生成埋点测试报告并输出,通过语音播报的方式进行提示,或通过提示框进行显示等等。优选的,输出埋点异常提示框,以提示异常埋点特征对应的埋点异常情况。
本发明实施例不对异常提示框中显示的内容进行限定,作为距离而非限定,可以显示发生了哪种异常埋点情况,以及对应的埋点事件。
本发明实施例提供的方法,以提示框的方式提示埋点异常情况,便于用户直观了解埋点异常情况。
下面结合具体应用场景对本发明实施例提供的方法进行说明。
在某IOS应用程序中插入用于埋点测试的SDK,该SDK中保存有上述第一至第六埋点测试规则。
其中,第一埋点测试规则的检测原理为:
Assert(previous!=now)
即检测先前的埋点事件与当前的埋点事件是否相同。
第二埋点测试规则的检测原理为:
Draw_ad/click发生了=>打开webview(行为:topvc==webvc)
埋点事件(draw_ad或click)发生,一定会产生某种行为(打开webview控件),否则就是回调异常导致的多埋。
第三埋点测试规则的检测原理为:
进入了AdWebViewController(行为:adwebvc appear)=>draw_ad/click
发生了某种行为(进入了AdWebViewController),一定会产生相关的埋点事件((draw_ad或click),否则就是漏埋。
第四埋点测试规则的检测原理为:
draw_ad/slide(滑动打开广告落地页)=>draw_ad/click(广告落地页打开)
双发的埋点,即某个埋点事件(滑动打开广告落地页)的发生,同时关联的另一个埋点事件(广告落地页打开)也发生,若某个埋点事件发生,但关联的另一个埋点事件未发生,意味着漏埋。
第五埋点测试规则:
Assert(event.length>0&&label.length>0&&attributes.length>0)
Assert(if A exists then b…)
事件长度(event.length)、标签长度(label.length)和属性长度(attributes.length)均大于零,即埋点事件的埋点参数的各个字段均未丢失,若其中至少一个字段长度不大于零,意味着埋点事件的埋点字段不完整。
另外,对于存在关联的字段(A、b),还可以通过条件规则检验其完整性。
第六埋点测试规则:
Assert(videoLength>0&&videoLength<10000000)
以视频为例,若视频长度在预定范围内,则其有效,否则无效。
应当指出的是,以上仅以举例的形式说明各个埋点测试规则的原理,而非对埋点测试规则内容以及形式的限定。
实际应用中,根据需要及应用程序的特点总结具体异常表现以及归纳具体异常埋点特征,从而编写埋点测试规则。
实际应用中,可以编写类似断言的埋点测试规则,由于规则是针对归纳的异常埋点特征抽象得到的,因此,规则是固定的,即使应用程序的代码进行了修改,其运行时的埋点事件也会被自动检测,确保业务的修改符合预期的规则。
埋点测试人员在移动终端上打开上述IOS应用程序,IOS应用程序启动后,调用用于埋点测试的SDK。
用于埋点测试的SDK被调用后,在TrackService sendEvent时拦截所有埋点事件,利用预定的埋点测试规则对埋点事件进行验证。
具体的,在该实施例中,首先利用第一埋点测试规则对拦截的所有埋点事件(埋点事件集合)进行验证,比较拦截的所有埋点事件的埋点信息,如果存在埋点信息重复的埋点事件(第一埋点事件),则记录该埋点事件及对应的埋点异常情况。
将第一埋点事件从埋点事件集合中移除,然后利用第二埋点测试规则继续对埋点事件集合中的埋点事件进行检测,判断各个埋点事件中是否有行为参数,如果存在没有行为参数的埋点事件(第二埋点事件),则记录该埋点事件及对应的埋点异常情况。
将第二埋点事件从埋点事件集合中移除,然后利用检测到的目标行为对应的第三埋点测试规则继续对埋点事件集合中的埋点事件进行检测,判断各个埋点事件中是否有目标行为对应的行为参数,若埋点事件集合中的埋点事件均不包含目标行为的行为参数,则记录该目标行为及对应的埋点异常情况。其中,可以利用现有的实现手段对目标行为进行检测。
判断埋点事件集合中是否存在双发埋点事件,一种实现方式是利用第四埋点测试规则进行判断,因为第四埋点测试规则中记录了双发的埋点事件(例如,滑动打开广告落地页),因此,将埋点事件集合中的埋点事件与第四埋点测试规则中的双发埋点事件进行匹配。在埋点事件集合中存在双发埋点事件的情况下,利用第四买点规则对埋点事件集合进行检测,判断其中是否存在该双发埋点事件关联的双发埋点事件,若不存在,则记录该双发埋点事件以及对应的埋点异常情况。当然,也可以不预先匹配双发埋点事件,直接利用第四埋点测试规则进行检测,例如,若在埋点测试集合中匹配到“滑动打开广告落地页”这一埋点事件,则在埋点测试集合中查找“广告落地页打开”这一埋点事件,若没有查找到,则记录“滑动打开广告落地页”这一双发埋点事件以及对应的“双发埋点漏埋”这一异常埋点情况。
利用第五埋点测试规则继续对埋点事件集合进行检测,检测各个埋点事件的埋点字段完整性,对于埋点字段不完整的埋点事件(第三埋点事件),记录该埋点事件及对应的埋点异常情况。
将第三埋点事件从埋点事件集合中删除,利用第六埋点测试规则继续对埋点事件集合进行检测,检测各个埋点事件的埋点字段有效性,对于无效埋点事件,记录该埋点事件及对应的埋点异常情况。
将上述记录的信息以提示框的形式显示。
其中,可以在每个测试阶段完成后,将本阶段记录的信息进行显示,也可以在测试全部完成后进行显示。
基于与方法同样的发明构思,本申请实施例提供一种埋点测试装置,如图2所示,包括:
埋点事件获取模块201,用于在目标应用程序运行过程中,获取目标应用程序的埋点事件;
埋点异常测试模块202,用于利用至少一个埋点测试规则检测所述埋点事件中是否包含异常埋点特征,每个埋点测试规则对应至少一个埋点异常情况,用于检测对应的埋点异常情况对应的异常埋点特征,包含异常埋点特征的埋点事件存在对应的埋点异常情况。
发明人在实现本发明的过程中,通过大量分析,发现各种埋点异常情况存在共性特征(即埋点事件中的埋点异常特征)。这意味着,存在某个埋点异常情况对应的埋点异常特征的埋点事件,为存在该埋点异常情况的埋点异常事件。基于这一发现,发明人创造性地提出了本发明实施例提供的装置:在目标应用程序运行过程中,获取埋点事件,进而利用预先确定的埋点测试规则检测埋点事件中是否包含异常埋点特征,从而实现了自动化的埋点测试,提高了埋点测试的效率。
本发明实施例提供的装置可以在移动终端上实现,也可以在服务端上实现,还可以在与移动终端通信连接的计算机设备上实现。若在移动终端上实现上述装置,相应的,埋点事件获取模块用于:在目标应用程序上报跟踪服务发送事件时,拦截跟踪服务发送事件中的埋点事件。
本发明实施例提供的装置可以在移动终端实现,无需通过联网在服务端或其他计算机设备上实现,从而简化其实现方式。在移动终端上实现自动化的埋点检测,可以利用跟踪服务发送事件机制,在目标应用程序上报跟踪服务发送事件时,拦截埋点事件,而无需另外增加埋点事件获取流程,简化了埋点测试的实现过程。
相应的,在上述任意装置实施例的基础上,针对埋点事件重复上报的埋点异常情况,埋点异常测试模块利用本埋点异常情况对应的埋点测试规则检测埋点事件中是否包含异常埋点特征的方式为:
利用第一埋点测试规则检测埋点事件的埋点参数是否重复,埋点事件重复上报导致的埋点异常情况对应的异常埋点特征为埋点参数重复,埋点事件重复上报导致的埋点异常情况对应的埋点测试规则包括所述第一埋点测试规则。
针对回调异常的埋点异常情况,埋点异常测试模块利用本埋点异常情况对应的埋点测试规则检测埋点事件中是否包含异常埋点特征的方式为:
利用第二埋点测试规则检测埋点事件中是否有行为参数,回调异常的埋点异常情况对应的异常埋点特征为埋点事件中不包含行为参数,回调异常的埋点异常情况对应的埋点测试规则包括第二埋点测试规则。
针对漏埋埋点异常情况,埋点异常测试模块利用本埋点异常情况对应的埋点测试规则检测埋点事件中是否包含异常埋点特征的方式为:
检测到目标行为的情况下,利用第三埋点测试规则检测所述埋点事件是否包含所述目标行为对应的行为参数,漏埋埋点异常情况对应的一个异常埋点特征为获取的埋点事件中不包含目标行为对应的行为参数;
利用第四埋点测试规则检测所述埋点事件是否为双发埋点事件,漏埋埋点异常情况对应的另一个异常埋点特征为获取的埋点事件不是双发埋点事件,漏埋埋点异常情况对应的埋点测试规则包括第三埋点测试规则和第四埋点测试规则。
针对埋错埋点异常情况,埋点异常测试模块利用本埋点异常情况对应的埋点测试规则检测所述埋点事件中是否包含异常埋点特征的方式为:
利用第五埋点测试规则检测所述埋点事件的埋点字段完整性,埋错埋点异常情况对应的一个异常埋点特征为埋点事件的埋点字段完整性低于设定的完整性阈值;
利用第六埋点测试规则检测所述埋点事件的埋点字段有效性,埋错埋点异常情况对应的另一个异常埋点特征为埋点事件的埋点字段有效性低于设定的有效性阈值,埋错埋点异常情况对应的埋点测试规则包括第五埋点测试规则和第六埋点测试规则。
在上述任意装置实施例的基础上,还可以包括埋点异常输出模块,用于若检测到异常埋点特征,输出埋点异常提示框,以提示所述异常埋点特征对应的埋点异常情况。
本发明实施例提供的装置,以提示框的方式提示埋点异常情况,便于用户直观了解埋点异常情况。
基于与方法同样的发明构思,本申请实施例提供一种计算机设备,包括处理器和存储器;存储器用于存储执行各个方法实施例所述方法的程序;处理器被配置为执行存储器中存储的程序。
本申请实施例提供的计算机设备,在目标应用程序运行过程中,获取埋点事件,进而利用预先确定的埋点测试规则检测埋点事件中是否包含异常埋点特征,从而实现了自动化的埋点测试,提高了埋点测试的效率。
图3示出的是与本申请实施例提供的方法实施例相关的计算机设备的部分结构的框图。参考图3,计算机设备包括:
电源,通过电源管理系统与中央处理器逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能;主板,提供部件之间的电连接通路,各个部件通过主板进行电信号传输,各个部件通过插接、焊接等方式安装在主板上;中央处理器,主要包括算术逻辑运算单元(ALU,Arithmetic Logic Unit)、程序计数器(PC,Program Counter)、寄存器组、高速缓冲存储器(Cache)以及用于传输数据、控制及状态的总线(Bus)接口;内存储器、磁盘(即上述保存有执行各个方法实施例所述方法的程序的存储器)、输入单元(包括鼠标、键盘、触控面板等)、显示单元(包括显示器和显卡)和网卡通过总线与中央处理器进行数据交换。
执行各个方法实施例所述方法的程序及相关的数据首先从磁盘中被读取到内存储器中,中央处理器从内存储器中读取并加载程序。
本领域技术人员可以理解,图3中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
基于与方法同样的发明构思,本申请实施例提供一种计算机可读存储介质,存储有执行第一方面各个实施例所述方法的程序。
本申请实施例提供的计算机可读存储介质,在目标应用程序运行过程中,获取埋点事件,进而利用预先确定的埋点测试规则检测埋点事件中是否包含异常埋点特征,从而实现了自动化的埋点测试,提高了埋点测试的效率。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本说明书的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本说明书范围的所有变更和修改。
显然,本领域的技术人员可以对本说明书进行各种改动和变型而不脱离本说明书的精神和范围。这样,倘若本说明书的这些修改和变型属于本说明书权利要求及其等同技术的范围之内,则本说明书也意图包含这些改动和变型在内。