浏览器异常处理方法、装置及系统转让专利

申请号 : CN201410301162.9

文献号 : CN105320572B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 方敏阮宜德

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本发明涉及一种浏览器异常处理方法、装置及系统,其方法包括:统计浏览器启动后的用户操作行为数据;在检测到浏览器运行异常时,从统计的用户操作行为数据中,获取浏览器出现异常前预定时间段内的用户操作行为数据,上报至服务器;在浏览器因异常退出后,从服务器获取用户操作行为数据;根据用户操作行为数据,模拟用户操作行为,获取浏览器运行异常分析结果。本发明实施例可以最大程度复现用户操作过程,还原异常出现时的浏览器环境,达到快速复现浏览器异常问题,快速修复异常问题的目的。

权利要求 :

1.一种浏览器异常处理方法,其特征在于,包括:统计浏览器启动后的用户操作行为数据;

在检测到浏览器运行异常时,从统计的所述用户操作行为数据中,获取所述浏览器出现异常前预定时间段内的用户操作行为数据,上报至服务器;

在浏览器因异常退出后,从所述服务器获取所述用户操作行为数据;

根据从服务器获取的所述用户操作行为数据,模拟用户操作行为,获取浏览器运行异常分析结果;

其中,所述根据从服务器获取的所述用户操作行为数据,模拟用户操作行为,获取浏览器运行异常分析结果,包括:调用第三方工具,按照用户操作行为的时序,模拟浏览器异常退出前的用户操作路径,复现浏览器异常问题,分析复现的浏览器异常问题,获取浏览器运行异常分析结果。

2.根据权利要求1所述的方法,其特征在于,所述将用户操作行为数据上报至服务器的步骤之前还包括:对上报的用户操作行为数据进行编码;

所述从服务器获取所述用户操作行为数据的步骤之后还包括:解码从所述服务器获取的用户操作行为数据。

3.根据权利要求1所述的方法,其特征在于,还包括:根据所述浏览器运行异常分析结果,修复浏览器运行异常问题。

4.根据权利要求1所述的方法,其特征在于,所述用户操作行为数据包括用户对网页的操作行为数据和/或用户对浏览器界面的操作行为数据。

5.根据权利要求2所述的方法,其特征在于,所述在检测到浏览器运行异常时,从统计的所述用户操作行为数据中,获取所述浏览器出现异常前预定时间段内的用户操作行为数据,编码并上报至服务器的步骤包括:在检测到浏览器运行异常时,从统计的所述用户操作行为数据中,获取最靠近当前时间的预定数量的用户操作行为数据;

对获取的用户操作行为数据按照预定的编码规则进行编码处理;

将编码后的用户操作行为数据上报至服务器。

6.根据权利要求4所述的方法,其特征在于,所述根据用户操作行为数据,模拟用户操作行为,获取浏览器运行异常分析结果的步骤还包括:按照用户操作行为发生的时间,对解码后的用户操作行为数据进行时序排列。

7.根据权利要求6所述的方法,其特征在于,所述按照用户操作行为的时序,模拟浏览器异常退出前的用户操作路径,复现浏览器异常问题的步骤之前还包括:基于解码后的用户操作行为数据生成对应的操作指令;

所述按照用户操作行为的时序,模拟浏览器异常退出前的用户操作路径,复现浏览器异常问题的步骤包括:根据所述对应的操作指令,调用第三方工具,按照用户操作行为的时序,模拟浏览器异常退出前的用户操作路径,复现浏览器异常问题。

8.一种浏览器异常处理装置,其特征在于,包括:统计模块,用于统计浏览器启动后的用户操作行为数据;

上报模块,用于在检测到浏览器运行异常时,从统计的所述用户操作行为数据中,获取所述浏览器出现异常前预定时间段内的用户操作行为数据,上报至服务器;

获取模块,用于在浏览器因异常退出后,从所述服务器获取所述用户操作行为数据;

分析模块,用于根据从服务器获取的所述用户操作行为数据,模拟用户操作行为,获取浏览器运行异常分析结果;

其中,所述分析模块包括:

时序排列单元,用于按照用户操作行为发生的时间,对解码后的用户操作行为数据进行时序排列;

模拟单元,用于调用第三方工具,按照用户操作行为的时序,模拟浏览器异常退出前的用户操作路径,复现浏览器异常问题;

分析单元,用于分析复现的浏览器异常问题,获取浏览器运行异常分析结果。

9.根据权利要求8所述的装置,其特征在于,所述上报模块,还用于对上报的用户操作行为数据进行编码;

所述分析模块,还用于解码从所述服务器获取的用户操作行为数据。

10.根据权利要求8所述的装置,其特征在于,还包括:修复模块,用于根据所述浏览器运行异常分析结果,修复浏览器运行异常问题。

11.根据权利要求9所述的装置,其特征在于,所述上报模块包括:获取单元,用于在检测到浏览器运行异常时,从统计的所述用户操作行为数据中,获取最靠近当前时间的预定数量的用户操作行为数据;

编码单元,用于对获取的用户操作行为数据按照预定的编码规则进行编码处理;

上报单元,用于将编码后的用户操作行为数据上报至服务器。

12.根据权利要求11所述的装置,其特征在于,所述分析模块还包括:解码单元,用于解码从所述服务器获取的用户操作行为数据。

13.根据权利要求12所述的装置,其特征在于,所述分析模块还包括:指令生成单元,用于基于解码后的用户操作行为数据生成对应的操作指令;

所述模拟单元,还用于根据所述对应的操作指令,调用第三方工具,按照用户操作行为的时序,模拟浏览器异常退出前的用户操作路径,复现浏览器异常问题。

14.一种浏览器异常处理系统,其特征在于,包括:客户端和与所述客户端通信连接的服务器,其中:所述客户端包括权利要求8-13中任一项所述的装置;

所述服务器,用于在浏览器运行异常时,接收客户端上报的用户操作行为数据,以及,在浏览器因异常退出后,向所述客户端下发所述用户操作行为数据。

说明书 :

浏览器异常处理方法、装置及系统

技术领域

[0001] 本发明涉及互联网技术领域,尤其涉及一种浏览器异常处理方法、装置及系统。

背景技术

[0002] 手机浏览器在运行过程中,用户可执行打开网页、点击浏览网页内容、滑动屏幕、关闭窗口、设置菜单等操作。在执行这些操作的过程中,如果浏览器发生问题导致被强制退出后,应用程序会主动记录浏览器异常退出时上下文信息,便于开发人员在下一个版本前解决该类问题。
[0003] 但是对于开发人员而言,这些异常上报信息的可利用率很低,因为目前手机浏览器上报异常内容通常包括异常类型及堆栈信息,通过捕获JAVA或C++异常信息,保存成字符串通过服务器中转到开发人员。但是,现有的这种方案仅保存了浏览器异常退出后的堆栈和几个主要寄存器的值,通过符号表还原堆栈的代码信息,通过分析代码和寄存器情况来分析导致浏览器崩溃的原因,而这些信息都是静态信息,分析模式过于依赖对代码的熟悉程度和经验,开发人员不知道用户操作了什么,访问了什么网站出现了问题,也极难确认是浏览器导致的问题还是网站或者其他第三方应用引起的浏览器被迫退出。因此,仅仅分析异常退出时的代码,不能找到复现路径,导致最终放弃问题的修复或者采取猜测性方案修复问题,或者采用规避方式来解决,而真正的原因被隐藏起来,这种解决问题的模式给下一个版本的稳定性又带来新的风险,风险的累加让后续出现的异常问题更难分析解决,加大了对下一个版本的bug修复的难度,无法从根本上解决问题。

发明内容

[0004] 本发明实施例提供一种浏览器异常处理方法、装置及系统,旨在快速分析浏览器异常产生原因,以快速修复异常问题。
[0005] 本发明实施例提出一种浏览器异常处理方法,包括:
[0006] 统计浏览器启动后的用户操作行为数据;
[0007] 在检测到浏览器运行异常时,从统计的所述用户操作行为数据中,获取所述浏览器出现异常前预定时间段内的用户操作行为数据,上报至服务器;
[0008] 在浏览器因异常退出后,从所述服务器获取所述用户操作行为数据;
[0009] 根据从服务器获取的所述用户操作行为数据,模拟用户操作行为,获取浏览器运行异常分析结果。
[0010] 本发明实施例还提出一种浏览器异常处理装置,包括:
[0011] 统计模块,用于统计浏览器启动后的用户操作行为数据;
[0012] 上报模块,用于在检测到浏览器运行异常时,从统计的所述用户操作行为数据中,获取所述浏览器出现异常前预定时间段内的用户操作行为数据,上报至服务器;
[0013] 获取模块,用于在浏览器因异常退出后,从所述服务器获取所述用户操作行为数据;
[0014] 分析模块,用于根据从服务器获取的所述用户操作行为数据,模拟用户操作行为,获取浏览器运行异常分析结果。
[0015] 本发明实施例还提出一种浏览器异常处理系统,包括:客户端和与所述客户端通信连接的服务器,其中:所述客户端包括如上所述的装置;所述服务器用于在浏览器运行异常时,接收客户端上报的用户操作行为数据,以及,在浏览器因异常退出后,向所述客户端下发所述用户操作行为数据。
[0016] 本发明实施例提出的一种浏览器异常处理方法、装置及系统,在浏览器运行异常时,统计并上报用户近期操作行为,直接定位出问题的页面和导致出现问题的行为,以最大程度复现用户操作过程,模拟浏览器异常退出前的真实信息,还原异常出现时的浏览器环境,达到快速复现浏览器异常问题,便于开发者快速分析浏览器异常产生原因并快速修复异常问题的目的,减少了浏览器异常处理中的不确定性,并利于浏览器下一个版本的异常修复,提高产品的交互性能。

附图说明

[0017] 图1是本发明浏览器异常处理系统较佳实施例的架构示意图;
[0018] 图2是本发明浏览器异常处理方法第一实施例的流程示意图;
[0019] 图3是本发明实施例解码从服务器获取的用户操作行为数据,根据解码后的用户操作行为数据,模拟用户操作行为,获取浏览器运行异常分析结果的一种流程示意图;
[0020] 图4是本发明实施例解码从服务器获取的用户操作行为数据,根据解码后的用户操作行为数据,模拟用户操作行为,获取浏览器运行异常分析结果的另一种流程示意图;
[0021] 图5是本发明浏览器异常处理方法第二实施例的流程示意图;
[0022] 图6是本发明浏览器异常处理装置第一实施例的功能模块示意图;
[0023] 图7是本发明实施例中编码上报模块的一种结构示意图;
[0024] 图8是本发明实施例中解码分析模块的一种结构示意图;
[0025] 图9是本发明实施例中解码分析模块的另一种结构示意图;
[0026] 图10是本发明浏览器异常处理装置第二实施例的功能模块示意图;
[0027] 图11是本发明实施例浏览器异常处理装置所在终端的一种结构示意图。
[0028] 为了使本发明的技术方案更加清楚、明了,下面将结合附图作进一步详述。

具体实施方式

[0029] 应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0030] 本发明实施例的主要解决方案是:在浏览器运行异常时,统计并上报用户近期操作行为,直接定位出问题的页面和导致出现问题的行为,以最大程度复现用户操作过程,模拟浏览器异常退出前的真实信息,还原异常出现时的浏览器环境,达到快速复现浏览器异常问题,便于开发者快速分析浏览器异常产生原因并快速修复异常问题的目的,减少了浏览器异常处理中的不确定性,并利于浏览器下一个版本的异常修复,提高产品的交互性能。
[0031] 如图1所示,本发明较佳实施例提出一种浏览器异常处理系统,包括:客户端102和与所述客户端102通信连接的服务器101;其中:
[0032] 所述客户端102,用于统计浏览器启动后的用户操作行为数据;在检测到浏览器运行异常时,从统计的所述用户操作行为数据中,获取所述浏览器出现异常前预定时间段内的用户操作行为数据,编码并上报至服务器;在浏览器因异常退出后,从所述服务器获取所述用户操作行为数据;重新启动浏览器,解码从所述服务器获取的用户操作行为数据,根据解码后的用户操作行为数据,模拟用户操作行为,获取浏览器运行异常分析结果。
[0033] 所述服务器101,用于在浏览器运行异常时,接收客户端102上报的用户操作行为数据,以及,在浏览器因异常退出后,向所述客户端102下发所述用户操作行为数据。
[0034] 具体地,本实施例客户端102可以为PC客户端,也可以为手机、平板电脑等具有网页浏览功能的移动终端。
[0035] 在用户通过浏览器访问网页的操作过程中,浏览器发生异常导致被强制退出后,现有方案虽然会通过应用主动记录浏览器异常退出时的上下文信息,便于开发人员在下一个版本前解决该类问题。但是,对开发人员而言,这些异常上报的信息的可利用率很低,仅仅分析异常退出时的代码,不能复现问题,导致放弃修复或者采取猜测性方案修复问题,这种解决问题的模式给下一个版本的稳定性又带来新的风险,而风险的累加让后续出现的异常问题更难分析解决。
[0036] 本实施例基于上述情况,考虑在浏览器运行异常时,上报统计的用户近期操作行为,直接定位出问题的页面和导致出现问题的行为,以最大程度复现用户操作过程,模拟浏览器异常退出前的真实信息,还原异常出现时的浏览器环境,达到快速复现浏览器异常问题,从而高效解决问题的目的。
[0037] 具体地,首先,客户端102在浏览器启动后,统计用户的操作行为数据。其中,用户对网页的操作行为包括:打开/关闭网页、网页内点击、长按页面、滚动页面、前后页滑动等行为。对于这类操作行为,需要保存的数据是操作的网页地址和位置。例如,用户点击了网页内的一个链接,则保存了这个链接的地址和这个标签在网页内的坐标(X,Y)位置。
[0038] 用户对浏览器界面的操作行为包括:打开/关闭浏览器、选择浏览器底部菜单、操作地址栏、操作home页、操作设置项、选择右键菜单、操作手机硬件前进/后退/home等行为。对于这类操作行为,需要保存的数据是操作的行为ID和设置的内容值。例如,用户操作了夜间模式的菜单,则需要保存页面模式的菜单ID和用户设置的是日间还是夜间这个内容值。
[0039] 在浏览器启动后,统计用户操作行为数据并保存,以便在浏览器运行异常时,根据统计的用户操作行为数据进行问题复现和异常分析与修复。其中,对用户操作行为数据的统计方式可以是实时统计,也可以采用定期统计的方式,比如间隔一定时间进行统计,或者采用其他方式。
[0040] 当检测到浏览器运行异常时,在浏览器强制退出前,从统计的用户操作行为数据中,获取最靠近当前时间的预定数量的用户操作行为数据,并对获取的用户操作行为数据按照预定的编码规则进行编码处理;将编码后的用户操作行为数据上报至服务器101。
[0041] 比如,当浏览器运行异常,在要强制退出前,将统计保存的用户操作行为数据中最靠近当前日期的10个用户操作行为数据进行编码后上报到服务器101。
[0042] 其中,对用户操作行为数据进行编码是考虑到流量问题,可以将上报的数据内容控制在30K以内。
[0043] 另外,上述编码规则可以采用以下方式:对各用户操作行为定义统一ID,例如:点击事件是00,长按事件是01等。
[0044] 上报的数据格式可以为:[ID][操作时间][具体行为ID][内容][...]。
[0045] 当用户运行浏览器出现崩溃后,服务器101将收集到的统计数据下发到终端数据库。开发人员可以从终端数据库快速获取浏览器异常出现后的数据,并根据数据分析用户通过浏览器访问网页遇到的问题,以便快速修复异常问题。
[0046] 具体地,首先,通过脚本或者java代码解码服务器101下发的用户操作行为数据,将用户操作行为数据ID还原成开发人员能看懂的用户行为,并按用户操作行为发生时间进行循序排列。开发人员可以按照解码后的事件时序模拟用户操作,也可以利用第三方工具,将数据生成相应的指令输入到工具实现终端自动模拟用户操作,从而可以最大程度复现用户操作过程,模拟浏览器异常退出前的真实信息,还原异常出现时的浏览器环境,达到快速复现浏览器异常问题,便于开发者快速分析浏览器异常产生原因并快速修复异常问题的目的,减少了浏览器异常处理中的不确定性,并利于浏览器下一个版本的异常修复,提高产品的交互性能。
[0047] 如图2所示,本发明第一实施例提出一种浏览器异常处理方法,包括:
[0048] 步骤S201,统计浏览器启动后的用户操作行为数据;
[0049] 其中,用户操作行为数据包括两方面数据,用户对网页的操作行为数据和用户对浏览器界面的操作行为数据,也可以为上述两方面数据中的一种数据。
[0050] 其中,用户对网页的操作行为包括:打开/关闭网页、网页内点击、长按页面、滚动页面、前后页滑动等行为。对于这类操作行为,需要保存的数据是操作的网页地址和位置。例如,用户点击了网页内的一个链接,则保存了这个链接的地址和这个标签在网页内的坐标(X,Y)位置。
[0051] 用户对浏览器界面的操作行为包括:打开/关闭浏览器、选择浏览器底部菜单、操作地址栏、操作home页、操作设置项、选择右键菜单、操作手机硬件前进/后退/home等行为。对于这类操作行为,需要保存的数据是操作的行为ID和设置的内容值。例如,用户操作了夜间模式的菜单,则需要保存页面模式的菜单ID和用户设置的是日间还是夜间这个内容值。
[0052] 在浏览器启动后,统计用户操作行为数据并保存,以便在浏览器运行异常时,根据统计的用户操作行为数据进行问题复现和异常分析与修复。其中,对用户操作行为数据的统计方式可以是实时统计,也可以采用定期统计的方式,比如间隔一定时间进行统计,或者采用其他方式。
[0053] 步骤S202,在检测到浏览器运行异常时,从统计的用户操作行为数据中,获取所述浏览器出现异常前预定时间段内的用户操作行为数据,编码并上报至服务器;
[0054] 当检测到浏览器运行异常时,在浏览器强制退出前,从统计的用户操作行为数据中,获取最靠近当前时间的预定数量的用户操作行为数据,并对获取的用户操作行为数据按照预定的编码规则进行编码处理;将编码后的用户操作行为数据上报至服务器。
[0055] 比如,当浏览器运行异常,在要强制退出前,将统计保存的用户操作行为数据中最靠近当前日期的10个用户操作行为数据进行编码后上报到服务器。
[0056] 其中,对用户操作行为数据进行编码是考虑到流量问题,可以将上报的数据内容控制在30K以内。
[0057] 另外,上述编码规则可以采用以下方式:对各用户操作行为定义统一ID,例如:点击事件是00,长按事件是01等。
[0058] 上报的数据格式可以为:[ID][操作时间][具体行为ID][内容][...]。
[0059] 步骤S203,在浏览器因异常退出后,从所述服务器获取所述用户操作行为数据;
[0060] 步骤S204,解码从所述服务器获取的用户操作行为数据,根据解码后的用户操作行为数据,模拟用户操作行为,获取浏览器运行异常分析结果。
[0061] 当用户运行浏览器出现崩溃后,服务器将收集到的统计数据下发到终端数据库。开发人员可以从终端数据库快速获取浏览器异常出现后的数据,并根据数据分析用户通过浏览器访问网页遇到的问题,以便快速修复异常问题。
[0062] 具体地,首先,通过脚本或者java代码解码服务器下发的用户操作行为数据,将用户操作行为数据ID还原成开发人员能看懂的用户行为,并按用户操作行为发生时间进行循序排列。开发人员可以按照解码后的事件时序模拟用户操作,也可以利用第三方工具,将数据生成相应的指令输入到工具实现终端自动模拟用户操作,从而可以最大程度复现用户操作过程,模拟浏览器异常退出前的真实信息,还原异常出现时的浏览器环境,达到快速复现浏览器异常问题,便于开发者快速分析浏览器异常产生原因并快速修复异常问题的目的,减少了浏览器异常处理中的不确定性,并利于浏览器下一个版本的异常修复,提高产品的交互性能。
[0063] 更为具体地,如图3所示,作为一种实施方式,上述步骤S204:解码从所述服务器获取的用户操作行为数据,根据解码后的用户操作行为数据,模拟用户操作行为,获取浏览器运行异常分析结果的步骤可以包括:
[0064] 步骤S2041,解码从所述服务器获取的用户操作行为数据;
[0065] 步骤S2042,按照用户操作行为发生的时间,对解码后的用户操作行为数据进行时序排列;
[0066] 步骤S2043,按照用户操作行为的时序,模拟浏览器异常退出前的用户操作路径,复现浏览器异常问题;
[0067] 步骤S2044,分析复现的浏览器异常问题,获取浏览器运行异常分析结果。
[0068] 如图4所示,作为另一种实施方式,上述步骤S204:解码从所述服务器获取的用户操作行为数据,根据解码后的用户操作行为数据,模拟用户操作行为,获取浏览器运行异常分析结果的步骤可以包括:
[0069] 步骤S2041,解码从所述服务器获取的用户操作行为数据;
[0070] 步骤S2042,按照用户操作行为发生的时间,对解码后的用户操作行为数据进行时序排列;
[0071] 步骤S2045,基于解码后的用户操作行为数据生成对应的操作指令;
[0072] 步骤S2046,根据所述对应的操作指令,调用第三方工具,按照用户操作行为的时序,模拟浏览器异常退出前的用户操作路径,复现浏览器异常问题;
[0073] 步骤S2044,分析复现的浏览器异常问题,获取浏览器运行异常分析结果。
[0074] 本实施例通过统计上报用户行为数据,在增强静态代码分析异常问题的能力的同时,添加了一种动态分析用户问题的途径。利用最大程度复现用户操作过程,模拟异常退出前的真实信息,还原异常出现时的浏览器环境,给开发者提供了较为充足的真实数据,很大程度缓解了之前大部分异常上报无法复现导致不能解决异常的问题。开发者利用本实施例方案可以快速分析并修复用户问题,减少了浏览器异常处理中的不确定性,对于下一个版本的异常修复帮助极大,同时也改善了用户对产品的体验,增强了用户对产品的满意度。
[0075] 需要说明的是,上述实施例中,对用户操作行为数据进行编解码操作,主要是为了减少上报至服务器的数据处理流量,提高数据处理效率。当然,在其它实施例中,也可以无需对用户操作行为数据进行编码即上报至服务器,后续,从服务器获取用户操作行为数据后,也无需进行解码操作。
[0076] 如图5所示,本发明第二实施例提出一种浏览器异常处理方法,在上述图2所示的第一实施例的基础上,在上述步骤S204之后,还可以包括:
[0077] 步骤S205,根据所述浏览器运行异常分析结果,修复浏览器运行异常问题。
[0078] 本实施例与上述图2所示的第一实施例的区别在于,本实施例还包括根据浏览器运行异常分析结果,修复浏览器运行异常问题的方案。
[0079] 具体地,在通过复现用户操作过程,模拟浏览器异常退出前的真实信息,还原异常出现时的浏览器环境,分析复现的浏览器异常问题,获取浏览器运行异常分析结果之后,可以采取相应的修复手段,对浏览器运行异常问题进行针对性的修复。比如,通过分析结果得知,在浏览器出现异常前,用户对浏览器的操作过程,用户访问了什么网站出现了问题,从而可以快速确认是浏览器导致的问题还是网站或者其他第三方应用引起的浏览器被迫退出。进而可以根据异常分析结果,修复浏览器运行异常问题,保证浏览器的正常运行,同时减少浏览器异常处理中的不确定性,并利于浏览器下一个版本的异常修复,提高产品的交互性能。
[0080] 如图6所示,本发明第一实施例提出一种浏览器异常处理装置,包括:统计模块301、编码上报模块302、获取模块303及解码分析模块304,其中:
[0081] 统计模块301,用于统计浏览器启动后的用户操作行为数据;
[0082] 上报模块302,用于在检测到浏览器运行异常时,从统计的所述的用户操作行为数据中,获取所述浏览器出现异常前预定时间段内的用户操作行为数据,编码并上报至服务器;
[0083] 获取模块303,用于在浏览器因异常退出后,从所述服务器获取所述用户操作行为数据;
[0084] 分析模块304,用于解码从所述服务器获取的用户操作行为数据,根据解码后的用户操作行为数据,模拟用户操作行为,获取浏览器运行异常分析结果。
[0085] 具体地,用户操作行为数据包括两方面数据,用户对网页的操作行为数据和用户对浏览器界面的操作行为数据,也可以为上述两方面数据中的一种数据。
[0086] 其中,用户对网页的操作行为包括:打开/关闭网页、网页内点击、长按页面、滚动页面、前后页滑动等行为。对于这类操作行为,需要保存的数据是操作的网页地址和位置。例如,用户点击了网页内的一个链接,则保存了这个链接的地址和这个标签在网页内的坐标(X,Y)位置。
[0087] 用户对浏览器界面的操作行为包括:打开/关闭浏览器、选择浏览器底部菜单、操作地址栏、操作home页、操作设置项、选择右键菜单、操作手机硬件前进/后退/home等行为。对于这类操作行为,需要保存的数据是操作的行为ID和设置的内容值。例如,用户操作了夜间模式的菜单,则需要保存页面模式的菜单ID和用户设置的是日间还是夜间这个内容值。
[0088] 在浏览器启动后,统计用户操作行为数据并保存,以便在浏览器运行异常时,根据统计的用户操作行为数据进行问题复现和异常分析与修复。其中,对用户操作行为数据的统计方式可以是实时统计,也可以采用定期统计的方式,比如间隔一定时间进行统计,或者采用其他方式。
[0089] 当检测到浏览器运行异常时,在浏览器强制退出前,从统计的用户操作行为数据中,获取最靠近当前时间的预定数量的用户操作行为数据,并对获取的用户操作行为数据按照预定的编码规则进行编码处理;将编码后的用户操作行为数据上报至服务器。
[0090] 比如,当浏览器运行异常,在要强制退出前,将统计保存的用户操作行为数据中最靠近当前日期的10个用户操作行为数据进行编码后上报到服务器。
[0091] 其中,对用户操作行为数据进行编码是考虑到流量问题,可以将上报的数据内容控制在30K以内。
[0092] 另外,上述编码规则可以采用以下方式:对各用户操作行为定义统一ID,例如:点击事件是00,长按事件是01等。
[0093] 上报的数据格式可以为:[ID][操作时间][具体行为ID][内容][...]。
[0094] 当用户运行浏览器出现崩溃后,服务器将收集到的统计数据下发到终端数据库。开发人员可以从终端数据库快速获取浏览器异常出现后的数据,并根据数据分析用户通过浏览器访问网页遇到的问题,以便快速修复异常问题。
[0095] 具体地,首先,通过脚本或者java代码解码服务器下发的用户操作行为数据,将用户操作行为数据ID还原成开发人员能看懂的用户行为,并按用户操作行为发生时间进行循序排列。开发人员可以按照解码后的事件时序模拟用户操作,也可以利用第三方工具,将数据生成相应的指令输入到工具实现终端自动模拟用户操作,从而可以最大程度复现用户操作过程,模拟浏览器异常退出前的真实信息,还原异常出现时的浏览器环境,达到快速复现浏览器异常问题,便于开发者快速分析浏览器异常产生原因并快速修复异常问题的目的,减少了浏览器异常处理中的不确定性,并利于浏览器下一个版本的异常修复,提高产品的交互性能。
[0096] 更为具体地,如图7所示,所述上报模块302包括:获取单元3021、编码单元3022及上报单元3023,其中:
[0097] 获取单元3021,用于在检测到浏览器运行异常时,从统计的所述用户操作行为数据中,获取最靠近当前时间的预定数量的用户操作行为数据;
[0098] 编码单元3022,用于对获取的用户操作行为数据按照预定的编码规则进行编码处理;
[0099] 上报单元3023,用于将编码后的用户操作行为数据上报至服务器。
[0100] 如图8所示,所述分析模块304包括:解码单元3041、时序排列单元3042、模拟单元3043及分析单元3044,其中:
[0101] 解码单元3041,用于解码从所述服务器获取的用户操作行为数据;
[0102] 时序排列单元3042,用于按照用户操作行为发生的时间,对解码后的用户操作行为数据进行时序排列;
[0103] 模拟单元3043,用于按照用户操作行为的时序,模拟浏览器异常退出前的用户操作路径,复现浏览器异常问题;
[0104] 分析单元3044,用于分析复现的浏览器异常问题,获取浏览器运行异常分析结果。
[0105] 进一步地,如图9所示,所述分析模块304还可以包括:
[0106] 指令生成单元3045,用于基于解码后的用户操作行为数据生成对应的操作指令;
[0107] 所述模拟单元3043,还用于根据所述对应的操作指令,调用第三方工具,按照用户操作行为的时序,模拟浏览器异常退出前的用户操作路径,复现浏览器异常问题。
[0108] 需要说明的是,上述实施例中,对用户操作行为数据进行编解码操作,主要是为了减少上报至服务器的数据处理流量,提高数据处理效率。当然,在其它实施例中,也可以无需对用户操作行为数据进行编码即上报至服务器,后续,从服务器获取用户操作行为数据后,也无需进行解码操作。
[0109] 本实施例通过统计上报用户行为数据,在增强静态代码分析异常问题的能力的同时,添加了一种动态分析用户问题的途径。利用最大程度复现用户操作过程,模拟异常退出前的真实信息,还原异常出现时的浏览器环境,给开发者提供了较为充足的真实数据,很大程度缓解了之前大部分异常上报无法复现导致不能解决异常的问题。开发者利用本实施例方案可以快速分析并修复用户问题,减少了浏览器异常处理中的不确定性,对于下一个版本的异常修复帮助极大,同时也改善了用户对产品的体验,增强了用户对产品的满意度。
[0110] 如图10所示,本发明第二实施例提出一种浏览器异常处理装置,在上述图6所示的第一实施例的基础上,还包括:
[0111] 修复模块305,用于根据所述浏览器运行异常分析结果,修复浏览器运行异常问题。
[0112] 本实施例与上述图6所示的第一实施例的区别在于,本实施例还包括根据浏览器运行异常分析结果,修复浏览器运行异常问题的方案。
[0113] 具体地,在通过复现用户操作过程,模拟浏览器异常退出前的真实信息,还原异常出现时的浏览器环境,分析复现的浏览器异常问题,获取浏览器运行异常分析结果之后,可以采取相应的修复手段,对浏览器运行异常问题进行针对性的修复。比如,通过分析结果得知,在浏览器出现异常前,用户对浏览器的操作过程,用户访问了什么网站出现了问题,从而可以快速确认是浏览器导致的问题还是网站或者其他第三方应用引起的浏览器被迫退出。进而可以根据异常分析结果,修复浏览器运行异常问题,保证浏览器的正常运行,同时减少浏览器异常处理中的不确定性,并利于浏览器下一个版本的异常修复,提高产品的交互性能。
[0114] 如图11所示,图11是本发明实施例提出的浏览器异常处理装置所在终端的一种结构示意图。
[0115] 如图11所示,该终端可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。
用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立前述处理器1001设置的存储装置。如图11所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及浏览器异常处理程序。
[0116] 在图11所示的终端中,网络接口1004主要用于连接服务器,与服务器进行数据通信;用户接口1003主要用于连接客户端,与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的浏览器异常处理程序,并执行以下操作:
[0117] 通过用户接口1003与客户端进行交互,统计浏览器启动后的用户操作行为数据;在检测到浏览器运行异常时,从统计的所述用户操作行为数据中,获取所述浏览器出现异常前预定时间段内的用户操作行为数据,编码并通过网络接口1004上报至服务器;在浏览器因异常退出后,从所述服务器获取所述用户操作行为数据;解码从所述服务器获取的用户操作行为数据,根据解码后的用户操作行为数据,模拟用户操作行为,获取浏览器运行异常分析结果。
[0118] 在一个实施例中,处理器1001调用存储器1005中存储的浏览器异常处理程序可以执行以下操作:
[0119] 根据所述浏览器运行异常分析结果,修复浏览器运行异常问题。
[0120] 在一个实施例中,处理器1001调用存储器1005中存储的浏览器异常处理程序可以执行以下操作:
[0121] 在检测到浏览器运行异常时,从统计的所述用户操作行为数据中,获取最靠近当前时间的预定数量的用户操作行为数据;对获取的用户操作行为数据按照预定的编码规则进行编码处理;将编码后的用户操作行为数据上报至服务器。
[0122] 在一个实施例中,处理器1001调用存储器1005中存储的浏览器异常处理程序可以执行以下操作:
[0123] 解码从所述服务器获取的用户操作行为数据;按照用户操作行为发生的时间,对解码后的用户操作行为数据进行时序排列;按照用户操作行为的时序,模拟浏览器异常退出前的用户操作路径,复现浏览器异常问题;分析复现的浏览器异常问题,获取浏览器运行异常分析结果。
[0124] 在一个实施例中,处理器1001调用存储器1005中存储的浏览器异常处理程序可以执行以下操作:
[0125] 基于解码后的用户操作行为数据生成对应的操作指令;所述按照用户操作行为的时序,模拟浏览器异常退出前的用户操作路径,复现浏览器异常问题的步骤包括:根据所述对应的操作指令,调用第三方工具,按照用户操作行为的时序,模拟浏览器异常退出前的用户操作路径,复现浏览器异常问题。
[0126] 本实施例通过上述方案,在浏览器运行异常时,统计并上报用户近期操作行为,直接定位出问题的页面和导致出现问题的行为,以最大程度复现用户操作过程,模拟浏览器异常退出前的真实信息,还原异常出现时的浏览器环境,达到快速复现浏览器异常问题,便于开发者快速分析浏览器异常产生原因并快速修复异常问题的目的,减少了浏览器异常处理中的不确定性,并利于浏览器下一个版本的异常修复,提高产品的交互性能。
[0127] 还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0128] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0129] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0130] 以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。