CN110309029B - 异常数据的采集方法、装置、计算机设备和存储介质 - Google Patents
异常数据的采集方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN110309029B CN110309029B CN201910581168.9A CN201910581168A CN110309029B CN 110309029 B CN110309029 B CN 110309029B CN 201910581168 A CN201910581168 A CN 201910581168A CN 110309029 B CN110309029 B CN 110309029B
- Authority
- CN
- China
- Prior art keywords
- page
- loading
- abnormal
- monitoring script
- abnormal data
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
Landscapes
- Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开了一种异常数据的采集方法、装置、计算机设备和存储介质。所述方法包括:在监听到应用软件更新H5页面的加载进度时,载入异常监听脚本,以创建异常监听脚本对象;如果所述H5页面中的目标对象为空,则将所述异常监听脚本对象挂载至所述目标对象下,其中,所述目标对象用于挂载所述异常监听脚本对象;通过所述异常监听脚本对象采集所述H5页面在加载与运行过程中产生的第一异常数据。本发明实施例通过采用上述技术方案,可以将异常监听脚本对象开始工作的时间点提前,使得异常监听脚本对象能够采集到H5页面加载过程中所出现的异常数据,提高异常监听脚本对象所能够监听与采集到的异常数据的全面性。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种异常数据的采集方法、装置、计算机设备和存储介质。
背景技术
随着互联网和计算机设备的快速发展,用户对H5页面的性能的要求越来越高。由于研发人员需要根据H5页面出现异常时的异常数据对H5页面的性能进行改善,因此,当页面出现异常时及时采集页面的异常数据尤为重要。
现有技术中,应用软件内嵌H5页面的异常数据的采集方案为:应用软件启动H5页面,在H5页面启动完成后加载用于进行异常监听的js脚本,并在js脚本加载完成后通过该js脚本采集H5页面在运行过程中所出现的异常数据。然而,此种异常数据采集方式仅能采集到H5页面加载完成后所出现的运行异常和资源加载异常等异常数据,异常数据的采集内容较为单一,导致在较复杂的场景中会出现H5页面发生的异常问题无法定位的情况。
发明内容
有鉴于此,本发明实施例提供一种异常数据的采集方法、装置、计算机设备和存储介质,以提高H5页面异常数据采集内容的全面性。
第一方面,本发明实施例提供了一种异常数据的采集方法,包括:
在监听到应用软件更新H5页面的加载进度时,载入异常监听脚本,以创建异常监听脚本对象;
如果所述H5页面中的目标对象为空,则将所述异常监听脚本对象挂载至所述目标对象下,其中,所述目标对象用于挂载所述异常监听脚本对象;
通过所述异常监听脚本对象采集所述H5页面在加载与运行过程中产生的第一异常数据。
第二方面,本发明实施例提供了一种异常数据的采集装置,包括:
监听脚本创建模块,用于在监听到应用软件更新H5页面的加载进度时,载入异常监听脚本,以创建异常监听脚本对象;
监听脚本挂载模块,用于在所述H5页面中的目标对象为空时,将所述异常监听脚本对象挂载至所述目标对象下,其中,所述目标对象用于挂载所述异常监听脚本对象;
监听脚本采集模块,用于通过所述异常监听脚本对象采集所述H5页面在加载与运行过程中产生的第一异常数据。
第三方面,本发明实施例提供了一种计算机设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明实施例所述的异常数据的采集方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例所述的异常数据的采集方法。
在上述采集异常数据的技术方案中,首先,在监听到应用软件更新H5页面的加载进度时,载入异常监听脚本,以创建异常监听脚本对象,并在H5页面中用于挂载异常监听脚本对象的目标对象为空时,将本次所创建的异常监听脚本对象挂载至该目标对象下,然后,通过该异常监听脚本对象采集H5页面在加载与运行过程中所产生的异常数据。本发明实施例通过采用上述技术方案,在H5页面加载过程中即加载异常监听脚本对象,可以将异常监听脚本对象开始工作的时间点提前,使得异常监听脚本对象能够采集到H5页面加载过程中所出现的异常数据,并且,多次创建异常监听脚本对象并仅在H5中的目标对象为空时将所创建的异常监听脚本对象挂载至H5页面中,可以在确保异常监听脚本对象能够加载成功的前提下,进一步提前异常脚本监听对象开始工作的时间点,从而进一步提高异常监听脚本对象所能够监听与采集到的异常数据的全面性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明实施例一提供的一种异常数据的采集方法的流程示意图;
图2为本发明实施例二提供的一种异常数据的采集方法的流程示意图;
图3为本发明实施例三提供的一种异常数据的采集方法的流程示意图;
图4为本发明实施例三提供的一种H5页面加载过程中的关键节点示意图;
图5为本发明实施例三提供的一种H5页面加载过程中可能出现的异常的示意图;
图6为本发明实施例三提供的一种异常数据的采集方式示意图;
图7为本发明实施例四提供的一种异常数据的采集装置的结构示意图;
图8为本发明实施例五提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
实施例一
本发明实施例一提供一种异常数据的采集方法。该方法可以由异常数据的采集装置执行,其中,该装置可以由软件和/或硬件实现,一般集成在可加载H5页面的计算机设备中,典型的,可以集成在移动终端(如手机)中,一般适用于对H5页面加载及使用过程中所出现的异常数据进行采集的情况。图1为本发明实施例一提供的一种异常数据的采集方法的流程示意图,如图1所示,所述方法包括:
S110、在监听到应用软件更新H5页面的加载进度时,载入异常监听脚本,以创建异常监听脚本对象。
示例性的,应用软件可以基于用户的触发操作加载H5页面,并按照一定的规则更新H5页面的加载进度。相应的,用于采集H5页面在加载及后续运行过程中的异常数据的异常数据的采集装置可以按照设定周期监听应用软件是否更新H5页面的加载进度,若是,则载入异常监听脚本;若否,则继续监听应用软件是否更新H5页面的加载进度。其中,H5页面为HTML5页面;加载进度为当前时刻H5页面的加载进度值;异常监听脚本可以理解为用于监听H5页面是否出现异常的脚本,如js脚本;该异常数据的采集装置可以为SDK组件,其可以预先打入到应用软件的安装包中,随应用软件一起安装至计算机设备上,并在应用软件启动时自动启动;应用软件更新H5页面的加载进度的规则可以为按照设定周期更新或每加载完成H5页面的一个页面文件后更新一次,等等,具体可以由应用软件的开发人员根据需要设置。
在本实施例中,异常数据的采集装置可以仅在首次监听到应用软件更新H5页面的加载进度时,执行载入异常监听脚本的操作;也可以在每次监听到应用软件更新H5页面的加载进度时,均执行载入异常监听脚本的操作,本实施例不对此进行限制。
考虑到应用软件首次或前几次更新H5页面的加载进度时,若H5页面中用于挂载异常监听脚本对象的目标对象尚未创建成功,异常监听脚本会出现加载失败的情况,因此,本实施例优选在每次监听到应用软件更新H5页面的加载进度时,均执行载入异常监听脚本的操作,以在确保异常监听脚本能够加载成功的前提下,将异常监听脚本的加载时间点提前,从而将异常监听脚本开始工作的时间点提前,增长异常监听脚本的工作时间,增加异常监听脚本所能够监听的异常数据的全面性,本实施例以此种情况为例进行说明。
具体的,异常数据的采集装置按照设定周期获取H5页面的加载进度,判断该加载进度与上次获取到的H5页面的加载进度是否相同,若不相同,则确定应用软件更新H5页面的加载进度,载入异常监听脚本,并返回上述按照设定周期获取H5页面的加载进度的操作,直至H5页面加载完成为止;若相同,则确定应用软件未更新H5页面的加载进度,并返回上述按照设定周期获取H5页面的加载进度的操作,直至H5页面加载完成为止。
在本步骤中,异常数据的采集装置可以在每次监听到应用软件更新H5页面的加载进度时均载入异常监听脚本;也可以在监听到应用软件更新H5页面的加载进度且更新后的加载进度大于设定加载进度阈值时,才执行载入异常监听脚本的操作,本实施例不对此进行限制。为了提高后续将异常监听脚本对象挂载至目标对象下时的成功率,本实施例优选可以仅在监听到应用软件更新H5页面的加载进度且更新后的加载进度大于设定加载进度阈值时,载入异常监听脚本。此时,在所述载入异常监听脚本之前,还包括:确定所述加载进度大于设定加载进度阈值。相应的,如果确定所述加载进度小于或等于设定加载进度阈值,则不执行载入异常监听脚本的操作,并继续监听应用软件是否更新H5页面的加载进度,直至H5页面加载完成为止。其中,设定加载进度阈值可以根据需要设置,如可以设置为4%、5%或6%等数值。
S120、如果所述H5页面中的目标对象为空,则将所述异常监听脚本对象挂载至所述目标对象下,其中,所述目标对象用于挂载所述异常监听脚本对象。
本实施例中,为了避免已经加载成功的异常监听脚本对象被后续创建的异常监听脚本对象覆盖,可以在挂载本次创建的异常监听脚本之前,判断H5页面中用于挂载异常监听脚本对象的目标对象是否为空,即判断目标对象是否尚未挂载异常监听脚本对象,若是,则确定H5页面中尚不存在加载成功的异常监听脚本对象,并将本次创建的异常监听脚本对象挂载至H5页面的目标对象下;若否,则确定H5页面中已经存在加载成功的异常监听脚本对象,不再执行将本次创建的异常监听脚本对象挂载至H5页面的目标对象下的操作,从而,保留H5页面中首次加载成功的异常监听脚本对象,并通过该首次加载成功的异常监听脚本对象监听并采集H5页面运行过程中产生的异常数据,最大限度地将异常监听脚本对象开始工作的时间点提前。其中,异常监听脚本对象的加载过程可以包括异常监听脚本对象的创建过程和异常监听脚本对象的挂载过程。
S130、通过所述异常监听脚本对象采集所述H5页面在加载与运行过程中产生的第一异常数据。
本实施例中,当异常监听脚本对象成功挂载至目标对象下之后,即异常监听脚本对象加载成功后,即可自动监听并采集H5页面所产生的第一异常数据,即自动在监测到H5页面出现异常时采集H5页面与此异常相关的异常数据。此时,异常监听脚本对象所监听与采集到的异常数据除包括页面加载完成后H5页面在运行过程中所产生的异常数据,还进一步包括自异常监听脚本对象加载成功时刻起H5页面在加载过程中所产生的异常数据,如在后续的H5页面文件下载过程中和/或在后续的H5页面文件的处理(如解析等)与渲染过程中所出现的异常数据等。其中,第一异常数据可以理解为通过异常监听脚本对象采集到的异常数据,该第一异常数据可以仅包括与所出现的异常相关的数据,也可以进一步包括用于确定H5页面是否出现异常的数据,本实施例不对此进行限制。
本发明实施例一提供的异常数据的采集方法,首先,在监听到应用软件更新H5页面的加载进度时,载入异常监听脚本,以创建异常监听脚本对象,并在H5页面中用于挂载异常监听脚本对象的目标对象为空时,将本次所创建的异常监听脚本对象挂载至该目标对象下,然后,通过该异常监听脚本对象采集H5页面在加载与运行过程中所产生的异常数据。本实施例通过采用上述技术方案,在H5页面加载过程中即加载异常监听脚本对象,可以将异常监听脚本对象开始工作的时间点提前,使得异常监听脚本对象能够采集到H5页面加载过程中所出现的异常数据,并且,多次创建异常监听脚本对象并仅在H5中的目标对象为空时将所创建的异常监听脚本对象挂载至H5页面中,可以在确保异常监听脚本对象能够加载成功的前提下,进一步提前异常脚本监听对象开始工作的时间点,从而进一步提高异常监听脚本对象所能够监听与采集到的异常数据的全面性。
实施例二
图2为本发明实施例二提供的一种异常数据的采集方法的流程示意图。本实施例在上述实施例的基础上,将“通过所述异常监听脚本对象采集所述H5页面在加载与运行过程中产生的第一异常数据”优选为:通过所述异常监听脚本对象创建目标网络请求接口,并采用所述目标网络请求接口替换所述H5页面中的原始网络请求接口;通过所述目标网络请求接口采集所述H5页面与服务器进行数据交互时产生的服务器侧异常数据,所述服务器侧异常数据包括网络请求无法正常解码时的异常数据以及网络请求正常解码但存在逻辑问题时的异常数据,所述网络请求由所述H5页面向所述服务器发送。
进一步地,所述通过所述异常监听脚本对象采集所述H5页面在加载与运行过程中产生的第一异常数据,还包括:获取H5页面中的性能探针采集的所述H5页面加载网络资源时的资源加载信息,所述资源加载信息包括所述网络资源的文件名称、所述服务器的IP地址以及所述网络资源的加载耗时中的至少一种,所述网络资源为所述服务器基于所述H5页面发送的网络请求返回的网络资源。
相应的,如图2所示,本实施例提供的异常数据的采集方法包括:
S210、在监听到应用软件更新H5页面的加载进度时,载入异常监听脚本,以创建异常监听脚本对象。
S220、如果所述H5页面中的目标对象为空,则将所述异常监听脚本对象挂载至所述目标对象下,其中,所述目标对象用于挂载所述异常监听脚本对象。
S230、通过所述异常监听脚本对象创建目标网络请求接口,并采用所述目标网络请求接口替换所述H5页面中的原始网络请求接口。
S240、通过所述目标网络请求接口采集所述H5页面与服务器进行数据交互时产生的服务器侧异常数据,所述服务器侧异常数据包括网络请求无法正常解码时的异常数据以及网络请求正常解码但存在逻辑问题时的异常数据,所述网络请求由所述H5页面向所述服务器发送。
由于H5页面中的原始网络请求接口仅在H5页面所发送的网络请求无法正常解码时判定H5页面出现异常,而当H5页面所发送的网络请求能够正常解码但存在逻辑问题时并不会判定H5页面出现异常,即判定H5页面处于正常状态,由此,H5页面中的原始网络请求接口仅会采集网络请求无法正常解码时的异常数据,而并不会采集网络请求存在逻辑问题时的异常数据。因此,本实施例异常监听脚本对象在加载完成后,可自动创建H5页面的网络请求接口,作为目标网络请求接口,并采用该目标网络请求接口替换H5页面中的原始网络请求接口,从而,通过该目标网络请求接口采集网络请求无法正常解码时的异常数据以及网络请求能够正常解码但存在逻辑问题时的异常数据。
其中,网络请求能够正常解码但存在逻辑问题时的异常数据可以理解为服务器返回首位为2或3的状态码(如200、302、304等)时的异常数据;网络请求无法正常解码时的异常数据可以理解为服务器返回首位为除2和3之外的数字的其他状态码(如403、500等)时的异常数据;目标网络请求接口为能够采集网络请求存在逻辑问题时的异常数据的网络请求接口,如可以为XMLHttpRequest&fetch。
具体的,异常监听脚本对象加载成功后,封装目标网络请求接口XMLHttpRequest&fetch,采用所封装的XMLHttpRequest&fetch替换H5页面中的原始网络请求接口,替换完成后,通过XMLHttpRequest&fetch获取H5页面向服务器发送的网络请求的头文件(requestheader)、服务器的响应(reaponse)、请求的方法(methond)和/或服务器返回的状态码(statusCode)等信息,当服务器返回statusCode时,进一步解析该statusCode的具体数值,并在statusCode为200、302和304等以2或3开头的数值时,针对性地采集与网络请求逻辑错误相关的异常数据;在statusCode为以其他数字开头的数值时,针对性的采集与服务器异常或网络异常相关的异常数据。
S250、通过所述异常监听脚本对象获取H5页面中的性能探针采集的所述H5页面加载网络资源时的资源加载信息,所述资源加载信息包括所述网络资源的文件名称、所述服务器的IP地址以及所述网络资源的加载耗时中的至少一种,所述网络资源为所述服务器基于所述H5页面发送的网络请求返回的网络资源。
示例性的,H5页面中的性能探针performance.timing加载完成后,自动采集H5页面后续在资源加载过程中的各关键节点的信息,如重定向(redirect)、dns、tcp、request、response等,以及,H5页面所加载网络资源的资源信息,如H5页面所加载的资源名称、资源所属服务器的IP地址和/或资源的加载耗时等;异常监听脚本对象获取performance.timing采集到的关键节点信息和资源信息,作为H5页面加载网络资源时的资源加载信息。
本发明实施例二提供的异常数据的采集方法,采用异常监听脚本所创建的目标网络请求接口替换H5页面中的原始网络请求接口,通过该目标网络请求接口采集H5页面与服务器进行数据交互时产生的服务器侧异常数据,并获取H5页面中的性能探针采集的H5页面的资源加载信息,能够实现对H5页面与服务器交互过程中网络请求存在逻辑问题时的异常数据以及H5页面加载资源过程中的资源加载信息的采集,进一步提高所采集到的异常数据的全面性,从而保留完整的用户现场,解决现有技术中由于资源加载异常时异常监听脚本对象采集的信息较为简单导致的出现较复杂的场景时H5页面发生的异常问题会无法定位的技术问题,为开发人员快速定位异常未定提供足够完善和精确的信息,提升前端开发人员解决异常问题的效率。
在上述实施例的基础上,所述通过所述异常监听脚本对象采集所述H5页面在加载与运行过程中产生的第一异常数据,包括:通过所述异常监听脚本对象创建监听器,通过所述监听器监听并采集所述H5页面的页面侧异常数据,所述页面侧异常数据包括所述H5页面出现语法错误、运行异常或响应异常时的异常数据。本实施例中,异常监听脚本对象加载完成后,即可自动执行,创建监听器,如创建error、unhandledrejection等监听器,通过error监听器监听采集H5页面在加载与运行过程中出现语法错误、运行异常等异常时的异常数据,通过unhandledrejection监听器监听采集H5页面在加载与运行过程中出现promise异常等异常时的异常数据。其中,所采集的异常数据可以包括出现异常的数据内容的文件名、出现异常的数据内容所处的行号以及异常的堆栈信息等,从而进一步提高异常监听脚本对象所采集的异常数据的详细程度。
实施例三
图3为本发明实施例三提供的一种异常数据的采集方法的流程示意图。本实施例在上述实施例的基础上进行优化,进一步的,所述异常数据的采集方法还包括:获取H5页面加载过程出现加载异常时的第二异常数据,其中,所述加载异常包括H5页面容器加载异常、H5页面资源加载异常和网络证书校验异常中的至少一种;以及,通过面向切面编程的方式采集所述H5页面调用所述应用软件中的被调用对象时的调用信息,所述调用信息包括所述被调用对象的类名、方法名、参数名和参数值中的至少一种。
相应的,如图3所示,本实施例提供的异常数据的采集方法包括:
S310、获取H5页面加载过程出现加载异常时的第二异常数据,其中,所述加载异常包括H5页面容器加载异常、H5页面资源加载异常和网络证书校验异常中的至少一种。
应有软件内嵌H5页面加载过程存在多个关键节点,任何一个关键节点出现问题,都将导致H5页面的加载过程出现异常(H5页面加载过程中可能出现的异常的分类如图5所示),H5页面加载失败,因此,本实施例可以采集H5页面在加载过程中出现的第二异常数据,以进一步提高所采集到的异常数据的全面性,使得即使面对H5页面加载过程出现异常的情况,开发人员也能够快速对所出现的问题进行定位。其中,如图4所示,应用软件内嵌H5页面加载过程中存在的关键节点包括应用软件初始化(app init)阶段的网络视图窗口初始化(webview activity init)和浏览器引擎初始化(webkit init),以及,H5页面加载(htmlload)阶段的加载准备(prompt for unload)过程、重定向(redirect)、应用软件缓存加载(app cache)、域名分析(dns)、协议分析(tcp)、安全连接(secure connection)、请求(request)、响应(response)、服务器进程(server process)、页面文件解析(dom process)和渲染(draw);第二异常数据可以理解为通过应用软件侧中所配置的对象采集到的异常数据。
具体的,异常数据的采集装置通过应用软件中配置的监听对象WebViewClient监听H5页面容器加载过程、H5资源加载过程以及https证书校验过程是否出现异常,并在监听到任一过程出现异常时,采集所出现异常的错误码以及与所出现异常相关的网络请求的统一资源定位符(url)、方法(method)、请求头文件(requestHeaders)、状态码(statusCode)、响应头文件(responseHeaders)、编码(encoding)、媒体类型(mimeType)、状态码的描述语言(reasonPhrase)、响应数据(responseData)等所在的行及其上下行的代码。
S320、在监听到应用软件更新H5页面的加载进度时,载入异常监听脚本,以创建异常监听脚本对象。
S330、如果所述H5页面中的目标对象为空,则将所述异常监听脚本对象挂载至所述目标对象下,其中,所述目标对象用于挂载所述异常监听脚本对象。
S340、通过所述异常监听脚本对象采集所述H5页面在加载与运行过程中产生的第一异常数据。
S350、通过面向切面编程的方式采集所述H5页面调用所述应用软件中的被调用对象时的调用信息,所述调用信息包括所述被调用对象的类名、方法名、参数名和参数值中的至少一种。
由于H5页面在运行过程中可能存在调用应用软件中的对象的情况,若应用软件中的被调用对象在被H5页面调用的过程中出现异常,同样会导致H5页面出现异常,因此,本实施例中,可以通过面向切面编程(Aspect Oriented Programming,AOP)的方式采集应用软件中的被调用对象的调用信息,以便当H5页面出现异常时,开发人员可以根据该调用信息排查H5页面所出现的异常。其中,被调用对象可以理解为应用软件中被H5页面调用的对象。
具体的,可以预先将采集jsBridge信息的代码注入到jsBridge暴露的方法中,当jsBridge方法被调用时,自动采集被调用对象的调用信息。其中,jsBridge可以理解为H5页面与应用软件之间的一种通信方式,H5页面需通过调用jsBridge方法才能实现对应用软件中的被调用对象的调用。
需要说明的是,上述各步骤的提供的执行顺序仅为本实施例提供的一种可选实现方式,而并非对本实施例中各步骤的执行顺序的限定,实际上,上述各步骤还可以按照其他顺序执行,如同时执行S320-S340与S310,和/或,同时执行S350与S340等等,但是,无论何种执行顺序,其均应包含在本发明实施例的保护范围之内。
本发明实施例三提供的异常数据的采集方法,获取H5页面加载过程中出现异常时的异常数据,并通过面向切面编程的方式采集H5页面调用应用软件中的被调用对象时的调用信息,可以实现对H5页面加载过程中出现的异常数据以及H5页面调用应用软件中的对象过程中的数据的采集,进一步提高所采集到的异常数据的全面性,提升前端开发人员解决异常问题的效率。
在上述实施例的基础上,所述异常数据的采集方法还包括:在监听到所述应用软件启动或home键被触发时,获取所述H5页面的异常数据采集策略;相应的,所述通过所述异常监听脚本对象采集所述H5页面在加载与运行过程中产生的第一异常数据,具体为:通过所述异常监听脚本按照所述异常数据采集策略采集所述H5页面在加载与运行过程中产生的第一异常数据。本实施例中,可以预先在异常数据采集配置服务器侧为不同设备以及不同应用软件设置不同的采集策略和其他配置。其中,采集策略诸如可以包括各指标(即各异常数据)的采集频率、各指标的采集开关(即每类异常数据是否进行异常数据采集)等;其他配置诸如可以包括版本黑名单、采集设备白名单以及异常监听脚本对象的更新策略等,当某一版本的应用软件加入该黑名单后,异常数据的采集装置将不再采集该版本应用软件启动H5页面时出现的异常数据;当某一设备加入白名单后,异常数据的采集装置将采集该设备上安装的应用程序中内嵌的H5页面的所有异常数据。
相应的,如图6所示,当应用软件启动或计算机设备的home键被触发时时,异常数据的采集装置可以通过策略配置管理模块确定当前的应用软件的各指标的采集策略以及各指标的其他配置,并依据此策略和配置采集该应用软件中所启动的H5页面在加载与运行过程中所出现的异常数据,从而,在满足不同设备、不同应用软件中内嵌的H5页面的异常数据采集需求的前提下,确保异常数据的采集装置能够及时的更新应用程序的异常数据采集策略(包括图6中的采集策略和其他配置)。其中,异常数据的采集装置可以在检测到计算机设备的home键被触发时即获取H5页面的异常数据采集策略;也可以在检测到计算机设备的home键被触发时,进一步判断home键的触发时刻与应用软件启动时刻之间的时间长度是否大于或等于设定时间长度阈值,并在其大于设定时间长度阈值时获取H5页面的异常数据采集策略。在此,设定时间程度阈值可以根据需要设置,如可以设置为5分钟或10分钟等。
进一步地,本实施例所提供的异常数据的采集方法还可以采集安装应用软件的计算机设备的硬件和系统等相关信息,例如,参见图6,异常数据的采集装置可以通过公共采集模块采集计算机设备的内存、电量、CPU、SD卡、网络和webkit信息,从而帮助开发人员排查计算机设备、系统版本等引起的兼容性问题。
在上述实施例的基础上,所述异常数据的采集方法还可以包括:将所采集的异常数据上报至服务器,以便于开发人员获取所采集的异常数据。其中,异常数据的上报方式可以根据需要设置,如可以实时上报、按照设定周期上报、在设定时间点上报或者在检测到应用软件启动或home键被触发时上报等。本实施例优选可以在检测到应用软件启动或home键被触发时上报所采集到的异常数据,从而减小上报异常数据对应用软件自身的性能造成的影响。此时,具体的,可以在采集到异常数据时将异常数据存储于本地,在检测到应用软件启动或home键被触发时上报本地所存储的异常数据,并在异常数据上报成功后删除本地存储的上报成功的异常数据。
实施例四
本发明实施例四提供一种异常数据的采集装置,该装置可以由软件和/或硬件实现,一般集成可加载H5页面的计算机设备中,典型的,可以集成移动终端(如手机)中,可通过执行异常数据的采集方法采集H5页面加载与运行过程中所出现的异常数据。图7为本发明实施例四提供的一种异常数据的采集装置的结构示意图,如图7所示,该装置包括监听脚本创建模块401、监听脚本挂载模块402和监听脚本采集模块403,其中:
监听脚本创建模块401,用于在监听到应用软件更新H5页面的加载进度时,载入异常监听脚本,以创建异常监听脚本对象;
监听脚本挂载模块402,用于在所述H5页面中的目标对象为空时,将所述异常监听脚本对象挂载至所述目标对象下,其中,所述目标对象用于挂载所述异常监听脚本对象;
监听脚本采集模块403,用于通过所述异常监听脚本对象采集所述H5页面在加载与运行过程中产生的第一异常数据。
本发明实施例四提供的异常数据的采集装置,首先,通过监听脚本创建模块在监听到应用软件更新H5页面的加载进度时,载入异常监听脚本,以创建异常监听脚本对象,并通过监听脚本挂载模块在H5页面中用于挂载异常监听脚本对象的目标对象为空时,将本次所创建的异常监听脚本对象挂载至该目标对象下,然后,通过监听脚本采集模块通控制该异常监听脚本对象采集H5页面在加载与运行过程中所产生的异常数据。本实施例通过采用上述技术方案,在H5页面加载过程中即加载异常监听脚本对象,可以将异常监听脚本对象开始工作的时间点提前,使得异常监听脚本对象能够采集到H5页面加载过程中所出现的异常数据,并且,多次创建异常监听脚本对象并仅在H5中的目标对象为空时将所创建的异常监听脚本对象挂载至H5页面中,可以在确保异常监听脚本对象能够加载成功的前提下,进一步提前异常脚本监听对象开始工作的时间点,从而进一步提高异常监听脚本对象所能够监听与采集到的异常数据的全面性。
在上述方案中,所述监听脚本采集模块403可以包括:接口替换单元,用于通过所述异常监听脚本对象创建目标网络请求接口,并采用所述目标网络请求接口替换所述H5页面中的原始网络请求接口;第一数据采集单元,用于通过所述目标网络请求接口采集所述H5页面与服务器进行数据交互时产生的服务器侧异常数据,所述服务器侧异常数据包括网络请求无法正常解码时的异常数据以及网络请求正常解码但存在逻辑问题时的异常数据,所述网络请求由所述H5页面向所述服务器发送。
在上述方案中,所述监听脚本采集模块403还可以包括:信息采集单元,用于通过所述异常监听脚本对象获取H5页面中的性能探针采集的所述H5页面加载网络资源时的资源加载信息,所述资源加载信息包括所述网络资源的文件名称、所述服务器的IP地址以及所述网络资源的加载耗时中的至少一种,所述网络资源为所述服务器基于所述H5页面发送的网络请求返回的网络资源。
在上述方案中,所述监听脚本采集模块403可以包括:第二数据采集单元,用于通过所述异常监听脚本对象创建监听器,通过所述监听器监听并采集所述H5页面的页面侧异常数据,所述页面侧异常数据包括所述H5页面出现语法错误、运行异常或响应异常时的异常数据。
进一步地,所述异常数据的采集装置还可以包括:应用软件采集模块,用于获取H5页面加载过程出现加载异常时的第二异常数据,其中,所述加载异常包括H5页面容器加载异常、H5页面资源加载异常和网络证书校验异常中的至少一种;以及,通过面向切面编程的方式采集所述H5页面调用所述应用软件中的被调用对象时的调用信息,所述调用信息包括所述被调用对象的类名、方法名、参数名和参数值中的至少一种。
在上述方案中,所述监听脚本创建模块401还可以用于:在所述载入异常监听脚本之前,确定所述加载进度大于设定加载进度阈值。
进一步地,所述异常数据的采集装置还可以包括:策略获取模块,用于在监听到所述应用软件启动或home键被触发时,获取所述H5页面的异常数据采集策略;相应的,所述监听脚本采集模块403具体可用于通过所述异常监听脚本按照所述异常数据采集策略采集所述H5页面在加载与运行过程中产生的第一异常数据。
本发明实施例四提供的异常数据的采集装置可执行本发明任意实施例提供的异常数据的采集方法,具备执行异常数据的采集方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的异常数据的采集方法。
实施例五
图8为本发明实施例五提供的一种计算机设备的结构示意图,如图8所示,该计算机设备包括处理器50和存储器51,还可以包括输入装置52和输出装置53;计算机设备中处理器50的数量可以是一个或多个,图8中以一个处理器50为例;计算机设备中的处理器50、存储器51、输入装置52和输出装置53可以通过总线或其他方式连接,图8中以通过总线连接为例。
存储器51作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的异常数据的采集方法对应的程序指令/模块(例如,异常数据的采集装置中的监听脚本创建模块401、监听脚本挂载模块402和监听脚本采集模块403)。处理器50通过运行存储在存储器51中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的异常数据的采集方法。
存储器51可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器51可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器51可进一步包括相对于处理器50远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置52可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置53可包括显示屏等显示设备。
本发明实施例五还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种异常数据的采集方法,该方法包括:
在监听到应用软件更新H5页面的加载进度时,载入异常监听脚本,以创建异常监听脚本对象;
如果所述H5页面中的目标对象为空,则将所述异常监听脚本对象挂载至所述目标对象下,其中,所述目标对象用于挂载所述异常监听脚本对象;
通过所述异常监听脚本对象采集所述H5页面在加载与运行过程中产生的第一异常数据。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的异常数据的采集方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述异常数据的采集装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (9)
1.一种异常数据的采集方法,其特征在于,包括:
在监听到应用软件更新H5页面的加载进度时,载入异常监听脚本,以创建异常监听脚本对象;
如果所述H5页面中的目标对象为空,则将所述异常监听脚本对象挂载至所述目标对象下,其中,所述目标对象用于挂载所述异常监听脚本对象;
通过所述异常监听脚本对象采集所述H5页面在加载与运行过程中产生的第一异常数据;
获取H5页面加载过程出现加载异常时的第二异常数据,其中,所述加载异常包括H5页面容器加载异常、H5页面资源加载异常和网络证书校验异常中的至少一种;以及,
通过面向切面编程的方式采集所述H5页面调用所述应用软件中的被调用对象时的调用信息,所述调用信息包括所述被调用对象的类名、方法名、参数名和参数值中的至少一种。
2.根据权利要求1所述的方法,其特征在于,所述通过所述异常监听脚本对象采集所述H5页面在加载与运行过程中产生的第一异常数据,包括:
通过所述异常监听脚本对象创建目标网络请求接口,并采用所述目标网络请求接口替换所述H5页面中的原始网络请求接口;
通过所述目标网络请求接口采集所述H5页面与服务器进行数据交互时产生的服务器侧异常数据,所述服务器侧异常数据包括网络请求无法正常解码时的异常数据以及网络请求正常解码但存在逻辑问题时的异常数据,所述网络请求由所述H5页面向所述服务器发送。
3.根据权利要求2所述的方法,其特征在于,所述通过所述异常监听脚本对象采集所述H5页面在加载与运行过程中产生的第一异常数据,还包括:
通过所述异常监听脚本对象获取H5页面中的性能探针采集的所述H5页面加载网络资源时的资源加载信息,所述资源加载信息包括所述网络资源的文件名称、所述服务器的IP地址以及所述网络资源的加载耗时中的至少一种,所述网络资源为所述服务器基于所述H5页面发送的网络请求返回的网络资源。
4.根据权利要求1所述的方法,其特征在于,所述通过所述异常监听脚本对象采集所述H5页面在加载与运行过程中产生的第一异常数据,包括:
通过所述异常监听脚本对象创建监听器,通过所述监听器监听并采集所述H5页面的页面侧异常数据,所述页面侧异常数据包括所述H5页面出现语法错误、运行异常或响应异常时的异常数据。
5.根据权利要求1所述的方法,其特征在于,在所述载入异常监听脚本之前,还包括:
确定所述加载进度大于设定加载进度阈值。
6.根据权利要求1-5任一所述的方法,其特征在于,还包括:
在监听到所述应用软件启动或home键被触发时,获取所述H5页面的异常数据采集策略;
相应的,所述通过所述异常监听脚本对象采集所述H5页面在加载与运行过程中产生的第一异常数据,具体为:
通过所述异常监听脚本按照所述异常数据采集策略采集所述H5页面在加载与运行过程中产生的第一异常数据。
7.一种异常数据的采集装置,其特征在于,包括:
监听脚本创建模块,用于在监听到应用软件更新H5页面的加载进度时,载入异常监听脚本,以创建异常监听脚本对象;
监听脚本挂载模块,用于在所述H5页面中的目标对象为空时,将所述异常监听脚本对象挂载至所述目标对象下,其中,所述目标对象用于挂载所述异常监听脚本对象;
监听脚本采集模块,用于通过所述异常监听脚本对象采集所述H5页面在加载与运行过程中产生的第一异常数据;
应用软件采集模块,用于获取H5页面加载过程出现加载异常时的第二异常数据,其中,所述加载异常包括H5页面容器加载异常、H5页面资源加载异常和网络证书校验异常中的至少一种;以及,
通过面向切面编程的方式采集所述H5页面调用所述应用软件中的被调用对象时的调用信息,所述调用信息包括所述被调用对象的类名、方法名、参数名和参数值中的至少一种。
8.一种计算机设备,其特征在于,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的异常数据的采集方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的异常数据的采集方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910581168.9A CN110309029B (zh) | 2019-06-29 | 2019-06-29 | 异常数据的采集方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910581168.9A CN110309029B (zh) | 2019-06-29 | 2019-06-29 | 异常数据的采集方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110309029A CN110309029A (zh) | 2019-10-08 |
CN110309029B true CN110309029B (zh) | 2023-09-26 |
Family
ID=68079603
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910581168.9A Active CN110309029B (zh) | 2019-06-29 | 2019-06-29 | 异常数据的采集方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110309029B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110781058B (zh) * | 2019-11-05 | 2023-07-18 | 北京博睿宏远数据科技股份有限公司 | 一种移动端应用性能数据采集方法、装置、设备及介质 |
CN111400294B (zh) * | 2020-03-12 | 2023-08-01 | 时时同云科技(成都)有限责任公司 | 数据异常监测方法、装置及系统 |
CN113835796A (zh) * | 2020-06-24 | 2021-12-24 | 北京字节跳动网络技术有限公司 | 用于处理信息的方法和装置 |
CN112114994B (zh) * | 2020-09-28 | 2024-02-27 | 严梅(北京)文化科技发展有限公司 | 异常处理方法、装置、设备及介质 |
CN112783734A (zh) * | 2021-02-02 | 2021-05-11 | 北京比特易湃信息技术有限公司 | 一种适用于前端页面性能和错误指标采集的系统 |
CN114510283A (zh) * | 2021-12-23 | 2022-05-17 | 贝壳找房网(北京)信息技术有限公司 | 页面加载方法、装置、电子设备及存储介质 |
CN114419756B (zh) * | 2022-01-30 | 2023-05-16 | 重庆长安汽车股份有限公司 | 一种动态捕获整车异常场景的方法及系统 |
CN114979158B (zh) * | 2022-05-23 | 2024-04-09 | 深信服科技股份有限公司 | 一种资源监控方法、系统、设备及计算机可读存储介质 |
CN116756053A (zh) * | 2023-08-22 | 2023-09-15 | 青岛民航凯亚系统集成有限公司 | 基于录屏回放的前端项目测试问题上报分配方法及系统 |
CN117555717B (zh) * | 2024-01-10 | 2024-04-26 | 深圳聚点互动科技有限公司 | 一种应用异常处理方法、终端及计算机存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104007990A (zh) * | 2014-05-30 | 2014-08-27 | 北京金山网络科技有限公司 | 一种网页加载方法及浏览器 |
CN104965871A (zh) * | 2015-06-09 | 2015-10-07 | 北京金山安全软件有限公司 | 页面的加载方法、装置和电子设备 |
CN107766509A (zh) * | 2017-10-23 | 2018-03-06 | 北京京东尚科信息技术有限公司 | 一种网页静态备份的方法和装置 |
-
2019
- 2019-06-29 CN CN201910581168.9A patent/CN110309029B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104007990A (zh) * | 2014-05-30 | 2014-08-27 | 北京金山网络科技有限公司 | 一种网页加载方法及浏览器 |
CN104965871A (zh) * | 2015-06-09 | 2015-10-07 | 北京金山安全软件有限公司 | 页面的加载方法、装置和电子设备 |
CN107766509A (zh) * | 2017-10-23 | 2018-03-06 | 北京京东尚科信息技术有限公司 | 一种网页静态备份的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110309029A (zh) | 2019-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110309029B (zh) | 异常数据的采集方法、装置、计算机设备和存储介质 | |
CN107704360B (zh) | 监控数据的处理方法、设备、服务器及存储介质 | |
CN109672580B (zh) | 全链路监控方法、装置、终端设备及存储介质 | |
CN108664793B (zh) | 一种检测漏洞的方法和装置 | |
CN104601601B (zh) | 网络爬虫的检测方法及装置 | |
US20150271202A1 (en) | Method, device, and system for detecting link layer hijacking, user equipment, and analyzing server | |
CN109656773B (zh) | 一种基于ios系统应用异常崩溃的处理框架 | |
CN105743730B (zh) | 为移动终端的网页服务提供实时监控的方法及其系统 | |
CN111176941B (zh) | 一种数据处理的方法、装置和存储介质 | |
RU2501073C2 (ru) | Работоспособность системы и поддержание производительности компьютерных устройств | |
CN107682361B (zh) | 网站漏洞扫描方法、装置、计算机设备及存储介质 | |
CN109684155B (zh) | 监控配置方法、装置、设备及可读存储介质 | |
CN109739711B (zh) | 一种接口测试方法、装置、设备和存储介质 | |
CN113407383B (zh) | 主备系统切换方法、装置、服务器及主备系统 | |
CN113760652B (zh) | 基于应用的全链路监控的方法、系统、设备和存储介质 | |
CN111984896A (zh) | 埋点数据采集方法、装置、计算机设备及可读存储介质 | |
CN111026581A (zh) | 应用程序的修复方法及装置、系统、存储介质、电子装置 | |
CN111147310A (zh) | 一种日志跟踪处理的方法、装置、服务器及介质 | |
CN111737207A (zh) | 展示、归集分布式系统中服务节点的日志的方法和装置 | |
CN115543827A (zh) | 一种埋点数据展示方法及装置 | |
CN113419935B (zh) | 移动端性能监控方法、装置、设备及存储介质 | |
CN107741891B (zh) | 对象的析构方法、介质、装置和计算设备 | |
WO2015195407A1 (en) | Method and apparatus for monitoring and determining page load times | |
CN114706733B (zh) | 切面程序异常的监控方法和装置 | |
CN114385457A (zh) | 应用程序数据采集方法、装置、设备及存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |