CN116010145A - 一种异常检测方法、装置、设备及存储介质 - Google Patents
一种异常检测方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116010145A CN116010145A CN202211662874.4A CN202211662874A CN116010145A CN 116010145 A CN116010145 A CN 116010145A CN 202211662874 A CN202211662874 A CN 202211662874A CN 116010145 A CN116010145 A CN 116010145A
- Authority
- CN
- China
- Prior art keywords
- log
- target applet
- abnormal
- applet
- rendering
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请提供一种异常检测方法、装置、设备及存储介质,可以应用于计算机技术领域等,用于解决针对小程序的异常检测的准确性较低的问题。该方法至少包括:获取目标小程序的异常日志;其中,所述异常日志包括:所述目标小程序在运行过程中调用各接口函数和各方法函数的调用记录,以及渲染各页面对象的渲染顺序;所述接口函数用于实现所述目标小程序提供的功能,所述方法函数用于渲染所述目标小程序呈现的页面;基于所述异常日志包含的调用记录,从所述目标小程序关联的代码文件中确定异常代码片段;基于所述异常日志包含的渲染顺序,重新执行所述异常代码片段,并基于获得的执行结果,确定所述目标小程序的异常检测结果。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种异常检测方法、装置、设备及存储介质。
背景技术
随着科技的不断发展,越来越多的设备中可以运行小程序,小程序不需要下载和安装,可以直接加载使用。
相关技术中,针对小程序的异常检测方法通常是,在用户使用小程序的过程中,如果小程序出现异常,那么设备可以获得小程序生成的报错信息等。小程序的维护人员,通过设备查看小程序生成的报错信息,再根据自身经验,推断出小程序的异常原因,获得异常检测结果。
然而,小程序生成的报错信息通常较为简单,仅能够反映出异常所属的异常类型,而导致该异常的原因可能有多种,例如,可能是由于设备的网络信号异常、设备异常、用户误操作小程序等,并非是小程序自身异常的原因。因此,通过小程序生成的报错信息可能无法准确地对小程序进行异常检测,从而无法及时地对小程序的异常进行解决,使得小程序的使用体验较差。
可见,相关技术中,针对小程序的异常检测的准确性较低。
发明内容
本申请实施例提供了一种异常检测方法、装置、计算机设备及存储介质,用于解决针对小程序的异常检测的准确性较低的问题。
第一方面,提供一种异常检测方法,包括:
获取目标小程序的异常日志;其中,所述异常日志包括:所述目标小程序在运行过程中调用各接口函数和各方法函数的调用记录,以及渲染各页面对象的渲染顺序;所述接口函数用于实现所述目标小程序提供的功能,所述方法函数用于渲染所述目标小程序呈现的页面;
基于所述异常日志包含的调用记录,从所述目标小程序关联的代码文件中确定异常代码片段;
基于所述异常日志包含的渲染顺序,重新执行所述异常代码片段,并基于获得的执行结果,确定所述目标小程序的异常检测结果;其中,所述异常检测结果用于表征所述目标小程序的异常原因。
可选的,所述获取目标小程序的异常日志,包括:
接收来自客户端的异常反馈信息;其中,所述异常反馈信息用于指示所述目标小程序出现异常的异常时间范围;
从所述目标小程序关联的日志集合中,确定日志生成时间在所述异常时间范围内的至少一个备选日志;
基于所述至少一个备选日志,确定所述目标小程序的异常日志。
可选的,在所述日志集合中,所述目标小程序启动运行时产生的日志,关联设置有启动标识;以及所述目标小程序结束运行时对应的日志,关联设置有结束标识;
所述至少一个备选日志为多个备选日志时,所述基于所述至少一个备选日志,确定所述目标小程序的异常日志,包括:
按照所述多个备选日志的日志生成时间的时间先后顺序,排列所述多个备选日志,获得备选日志序列;
对所述备选日志序列中,关联有启动标识的备选日志和关联有结束标识的备选日志,及其之间的备选日志进行日志拼接,作获得所述目标小程序的异常日志。
可选的,在所述从所述目标小程序关联的日志集合中,确定日志生成时间在所述异常时间范围内的至少一个备选日志之前,还包括:
在所述目标小程序发布后,以所述目标小程序第一次启动运行开始计时,并确定所述目标小程序在运行过程中调用各接口函数和各方法函数的调用记录,以及渲染各页面对象的渲染顺序;
在预设时长的结束时刻到达时,或在获得的调用记录和渲染顺序的存储空间占用量大于预设存储阈值时,将获得的调用记录和渲染顺序存储为一个日志;
重新开始计时,并继续确定所述目标小程序的调用记录和渲染顺序,以生成日志;
基于持续获得的各日志,生成所述目标小程序关联的日志集合。
可选的,所述确定所述目标小程序在运行过程中调用各接口函数和各方法函数的调用记录,以及渲染各页面对象的渲染顺序,包括:
每当确定所述目标小程序调用一个接口函数或一个方法函数时,记录所述接口函数或所述方法函数,以及记录所述接口函数或所述方法函数的传入参数,以及记录所述接口函数或所述方法函数的返回值,获得所述接口函数或所述方法函数的调用记录;
每当确定所述目标小程序渲染一个页面对象时,记录所述页面对象,并为所述页面对象关联设置对象编号,其中,所述对象编号用于表征所述页面对象的渲染顺序。
可选的,所述基于所述异常日志包含的渲染顺序,重新执行所述异常代码片段,包括:
基于所述异常日志包含的渲染顺序,确定所述异常代码片段包含的各代码行的执行顺序;
基于所述执行顺序,依次执行所述各代码行,并记录所述各代码行各自执行后产生的中间变量的取值;
基于记录的各中间变量的取值,确定所述异常代码片段的执行结果。
第二方面,提供一种异常检测装置,包括:
获取模块:用于获取目标小程序的异常日志;其中,所述异常日志包括:所述目标小程序在运行过程中调用各接口函数和各方法函数的调用记录,以及渲染各页面对象的渲染顺序;所述接口函数用于实现所述目标小程序提供的功能,所述方法函数用于渲染所述目标小程序呈现的页面;
处理模块:用于基于所述异常日志包含的调用记录,从所述目标小程序关联的代码文件中确定异常代码片段;
所述处理模块还用于:基于所述异常日志包含的渲染顺序,重新执行所述异常代码片段,并基于获得的执行结果,确定所述目标小程序的异常检测结果;其中,所述异常检测结果用于表征所述目标小程序的异常原因。
可选的,所述获取模块具体用于:
接收来自客户端的异常反馈信息;其中,所述异常反馈信息用于指示所述目标小程序出现异常的异常时间范围;
所述处理模块具体用于:
从所述目标小程序关联的日志集合中,确定日志生成时间在所述异常时间范围内的至少一个备选日志;
基于所述至少一个备选日志,确定所述目标小程序的异常日志。
可选的,在所述日志集合中,所述目标小程序启动运行时产生的日志,关联设置有启动标识;以及所述目标小程序结束运行时对应的日志,关联设置有结束标识;
所述至少一个备选日志为多个备选日志时,所述处理模块具体用于:
按照所述多个备选日志的日志生成时间的时间先后顺序,排列所述多个备选日志,获得备选日志序列;
对所述备选日志序列中,关联有启动标识的备选日志和关联有结束标识的备选日志,及其之间的备选日志进行日志拼接,作获得所述目标小程序的异常日志。
可选的,所述处理模块还用于:
在所述从所述目标小程序关联的日志集合中,确定日志生成时间在所述异常时间范围内的至少一个备选日志之前,在所述目标小程序发布后,以所述目标小程序第一次启动运行开始计时,并确定所述目标小程序在运行过程中调用各接口函数和各方法函数的调用记录,以及渲染各页面对象的渲染顺序;
在预设时长的结束时刻到达时,或在获得的调用记录和渲染顺序的存储空间占用量大于预设存储阈值时,将获得的调用记录和渲染顺序存储为一个日志;
重新开始计时,并继续确定所述目标小程序的调用记录和渲染顺序,以生成日志;
基于持续获得的各日志,生成所述目标小程序关联的日志集合。
可选的,所述处理模块具体用于:
每当确定所述目标小程序调用一个接口函数或一个方法函数时,记录所述接口函数或所述方法函数,以及记录所述接口函数或所述方法函数的传入参数,以及记录所述接口函数或所述方法函数的返回值,获得所述接口函数或所述方法函数的调用记录;
每当确定所述目标小程序渲染一个页面对象时,记录所述页面对象,并为所述页面对象关联设置对象编号,其中,所述对象编号用于表征所述页面对象的渲染顺序。
可选的,所述处理模块具体用于:
基于所述异常日志包含的渲染顺序,确定所述异常代码片段包含的各代码行的执行顺序;
基于所述执行顺序,依次执行所述各代码行,并记录所述各代码行各自执行后产生的中间变量的取值;
基于记录的各中间变量的取值,确定所述异常代码片段的执行结果。
第三方面,提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如第一方面所述的方法。
第四方面,提供一种计算机设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如第一方面所述的方法。
第五方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如第一方面所述的方法。
本申请实施例中,通过记录目标小程序在运行过程中调用各接口函数和各方法函数的调用记录,以及渲染各页面对象的渲染顺序,可以重新执行目标小程序关联的代码文件中的异常代码片段,使得异常场景重现,不仅可以直观准确地确定出目标小程序的异常原因,获得准确地异常检测结果;同时,通过异常场景重现的方式,还可以确定出由于设备的网络信号异常、设备异常、用户误操作小程序等,并非是小程序自身异常的异常原因,进一步使得获得的异常检测结果更加准确可靠。从而可以及时地对小程序的异常进行解决,提高小程序的使用体验。
附图说明
图1为本申请实施例提供的异常检测方法的一种应用场景;
图2为本申请实施例提供的异常检测方法的一种流程示意图一;
图3为本申请实施例提供的异常检测方法的一种原理示意图;
图4为本申请实施例提供的异常检测方法的一种流程示意图二;
图5为本申请实施例提供的异常检测装置的一种结构示意图一;
图6为本申请实施例提供的异常检测装置的一种结构示意图二。
具体实施方式
为了使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
应当说明的是,本申请实施例中,涉及到异常日志等相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
下面对本申请实施例提供的异常检测方法的应用领域进行简单介绍。
随着科技的不断发展,越来越多的设备中可以运行小程序,小程序不需要下载和安装,可以直接加载使用。
相关技术中,针对小程序的异常检测方法通常是,在用户使用小程序的过程中,如果小程序出现异常,那么设备可以获得小程序生成的报错信息等。小程序的维护人员,通过设备查看小程序生成的报错信息,再根据自身经验,推断出小程序的异常原因,获得异常检测结果。
然而,小程序生成的报错信息通常较为简单,仅能够反映出异常所属的异常类型,而导致该异常的原因可能有多种,例如,可能是由于设备的网络信号异常、设备异常、用户误操作小程序等,并非是小程序自身异常的原因。因此,通过小程序生成的报错信息可能无法准确地对小程序进行异常检测,从而无法及时地对小程序的异常进行解决,使得小程序的使用体验较差。
可见,相关技术中,针对小程序的异常检测的准确性较低。
为了解决针对小程序的异常检测的准确性较低的问题,本申请提出一种异常检测方法。该方法中,获取目标小程序的异常日志,异常日志包括:目标小程序在运行过程中调用各接口函数和各方法函数的调用记录,以及渲染各页面对象的渲染顺序。接口函数用于实现目标小程序提供的功能,方法函数用于渲染目标小程序呈现的页面。基于异常日志包含的调用记录,从目标小程序关联的代码文件中确定异常代码片段。基于异常日志包含的渲染顺序,重新执行异常代码片段,并基于获得的执行结果,确定目标小程序的异常检测结果,异常检测结果用于表征目标小程序的异常原因。
本申请实施例中,通过记录目标小程序在运行过程中调用各接口函数和各方法函数的调用记录,以及渲染各页面对象的渲染顺序,可以重新执行目标小程序关联的代码文件中的异常代码片段,使得异常场景重现,不仅可以直观准确地确定出目标小程序的异常原因,获得准确地异常检测结果;同时,通过异常场景重现的方式,还可以确定出由于设备的网络信号异常、设备异常、用户误操作小程序等,并非是小程序自身异常的异常原因,进一步使得获得的异常检测结果更加准确可靠。从而可以及时地对小程序的异常进行解决,提高小程序的使用体验。
下面对本申请提供的异常检测方法的应用场景进行说明。
请参考图1,为本申请提供的异常检测方法的一种应用场景示意图。该应用场景中包括客户端101和服务端102。客户端101和服务端102之间可以通信。通信方式可以是采用有线通信技术进行通信,例如,通过连接网线或串口线进行通信;也可以是采用无线通信技术进行通信,例如,通过蓝牙或无线保真(wireless fidelity,WIFI)等技术进行通信,具体不做限制。
客户端101泛指例如可以向服务端102提供异常日志等的设备,例如,终端设备、终端设备可以访问的第三方应用程序或终端设备可以访问的网页等。终端设备包括但不限于手机、电脑、智能医疗设备、智能家电、车载终端或飞行器等。服务端102泛指可以进行异常检测的设备,例如,终端设备或服务器等。服务器包括但不限于云服务器、本地服务器或关联的第三方服务器等。客户端101和服务端102均可以采用云计算,以减少本地计算资源的占用;同样也可以采用云存储,以减少本地存储资源的占用。
作为一种实施例,客户端101和服务端102可以是同一个设备,具体不做限制。本申请实施例中,以客户端101和服务端102分别为不同的设备为例进行介绍。
下面基于图1,以服务器为主体,对本申请实施例提供的异常检测方法进行具体介绍。请参考图2,为本申请实施例提供的异常检测方法的一种流程示意图。
S201,获取目标小程序的异常日志。
目标小程序可以是某一应用程序中的小程序,也可以是某个网页中的小程序等,具体不做限制。小程序的开发与传统的网页开发不同,传统的网页开发可以直接使用浏览器对象(BOM)和文档对象(DOM)操作页面对象和浏览器等。小程序的运行环境包括渲染层和逻辑层,逻辑层运行的代码需要经过小程序所在应用程序的中转才能影响到渲染层的页面对象。请参考图3,在用于通过客户端对小程序进行操作之后,先通过逻辑层运行的代码,再经过小程序所在应用程序的中转,最后体现在渲染层渲染的页面对象上。
异常日志包括目标小程序在运行过程中调用各接口函数和各方法函数的调用记录,以及渲染各页面对象的渲染顺序。
接口函数用于实现目标小程序提供的功能,接口函数可以是应用程序接口(Application Programming Interface,API)函数,例如,路由API、跳转API、界面API、网络API、数据缓存API等,具体不做限制。
方法函数用于渲染目标小程序呈现的页面,方法函数可以是生命周期方法,例如,setData方法或onPageScroll方法等,具体不做限制。
页面对象可以是目标小程序所呈现的页面中的元素,也可以是用于呈现该元素的组件,如容器或自定义组件等,具体不做限制。
作为一种实施例,在获取目标小程序的异常日志时,可以是基于客户端发送的异常反馈信息获得的。用户可以在小程序使用过程出现异常之后,或多次出现异常之后,通过小程序所在客户端发送异常反馈信息。
接收来自客户端的异常反馈信息,异常反馈信息可以用于指示目标小程序出现异常的异常时间范围,异常反馈信息还可以用于指示其他信息,在此不作限制。
在获得异常反馈信息之后,可以根据异常时间范围,从目标小程序关联的日志集合中,确定日志生成时间在异常时间范围内的至少一个备选日志。从而可以基于至少一个备选日志,确定目标小程序的异常日志。
作为一种实施例,在至少一个备选日志为一个备选日志时,可以将备选日志作为目标小程序的异常日志。或者,目标小程序启动运行时产生的日志中对应的起始数据,关联设置有启动标识;以及目标小程序结束运行时对应的日志中对应的结束数据,关联设置有结束标识。那么在获得一个备选日志时,可以根据启动标识和结束标识,从备选日志中,截取出目标小程序的异常日志等,具体不做限制。
至少一个备选日志为多个备选日志时,在日志集合中,目标小程序启动运行时产生的日志,可以关联设置有启动标识;以及目标小程序结束运行时对应的日志,可以关联设置有结束标识。那么可以按照多个备选日志的日志生成时间的时间先后顺序,排列多个备选日志,获得备选日志序列。对备选日志序列中,关联有启动标识的备选日志和关联有结束标识的备选日志,及其之间的备选日志进行日志拼接,作获得目标小程序的异常日志。
通过选取目标小程序在一次启动运行过程中产生的日志,可以有针对性的对目标小程序的一次运行过程进行分析,避免需要分析的数据量较大的情况。例如,用户提交数据失败时,可能会多次重启目标小程序进行数据提交,那么可以选取其中一次目标小程序的运行过程进行分析,或者也可以依次对每次目标小程序的运行过程进行分析等,以避免单次分析时数据量较大,而造成异常检测不准确的情况。
作为一种实施例,目标小程序关联的日志集合可以是在目标小程序发布后持续获得的。以目标小程序第一次启动运行开始计时,并确定目标小程序在运行过程中调用各接口函数和各方法函数的调用记录,以及渲染各页面对象的渲染顺序。在预设时长的结束时刻到达时,或在获得的调用记录和渲染顺序的存储空间占用量大于预设存储阈值时,将获得的调用记录和渲染顺序存储为一个日志。重新开始计时,并继续确定目标小程序的调用记录和渲染顺序,以生成日志。基于持续获得的各日志,生成目标小程序关联的日志集合。
例如,以目标小程序第一次启动运行开始计时,每个小时内产生的调用记录和渲染顺序生成一个日志,那么在目标小程序启动一天后,可以获得24个日志,从而日志集合可以包括这24个日志。
又例如,以目标小程序第一次启动运行开始计时,每个小时内产生的调用记录和渲染顺序生成一个日志,如果在一个小时的结束时刻到达之前,产生的调用记录和渲染顺序的存储空间占用量大于5mb,那么基于当前产生的调用记录和渲染顺序生成一个日志,并进入下一轮计时。
作为一种实施例,在确定目标小程序在运行过程中调用各接口函数和各方法函数的调用记录,以及渲染各页面对象的渲染顺序时,每当确定目标小程序调用一个接口函数或一个方法函数时,记录接口函数或方法函数,以及记录接口函数或方法函数的传入参数,以及记录接口函数或方法函数的返回值,获得接口函数或方法函数的调用记录。记录的传入参数可以体现用户对小程序的操作,记录的接口函数或方法函数,以及返回值可以提现小程序对于操作的响应等,从而通过调用记录可以在一定程度上对异常场景进行重现。
每当确定目标小程序渲染一个页面对象时,记录页面对象,并为页面对象关联设置对象编号,对象编号用于表征页面对象的渲染顺序。例如,第一个被渲染的页面对象的对象编号为1,第二个被渲染的页面对象的对象编号为2等,具体不做限制。页面对象的渲染顺序可以有助于对异常场景进行重现,从而可以准确地确定出异常原因,以获得异常检测结果。
S202,基于异常日志包含的调用记录,从目标小程序关联的代码文件中确定异常代码片段。
在获得目标小程序的异常日志之后,可以基于异常日志包含的调用记录,从目标小程序关联的代码文件中确定异常代码片段。例如,采用小程序自动化软件开发工具包(SDK)从目标小程序关联的代码文件中读取出异常代码片段,从而可以在SDK中针对异常代码片段进行执行,重现异常场景。又例如,在目标小程序关联的代码文件中,对异常代码片段进行中断标记,从而,在执行异常代码片段时,可以暂停执行,并呈现出当前的中间变量等,具体不做限制。
调用记录包括接口函数或方法函数的传入参数时,可以在异常代码片段中相应的接口函数或方法函数被调用时传入相同的传入参数,以重现异常场景。
S203,基于异常日志包含的渲染顺序,重新执行异常代码片段,并基于获得的执行结果,确定目标小程序的异常检测结果。
基于异常日志包含的渲染顺序,重新执行异常代码片段,使得重新执行时,可以按照渲染顺序进行各页面对象的渲染,达到重现异常场景的目的。从而可以基于获得的执行结果,确定目标小程序的异常检测结果。异常检测结果用于表征目标小程序的异常原因。异常原因例如是设备的网络信号异常、设备异常、用户误操作小程序等,具体不做限制。
作为一种实施例,在基于异常日志包含的渲染顺序,重新执行异常代码片段时,可以先基于异常日志包含的渲染顺序,确定异常代码片段包含的各代码行的执行顺序。从而,可以基于执行顺序,依次执行各代码行,并记录各代码行各自执行后产生的中间变量的取值。基于记录的各中间变量的取值,确定异常代码片段的执行结果。
通过比较中间变量的取值与相应的渲染出的页面对象,可以确定出是目标小程序的开发存在异常,还是设备的网络信号异常、设备异常、用户误操作小程序等。
下面对本申请实施例提供的异常检测方法进行示例介绍,请参考图4。
S401,在目标小程序第一次启动之后,持续记录目标小程序在运行过程中调用的接口函数和方法函数,及其传入参数和返回值,获得调用记录;同时,持续记录目标小程序在运行过程中渲染的页面对象,并依次关联设置对象编号,获得各页面对象的渲染顺序。
S402,将每个小时产生的调用记录和渲染顺序,生成一个日志,存入日志集合中。
S403,接收来自客户端的异常反馈信息。例如,用户在使用目标小程序的过程中,进入Page1页面,在Page1页面填写了表单并提交,此时触发弹窗提示错误。用户通过小程序所在客户端发送异常反馈信息。
S404,基于异常反馈信息指示的异常时间范围,从日志集合中确定至少一个备选日志。
S405,基于获得的至少一个备选日志,确定目标小程序的异常日志。异常日志包含的调用记录和渲染顺序可以体现出用户通过目标小程序进入了Page1页面,在Page1页面填写并提交了表单,以及触发了弹窗提示错误。
S406,基于异常日志包含的调用记录,从目标小程序关联的代码文件中确定异常代码片段。
S407,基于异常日志包含的渲染顺序,重新执行异常代码片段,并基于获得的执行结果,确定目标小程序的异常检测结果。在重新执行异常代码片段时,先进入Page1页面,再在Page1页面填写表单并提交,最后触发弹窗提示错误。通过执行结果可以确定弹窗对应的中间变量的取值是否表征弹窗应处于开启状态,如果表征弹窗应处于开启状态,那么说明表单未提交成功,即异常原因为设备网络异常等;如果表征弹窗应处于关闭状态,那么说明表单提交成功,即异常原因为目标小程序的开发中,页面跳转存在异常等。
本申请实施例中,可以在真机上重新运行目标小程序,以重现异常场景,而不是通过录制目标小程序的使用过程,再进行回放,避免无法通过运行过程中的中间变量确定出异常原因的情况,提高了异常检测的准确性。本申请实施例中,可以复现用户在使用目标小程序的过程中出现错误的异常场景,从而可以直观地确定出异常原因,提升异常检查的效率,减少用户等待时间,提升用户体验。
基于同一发明构思,本申请实施例提供一种异常检测装置,能够实现前述的异常检测方法对应的功能。请参考图5,该装置包括获取模块501和处理模块502,其中:
获取模块501:用于获取目标小程序的异常日志;其中,异常日志包括:目标小程序在运行过程中调用各接口函数和各方法函数的调用记录,以及渲染各页面对象的渲染顺序;接口函数用于实现目标小程序提供的功能,方法函数用于渲染目标小程序呈现的页面;
处理模块502:用于基于异常日志包含的调用记录,从目标小程序关联的代码文件中确定异常代码片段;
处理模块502还用于:基于异常日志包含的渲染顺序,重新执行异常代码片段,并基于获得的执行结果,确定目标小程序的异常检测结果;其中,异常检测结果用于表征目标小程序的异常原因。
在一种可能的实施例中,获取模块501具体用于:
接收来自客户端的异常反馈信息;其中,异常反馈信息用于指示目标小程序出现异常的异常时间范围;
处理模块502具体用于:
从目标小程序关联的日志集合中,确定日志生成时间在异常时间范围内的至少一个备选日志;
基于至少一个备选日志,确定目标小程序的异常日志。
在一种可能的实施例中,在日志集合中,目标小程序启动运行时产生的日志,关联设置有启动标识;以及目标小程序结束运行时对应的日志,关联设置有结束标识;
至少一个备选日志为多个备选日志时,处理模块502具体用于:
按照多个备选日志的日志生成时间的时间先后顺序,排列多个备选日志,获得备选日志序列;
对备选日志序列中,关联有启动标识的备选日志和关联有结束标识的备选日志,及其之间的备选日志进行日志拼接,作获得目标小程序的异常日志。
在一种可能的实施例中,处理模块502还用于:
在从目标小程序关联的日志集合中,确定日志生成时间在异常时间范围内的至少一个备选日志之前,在目标小程序发布后,以目标小程序第一次启动运行开始计时,并确定目标小程序在运行过程中调用各接口函数和各方法函数的调用记录,以及渲染各页面对象的渲染顺序;
在预设时长的结束时刻到达时,或在获得的调用记录和渲染顺序的存储空间占用量大于预设存储阈值时,将获得的调用记录和渲染顺序存储为一个日志;
重新开始计时,并继续确定目标小程序的调用记录和渲染顺序,以生成日志;
基于持续获得的各日志,生成目标小程序关联的日志集合。
在一种可能的实施例中,处理模块502具体用于:
每当确定目标小程序调用一个接口函数或一个方法函数时,记录接口函数或方法函数,以及记录接口函数或方法函数的传入参数,以及记录接口函数或方法函数的返回值,获得接口函数或方法函数的调用记录;
每当确定目标小程序渲染一个页面对象时,记录页面对象,并为页面对象关联设置对象编号,其中,对象编号用于表征页面对象的渲染顺序。
在一种可能的实施例中,处理模块502具体用于:
基于异常日志包含的渲染顺序,确定异常代码片段包含的各代码行的执行顺序;
基于执行顺序,依次执行各代码行,并记录各代码行各自执行后产生的中间变量的取值;
基于记录的各中间变量的取值,确定异常代码片段的执行结果。
请参照图6,上述异常检测装置可以运行在计算机设备600上,数据存储程序的当前版本和历史版本以及数据存储程序对应的应用软件可以安装在计算机设备600上,该计算机设备600包括处理器680以及存储器620。在一些实施例中,该计算机设备600可以包括显示单元640,显示单元640包括显示面板641,用于显示由用户交互操作界面等。
在一种可能的实施例中,可以采用液晶显示器(Liquid Crystal Display,LCD)或有机发光二极管OLED(Organic Light-Emitting Diode)等形式来配置显示面板641。
处理器680用于读取计算机程序,然后执行计算机程序定义的方法,例如处理器680读取数据存储程序或文件等,从而在该计算机设备600上运行数据存储程序,在显示单元640上显示对应的界面。处理器680可以包括一个或多个通用处理器,还可包括一个或多个DSP(Digital Signal Processor,数字信号处理器),用于执行相关操作,以实现本申请实施例所提供的技术方案。
存储器620一般包括内存和外存,内存可以为随机存储器(RAM),只读存储器(ROM),以及高速缓存(CACHE)等。外存可以为硬盘、光盘、USB盘、软盘或磁带机等。存储器620用于存储计算机程序和其他数据,该计算机程序包括各客户端对应的应用程序等,其他数据可包括操作系统或应用程序被运行后产生的数据,该数据包括系统数据(例如操作系统的配置参数)和用户数据。本申请实施例中程序指令存储在存储器620中,处理器680执行存储器620中的程序指令,实现前文图论述的任意的一种方法。
上述显示单元640用于接收输入的数字信息、字符信息或接触式触摸操作/非接触式手势,以及产生与计算机设备600的用户设置以及功能控制有关的信号输入等。具体地,本申请实施例中,该显示单元640可以包括显示面板641。显示面板641例如触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在显示面板641上或在显示面板641的操作),并根据预先设定的程式驱动相应的连接装置。
在一种可能的实施例中,显示面板641可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测玩家的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器680,并能接收处理器680发来的命令并加以执行。
其中,显示面板641可以采用电阻式、电容式、红外线以及表面声波等多种类型实现。除了显示单元640,在一些实施例中,计算机设备600还可以包括输入单元630,输入单元630可以包括图像输入设备631和其他输入设备632,其中其他输入设备可以但不限于包括物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
除以上之外,计算机设备600还可以包括用于给其他模块供电的电源690、音频电路660、近场通信模块670和RF电路610。计算机设备600还可以包括一个或多个传感器650,例如加速度传感器、光传感器、压力传感器等。音频电路660具体包括扬声器661和麦克风662等,例如计算机设备600可以通过麦克风662采集用户的声音,进行相应的操作等。
作为一种实施例,处理器680的数量可以是一个或多个,处理器680和存储器620可以是耦合设置,也可以是相对独立设置。
作为一种实施例,图6中的处理器680可以用于实现如图5中的获取模块501和处理模块502的功能。
作为一种实施例,图6中的处理器680可以用于实现前文论述的服务器或终端设备对应的功能。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,例如,通过计算机程序产品体现,该计算机程序产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种异常检测方法,其特征在于,包括:
获取目标小程序的异常日志;其中,所述异常日志包括:所述目标小程序在运行过程中调用各接口函数和各方法函数的调用记录,以及渲染各页面对象的渲染顺序;所述接口函数用于实现所述目标小程序提供的功能,所述方法函数用于渲染所述目标小程序呈现的页面;
基于所述异常日志包含的调用记录,从所述目标小程序关联的代码文件中确定异常代码片段;
基于所述异常日志包含的渲染顺序,重新执行所述异常代码片段,并基于获得的执行结果,确定所述目标小程序的异常检测结果;其中,所述异常检测结果用于表征所述目标小程序的异常原因。
2.根据权利要求1所述的方法,其特征在于,所述获取目标小程序的异常日志,包括:
接收来自客户端的异常反馈信息;其中,所述异常反馈信息用于指示所述目标小程序出现异常的异常时间范围;
从所述目标小程序关联的日志集合中,确定日志生成时间在所述异常时间范围内的至少一个备选日志;
基于所述至少一个备选日志,确定所述目标小程序的异常日志。
3.根据权利要求2所述的方法,其特征在于,在所述日志集合中,所述目标小程序启动运行时产生的日志,关联设置有启动标识;以及所述目标小程序结束运行时对应的日志,关联设置有结束标识;
所述至少一个备选日志为多个备选日志时,所述基于所述至少一个备选日志,确定所述目标小程序的异常日志,包括:
按照所述多个备选日志的日志生成时间的时间先后顺序,排列所述多个备选日志,获得备选日志序列;
对所述备选日志序列中,关联有启动标识的备选日志和关联有结束标识的备选日志,及其之间的备选日志进行日志拼接,作获得所述目标小程序的异常日志。
4.根据权利要求2所述的方法,其特征在于,在所述从所述目标小程序关联的日志集合中,确定日志生成时间在所述异常时间范围内的至少一个备选日志之前,还包括:
在所述目标小程序发布后,以所述目标小程序第一次启动运行开始计时,并确定所述目标小程序在运行过程中调用各接口函数和各方法函数的调用记录,以及渲染各页面对象的渲染顺序;
在预设时长的结束时刻到达时,或在获得的调用记录和渲染顺序的存储空间占用量大于预设存储阈值时,将获得的调用记录和渲染顺序存储为一个日志;
重新开始计时,并继续确定所述目标小程序的调用记录和渲染顺序,以生成日志;
基于持续获得的各日志,生成所述目标小程序关联的日志集合。
5.根据权利要求4所述的方法,其特征在于,所述确定所述目标小程序在运行过程中调用各接口函数和各方法函数的调用记录,以及渲染各页面对象的渲染顺序,包括:
每当确定所述目标小程序调用一个接口函数或一个方法函数时,记录所述接口函数或所述方法函数,以及记录所述接口函数或所述方法函数的传入参数,以及记录所述接口函数或所述方法函数的返回值,获得所述接口函数或所述方法函数的调用记录;
每当确定所述目标小程序渲染一个页面对象时,记录所述页面对象,并为所述页面对象关联设置对象编号,其中,所述对象编号用于表征所述页面对象的渲染顺序。
6.根据权利要求1~5任一项所述的方法,其特征在于,所述基于所述异常日志包含的渲染顺序,重新执行所述异常代码片段,包括:
基于所述异常日志包含的渲染顺序,确定所述异常代码片段包含的各代码行的执行顺序;
基于所述执行顺序,依次执行所述各代码行,并记录所述各代码行各自执行后产生的中间变量的取值;
基于记录的各中间变量的取值,确定所述异常代码片段的执行结果。
7.一种异常检测装置,其特征在于,包括:
获取模块:用于获取目标小程序的异常日志;其中,所述异常日志包括:所述目标小程序在运行过程中调用各接口函数和各方法函数的调用记录,以及渲染各页面对象的渲染顺序;所述接口函数用于实现所述目标小程序提供的功能,所述方法函数用于渲染所述目标小程序呈现的页面;
处理模块:用于基于所述异常日志包含的调用记录,从所述目标小程序关联的代码文件中确定异常代码片段;
所述处理模块还用于:基于所述异常日志包含的渲染顺序,重新执行所述异常代码片段,并基于获得的执行结果,确定所述目标小程序的异常检测结果;其中,所述异常检测结果用于表征所述目标小程序的异常原因。
8.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1~6中任一项所述的方法。
9.一种计算机设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如权利要求1~6中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如权利要求1~6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211662874.4A CN116010145A (zh) | 2022-12-23 | 2022-12-23 | 一种异常检测方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211662874.4A CN116010145A (zh) | 2022-12-23 | 2022-12-23 | 一种异常检测方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116010145A true CN116010145A (zh) | 2023-04-25 |
Family
ID=86024175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211662874.4A Pending CN116010145A (zh) | 2022-12-23 | 2022-12-23 | 一种异常检测方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116010145A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117312117A (zh) * | 2023-11-30 | 2023-12-29 | 沐曦集成电路(杭州)有限公司 | 一种打点数据的处理方法、装置、设备及介质 |
-
2022
- 2022-12-23 CN CN202211662874.4A patent/CN116010145A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117312117A (zh) * | 2023-11-30 | 2023-12-29 | 沐曦集成电路(杭州)有限公司 | 一种打点数据的处理方法、装置、设备及介质 |
CN117312117B (zh) * | 2023-11-30 | 2024-03-01 | 沐曦集成电路(杭州)有限公司 | 一种打点数据的处理方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2950203B1 (en) | Application scenario identification method, power consumption management method and apparatus and terminal device | |
US10853232B2 (en) | Adaptive system for mobile device testing | |
CN106126424B (zh) | 一种脚本可视化的自动化测试方法、装置和移动终端 | |
CN110968508B (zh) | 一种小程序的加载时间确定方法、装置、终端及存储介质 | |
CN104063305A (zh) | 智能终端软件的压力测试方法、装置和系统 | |
CN109359020A (zh) | 启动时间测试方法及装置、计算机装置及存储介质 | |
WO2020019490A1 (zh) | 一种接口测试方法、电子设备及存储介质 | |
CN104850427B (zh) | 一种代码升级方法及装置 | |
CN109783345B (zh) | 一种小程序性能测试方法和系统 | |
US20130138381A1 (en) | Handheld electronic device testing method | |
CN111596863A (zh) | 一种数据读取方法、装置、设备及可读存储介质 | |
CN107301052A (zh) | 一种帮助信息的显示方法和移动终端 | |
CN116010145A (zh) | 一种异常检测方法、装置、设备及存储介质 | |
CN113495843B (zh) | 用于测试视频播放器的起播性能的方法和装置 | |
CN111026651B (zh) | 测试方法、装置、存储介质及电子设备 | |
CN107977127B (zh) | 更新页面的方法、装置及终端 | |
CN113254153A (zh) | 流程任务处理方法、装置、计算机设备和存储介质 | |
CN113961199A (zh) | 一种模型部署系统、方法、装置及存储介质 | |
CN112988304B (zh) | 一种操作方式的记录方法、装置、电子设备和存储介质 | |
CN113422860B (zh) | 通话异常检测方法及装置 | |
CN112199270B (zh) | 一种程序测试方法、装置、设备及介质 | |
CN109634782A (zh) | 一种系统健壮性的检测方法、装置、存储介质及终端 | |
CN111897726A (zh) | 异常定位方法、装置、存储介质及移动终端 | |
CN108279937B (zh) | 参数的调用方法、装置、存储介质及电子设备 | |
US20160316052A1 (en) | Apparatus and method for correcting an input number |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |