CN112650658A - 应用程序的异常记录和复现方法、装置及存储介质 - Google Patents
应用程序的异常记录和复现方法、装置及存储介质 Download PDFInfo
- Publication number
- CN112650658A CN112650658A CN202011502802.4A CN202011502802A CN112650658A CN 112650658 A CN112650658 A CN 112650658A CN 202011502802 A CN202011502802 A CN 202011502802A CN 112650658 A CN112650658 A CN 112650658A
- Authority
- CN
- China
- Prior art keywords
- application program
- exception
- recurrence
- abnormal state
- running
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3438—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及数据处理技术领域,揭露一种应用程序的异常记录和复现方法,包括:定位应用程序的所有操作事件,并对应用程序的每个操作事件设置对应的监控节点;根据监控节点获取应用程序运行时触发的每个操作事件的信息和对应的触发时间并生成用户行为记录;实时监控应用程序运行时是否出现异常状态,若应用程序未出现异常状态,在应用程序结束运行后删除用户行为记录;若应用程序出现异常状态,停止运行应用程序并将用户行为记录写入运行日志生成异常日志;根据异常状态和异常日志生成复现文档,根据复现文档对应用程序进行分析获取导致应用程序异常的原因。本发明的应用程序的异常记录和复现方法,提升了应用程序测试和纠错的效率。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种应用程序的异常记录和复现方法、电子装置及计算机可读存储介质。
背景技术
随着应用程序的复杂程度提升,市场竞争越来越大,应用程序的线上异常得到越来越多的人重视,线上日志也愈发被重视。线上日志不仅可以供开发人员修改代码上出现的异常,也能反映出用户在使用应用程序时常见的状况。但是,应用程序运行时有时会出现一些随机的异常,或是复杂、隐晦的异常,开发人员很难通过日志去追踪异常和发现异常的根源,需要测试人员配合或者开发人员自己去复现。由于用户操作的复杂性,导致一些随机或是复杂、隐晦的异常很难复现。
目前市面上的线上回传日志,一般都是自定义或者根据系统打印的log写入到文件中,触发一定条件后上传。但是这方式很难知道用户的操作流程,也很难复现异常,增加了异常的解决难度,也不容易排查异常。
发明内容
鉴于以上内容,有必要提供一种应用程序的异常记录和复现方法,用于自动高效地记录异常信息并复现相关的用户操作。
本发明提供的应用程序的异常记录和复现方法,包括:
定位应用程序的所有操作事件,并对所述应用程序的每个操作事件设置对应的监控节点;
根据所述监控节点对所述应用程序的所有操作事件进行监控,获取所述应用程序运行时触发的每个操作事件的信息和对应的触发时间,根据所述应用程序运行时触发的操作事件的信息和触发时间生成用户行为记录;
实时监控所述应用程序运行时是否出现异常状态,若所述应用程序未出现异常状态,在所述应用程序结束运行后删除所述用户行为记录;若所述应用程序出现异常状态,停止运行所述应用程序并将所述用户行为记录写入运行日志生成异常日志;
根据所述异常状态和所述异常日志生成复现文档,根据所述复现文档对所述应用程序进行分析获取导致所述应用程序异常的原因,所述复现文档包括所述应用程序运行时出现的异常状态以及从所述应用程序开始运行到出现异常状态的时间段中触发的操作事件的信息和触发时间。
可选地,所述对所述应用程序的每个操作事件设置对应的监控节点包括:
为所述应用程序的每个操作事件设置对应的具有唯一性的标识作为监控节点。
可选地,所述根据所述应用程序运行时触发的操作事件的信息和触发时间生成用户行为记录包括:
将所述应用程序运行时触发的每个操作事件对应的监控节点和触发时间作为一组数据按触发顺序写入预设的缓存存储器;
在所述应用程序结束运行后将所述预设的缓存存储器存储的一组或多组数据按先进先出的顺序生成本次用户行为记录。
可选地,若所述应用程序出现异常状态,停止运行所述应用程序并将所述用户行为记录写入运行日志生成异常日志之后,还包括:
删除所述预设的缓存存储器存储的数据。
可选地,所述应用程序的异常状态包括代码异常和系统异常。
可选地,所述实时监控所述应用程序运行时是否出现异常状态包括:
根据预设的语法和全局函数记录所述应用程序运行时出现的代码异常;
从所述应用程序的运行日志中获取系统错误提示以记录所述应用程序的系统异常。
可选地,所述根据所述复现文档对所述应用程序进行分析获取导致所述应用程序异常的原因包括:
获取所述复现文档中从所述应用程序开始运行到出现异常状态的时间段中触发的多个操作事件的信息和触发时间;
重复运行所述应用程序并按所述触发时间顺序执行所述时间段中触发的多个操作事件,且在每次运行所述应用程序时依次删除所述时间段中触发的多个操作事件中的一个操作事件;
根据每次运行执行的操作事件的信息以及每次运行所述应用程序时是否出现所述异常状态,筛选出导致所述应用程序出现所述异常状态的操作事件作为原因展示。
此外,为实现上述目的,本发明还提供一种电子装置,该电子装置包括:存储器、处理器,所述存储器上存储有可在所述处理器上运行的应用程序的异常记录和复现程序,所述应用程序的异常记录和复现程序被所述处理器执行时实现如下所述的应用程序的异常记录和复现方法的步骤:
定位应用程序的所有操作事件,并对所述应用程序的每个操作事件设置对应的监控节点;
根据所述监控节点对所述应用程序的所有操作事件进行监控,获取所述应用程序运行时触发的每个操作事件的信息和对应的触发时间,根据所述应用程序运行时触发的操作事件的信息和触发时间生成用户行为记录;
实时监控所述应用程序运行时是否出现异常状态,若所述应用程序未出现异常状态,在所述应用程序结束运行后删除所述用户行为记录;若所述应用程序出现异常状态,停止运行所述应用程序并将所述用户行为记录写入运行日志生成异常日志;
根据所述异常状态和所述异常日志生成复现文档,根据所述复现文档对所述应用程序进行分析获取导致所述应用程序异常的原因,所述复现文档包括所述应用程序运行时出现的异常状态以及从所述应用程序开始运行到出现异常状态的时间段中触发的操作事件的信息和触发时间。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有应用程序的异常记录和复现程序,所述应用程序的异常记录和复现程序可被一个或者多个处理器执行,以实现如下所述的应用程序的异常记录和复现方法的步骤:
定位应用程序的所有操作事件,并对所述应用程序的每个操作事件设置对应的监控节点;
根据所述监控节点对所述应用程序的所有操作事件进行监控,获取所述应用程序运行时触发的每个操作事件的信息和对应的触发时间,根据所述应用程序运行时触发的操作事件的信息和触发时间生成用户行为记录;
实时监控所述应用程序运行时是否出现异常状态,若所述应用程序未出现异常状态,在所述应用程序结束运行后删除所述用户行为记录;若所述应用程序出现异常状态,停止运行所述应用程序并将所述用户行为记录写入运行日志生成异常日志;
根据所述异常状态和所述异常日志生成复现文档,根据所述复现文档对所述应用程序进行分析获取导致所述应用程序异常的原因,所述复现文档包括所述应用程序运行时出现的异常状态以及从所述应用程序开始运行到出现异常状态的时间段中触发的操作事件的信息和触发时间。
此外,为实现上述目的,本发明还提供一种应用程序的异常记录和复现装置,该装置包括:
事件定位模块:用于定位应用程序的所有操作事件,并对所述应用程序的每个操作事件设置对应的监控节点;
行为记录模块:用于根据所述监控节点对所述应用程序的所有操作事件进行监控,获取所述应用程序运行时触发的每个操作事件的信息和对应的触发时间,根据所述应用程序运行时触发的操作事件的信息和触发时间生成用户行为记录;
日志获取模块:用于实时监控所述应用程序运行时是否出现异常状态,若所述应用程序未出现异常状态,在所述应用程序结束运行后删除所述用户行为记录;若所述应用程序出现异常状态,停止运行所述应用程序并将所述用户行为记录写入运行日志生成异常日志;
异常复现模块:用于根据所述异常状态和所述异常日志生成复现文档,根据所述复现文档对所述应用程序进行分析获取导致所述应用程序异常的原因,所述复现文档包括所述应用程序运行时出现的异常状态以及从所述应用程序开始运行到出现异常状态的时间段中触发的操作事件的信息和触发时间。
相较现有技术,本发明通过设置监控节点对应用程序的操作事件进行实时监控,在应用程序出现异常状态时,将应用程序运行时触发的操作事件的信息和触发时间写入异常日志,根据应用程序出现的异常状态和异常日志复现用户操作,重复多次运行应用程序以获取导致所述应用程序异常的原因,提升了应用程序测试和纠错的效率。
附图说明
图1为本发明应用程序的异常记录和复现方法一实施例的流程图;
图2为本发明电子装置一实施例的示意图;
图3为本发明应用程序的异常记录和复现装置一实施例的模块示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
如图1所示,为本发明应用程序的异常记录和复现方法一实施例的流程图,该应用程序的异常记录和复现方法,包括步骤S1-S4。
S1、定位应用程序的所有操作事件,并对所述应用程序的每个操作事件设置对应的监控节点。
具体地,所述应用程序的所有操作事件为用户在所述应用程序上可触发事件的操作,包括但不限于触摸事件、滑动事件、点击事件。例如:一应用程序为手机聊天app,在手机聊天app上的触控按键、显示界面可滑动区域,以及可触发app功能的手机按键(如音量键、锁屏键)处均设置监控节点,用于监控用户在手机聊天app运行时的操作事件。
在一实施例中,为所述应用程序的每个操作事件设置对应的具有唯一性的标识作为监控节点。具体地,在监控节点配置文件通过预设的组合方式(例如包名+控件名+数字),为各种操作事件对应的控件设置具有唯一性的标识(id),并在应用程序启动运行时,通过所述监控节点配置文件为所述应用程序的所有操作事件设置具有唯一性的标识作为监控节点。
S2、根据所述监控节点对所述应用程序的所有操作事件进行监控,获取所述应用程序运行时触发的每个操作事件的信息和对应的触发时间,根据所述应用程序运行时触发的操作事件的信息和触发时间生成用户行为记录。
在一实施例中,所述用户行为记录包括所述应用程序在本次运行过程中触发的操作事件及对应的触发时间。例如:用户使用手机聊天app时,实时监控手机聊天app运行状况和监控节点,当用户打开某一联系人的聊天界面或进行其他操作时,实时记录该操作并记录对应的操作时间点。
具体地,当用户触发一操作事件时,获取该操作事件的具有唯一性的标识(即监控节点)及该操作事件的触发时间作为一组数据写入预设的缓存存储器。将用户本次运行所述应用程序触发的所有操作事件对应的标识和触发时间按触发顺序写入缓存存储器,并在所述应用程序结束运行后将所述缓存存储器存储的一组或多组数据(所有操作事件对应的标识和触发时间)按先进先出的顺序生成本次用户行为记录。
S3、实时监控所述应用程序运行时是否出现异常状态,若所述应用程序未出现异常状态,在所述应用程序结束运行后删除所述用户行为记录;若所述应用程序出现异常状态,停止运行所述应用程序并将所述用户行为记录写入运行日志生成异常日志。
在一实施例中,若所述应用程序出现异常状态,在本次运行日志写入所述应用程序的异常状态及出现异常状态的时间,并将所述用户行为记录写入本次运行日志。根据所述应用程序出现异常状态的时间与用户操作事件的触发时间,可判断导致应用程序出现异常状态的用户操作。
具体地,所述应用程序的异常状态包括代码异常和系统异常。
所述代码异常的识别方法包括:通过Throwable预先定义所述应用程序中所有可以作为异常被抛出来的类,即所述应用程序的异常类;定义一个全局函数,并将所述全局函数添加到所述应用程序的运行函数的外层,在所述应用程序启动运行时,所述全局函数使用try-catch语法在try中获取所述应用程序运行过程中抛出的异常类,并在catch中将所述应用程序抛出的异常类放置到预设的全局变量中;所述应用程序启动运行时,通过定时器访问所述全局变量,若发现所述全局变量中有所述应用程序抛出的异常类,使用throw方法将所述异常类抛到window.onerror事件中;在所述window.onerror事件中根据所述异常类获取对应的异常信息以记录所述应用程序的代码异常。
所述系统异常的识别方法包括:从所述应用程序的运行日志中获取系统错误提示以记录系统规则导致的异常,即所述应用程序的系统异常。
在一实施例中,若所述应用程序出现异常状态,停止运行所述应用程序并将所述用户行为记录写入运行日志生成异常日志之后,删除所述预设的缓存存储器存储的数据,防止对所述应用程序下次运行过程中生成的用户行为记录产生干扰。
S4、根据所述异常状态和所述异常日志生成复现文档,根据所述复现文档对所述应用程序进行分析获取导致所述应用程序异常的原因,所述复现文档包括所述应用程序运行时出现的异常状态以及从所述应用程序开始运行到出现异常状态的时间段中触发的操作事件的信息和触发时间。
在一实施例中,所述复现文档用于对应用程序出现的异常进行复现和分析。
例如:用户使用手机聊天app时,若手机聊天app运行正常,在结束使用后将本次用户的用户行为记录删除。若手机聊天app出现运行异常,立刻停止运行并在本次运行日志写入异常类型和出现异常的时间点(以手机聊天app开始运行的时间点为零点,出现异常的时间点距离零点的秒数),同时将本次用户行为记录写入运行日志生成异常日志,然后删除该用户行为记录以防止程序冗余。根据异常日志获取本次运行开始到出现异常的过程中用户操作事件及顺序以及本次运行异常类型,并生成复现文档供工作人员快速复现异常及分析异常的根源。
在一实施例中,根据所述复现文档对所述应用程序进行分析获取导致所述应用程序异常的原因包括:获取所述复现文档中从所述应用程序开始运行到出现异常状态的时间段中触发的多个操作事件的信息和触发时间;重复运行所述应用程序并按所述触发时间顺序执行所述时间段中触发的多个操作事件,且在每次运行所述应用程序时依次删除所述时间段中触发的多个操作事件中的一个操作事件;根据每次运行执行的操作事件的信息以及每次运行所述应用程序时是否出现所述异常状态,筛选出导致所述应用程序出现所述异常状态的操作事件作为原因展示。
由上述实施例可知,本发明提出的应用程序的异常记录和复现方法,通过设置监控节点对应用程序的操作事件进行实时监控,在应用程序出现异常状态时,将应用程序运行时触发的操作事件的信息和触发时间写入异常日志,根据应用程序出现的异常状态和异常日志复现用户操作,重复多次运行应用程序以获取导致所述应用程序异常的原因,提升了应用程序测试和纠错的效率。
如图2所示,为本发明电子装置1一实施例的示意图。电子装置1是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。所述电子装置1可以是计算机、也可以是单个网络服务器、多个网络服务器组成的服务器组或者基于云计算的由大量主机或者网络服务器构成的云,其中云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。
在本实施例中,电子装置1包括,但不仅限于,可通过系统总线相互通信连接的存储器11、处理器12、网络接口13,该存储器11中存储有应用程序的异常记录和复现程序10,所述应用程序的异常记录和复现程序10可被所述处理器12执行。图1仅示出了具有组件11-13以及应用程序的异常记录和复现程序10的电子装置1,本领域技术人员可以理解的是,图1示出的结构并不构成对电子装置1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
其中,存储器11包括内存及至少一种类型的可读存储介质。内存为电子装置1的运行提供缓存;可读存储介质可以是易失性的,也可以是非易失性的。具体的,可读存储介质可为如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等的存储介质。在一些实施例中,可读存储介质可以是电子装置1的内部存储单元,例如该电子装置1的硬盘;在另一些实施例中,该存储介质也可以是电子装置1的外部存储设备,例如电子装置1上配备的插接式硬盘,智能存储卡(SmartMediaCard,SMC),安全数字(SecureDigital,SD)卡,闪存卡(FlashCard)等。本实施例中,存储器11的可读存储介质主要包括存储程序区和存储数据区,其中,存储程序区通常用于存储安装于电子装置1的操作系统和各类应用软件,例如存储本发明一实施例中的应用程序的异常记录和复现程序10的代码等;存储数据区可存储根据区块链节点的使用所创建的数据等,例如已经输出或者将要输出的各类数据。
处理器12在一些实施例中可以是中央处理器(CentralProcessingUnit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器12通常用于控制所述电子装置1的总体操作,例如执行与其他设备进行数据交互或者通信相关的控制和处理等。本实施例中,所述处理器12用于运行所述存储器11中存储的程序代码或者处理数据,例如运行应用程序的异常记录和复现程序10等。
网络接口13可包括无线网络接口或有线网络接口,该网络接口13用于在所述电子装置1与客户端(图中未画出)之间建立通信连接。
可选的,所述电子装置1还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选的,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及有机发光二极管(OrganicLight-EmittingDiode,OLED)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子装置1中处理的信息以及用于显示可视化的用户界面。
在本发明的一实施例中,所述应用程序的异常记录和复现程序10被所述处理器12执行时实现如下步骤S1-S4。
S1、定位应用程序的所有操作事件,并对所述应用程序的每个操作事件设置对应的监控节点。
具体地,所述应用程序的所有操作事件为用户在所述应用程序上可触发事件的操作,包括但不限于触摸事件、滑动事件、点击事件。例如:一应用程序为手机聊天app,在手机聊天app上的触控按键、显示界面可滑动区域,以及可触发app功能的手机按键(如音量键、锁屏键)处均设置监控节点,用于监控用户在手机聊天app运行时的操作事件。
在一实施例中,为所述应用程序的每个操作事件设置对应的具有唯一性的标识作为监控节点。具体地,在监控节点配置文件通过预设的组合方式(例如包名+控件名+数字),为各种操作事件对应的控件设置具有唯一性的标识(id),并在应用程序启动运行时,通过所述监控节点配置文件为所述应用程序的所有操作事件设置具有唯一性的标识作为监控节点。
S2、根据所述监控节点对所述应用程序的所有操作事件进行监控,获取所述应用程序运行时触发的每个操作事件的信息和对应的触发时间,根据所述应用程序运行时触发的操作事件的信息和触发时间生成用户行为记录。
在一实施例中,所述用户行为记录包括所述应用程序在本次运行过程中触发的操作事件及对应的触发时间。例如:用户使用手机聊天app时,实时监控手机聊天app运行状况和监控节点,当用户打开某一联系人的聊天界面或进行其他操作时,实时记录该操作并记录对应的操作时间点。
具体地,当用户触发一操作事件时,获取该操作事件的具有唯一性的标识(即监控节点)及该操作事件的触发时间作为一组数据写入预设的缓存存储器。将用户本次运行所述应用程序触发的所有操作事件对应的标识和触发时间按触发顺序写入缓存存储器,并在所述应用程序结束运行后将所述缓存存储器存储的一组或多组数据(所有操作事件对应的标识和触发时间)按先进先出的顺序生成本次用户行为记录。
S3、实时监控所述应用程序运行时是否出现异常状态,若所述应用程序未出现异常状态,在所述应用程序结束运行后删除所述用户行为记录;若所述应用程序出现异常状态,停止运行所述应用程序并将所述用户行为记录写入运行日志生成异常日志。
在一实施例中,若所述应用程序出现异常状态,在本次运行日志写入所述应用程序的异常状态及出现异常状态的时间,并将所述用户行为记录写入本次运行日志。根据所述应用程序出现异常状态的时间与用户操作事件的触发时间,可判断导致应用程序出现异常状态的用户操作。
具体地,所述应用程序的异常状态包括代码异常和系统异常。
所述代码异常的识别方法包括:通过Throwable预先定义所述应用程序中所有可以作为异常被抛出来的类,即所述应用程序的异常类;定义一个全局函数,并将所述全局函数添加到所述应用程序的运行函数的外层,在所述应用程序启动运行时,所述全局函数使用try-catch语法在try中获取所述应用程序运行过程中抛出的异常类,并在catch中将所述应用程序抛出的异常类放置到预设的全局变量中;所述应用程序启动运行时,通过定时器访问所述全局变量,若发现所述全局变量中有所述应用程序抛出的异常类,使用throw方法将所述异常类抛到window.onerror事件中;在所述window.onerror事件中根据所述异常类获取对应的异常信息以记录所述应用程序的代码异常。
所述系统异常的识别方法包括:从所述应用程序的运行日志中获取系统错误提示以记录系统规则导致的异常,即所述应用程序的系统异常。
在一实施例中,若所述应用程序出现异常状态,停止运行所述应用程序并将所述用户行为记录写入运行日志生成异常日志之后,删除所述预设的缓存存储器存储的数据,防止对所述应用程序下次运行过程中生成的用户行为记录产生干扰。
S4、根据所述异常状态和所述异常日志生成复现文档,根据所述复现文档对所述应用程序进行分析获取导致所述应用程序异常的原因,所述复现文档包括所述应用程序运行时出现的异常状态以及从所述应用程序开始运行到出现异常状态的时间段中触发的操作事件的信息和触发时间。
在一实施例中,所述复现文档用于对应用程序出现的异常进行复现和分析。
例如:用户使用手机聊天app时,若手机聊天app运行正常,在结束使用后将本次用户的用户行为记录删除。若手机聊天app出现运行异常,立刻停止运行并在本次运行日志写入异常类型和出现异常的时间点(以手机聊天app开始运行的时间点为零点,出现异常的时间点距离零点的秒数),同时将本次用户行为记录写入运行日志生成异常日志,然后删除该用户行为记录以防止程序冗余。根据异常日志获取本次运行开始到出现异常的过程中用户操作事件及顺序以及本次运行异常类型,并生成复现文档供工作人员快速复现异常及分析异常的根源。
在一实施例中,根据所述复现文档对所述应用程序进行分析获取导致所述应用程序异常的原因包括:获取所述复现文档中从所述应用程序开始运行到出现异常状态的时间段中触发的多个操作事件的信息和触发时间;重复运行所述应用程序并按所述触发时间顺序执行所述时间段中触发的多个操作事件,且在每次运行所述应用程序时依次删除所述时间段中触发的多个操作事件中的一个操作事件;根据每次运行执行的操作事件的信息以及每次运行所述应用程序时是否出现所述异常状态,筛选出导致所述应用程序出现所述异常状态的操作事件作为原因展示。
由上述实施例可知,本发明提出的电子装置1,通过设置监控节点对应用程序的操作事件进行实时监控,在应用程序出现异常状态时,将应用程序运行时触发的操作事件的信息和触发时间写入异常日志,根据应用程序出现的异常状态和异常日志复现用户操作,重复多次运行应用程序以获取导致所述应用程序异常的原因,提升了应用程序测试和纠错的效率。
在其他实施例中,应用程序的异常记录和复现程序10还可以被分割为一个或者多个模块,一个或者多个模块被存储于存储器11中,并由一个或多个处理器(本实施例为处理器12)所执行以完成本发明,本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,用于描述应用程序的异常记录和复现程序10在电子装置1中的执行过程。
如图3所示,为本发明应用程序的异常记录和复现装置10一实施例的模块示意图。
在本发明的一实施例中,应用程序的异常记录和复现装置10,包括事件定位模块110、行为记录模块120、日志获取模块130及异常复现模块140,示例性地:
所述事件定位模块110,用于定位应用程序的所有操作事件,并对所述应用程序的每个操作事件设置对应的监控节点;
所述行为记录模块120,用于根据所述监控节点对所述应用程序的所有操作事件进行监控,获取所述应用程序运行时触发的每个操作事件的信息和对应的触发时间,根据所述应用程序运行时触发的操作事件的信息和触发时间生成用户行为记录;
所述日志获取模块130,用于实时监控所述应用程序运行时是否出现异常状态,若所述应用程序未出现异常状态,在所述应用程序结束运行后删除所述用户行为记录;若所述应用程序出现异常状态,停止运行所述应用程序并将所述用户行为记录写入运行日志生成异常日志;
所述异常复现模块140,用于根据所述异常状态和所述异常日志生成复现文档,根据所述复现文档对所述应用程序进行分析获取导致所述应用程序异常的原因,所述复现文档包括所述应用程序运行时出现的异常状态以及从所述应用程序开始运行到出现异常状态的时间段中触发的操作事件的信息和触发时间。
上述事件定位模块110、行为记录模块120、日志获取模块130及异常复现模块140等模块被执行时所实现的功能或操作步骤与上述实施例大体相同,在此不再赘述。
此外,本发明实施例还提出一种计算机可读存储介质,可读存储介质可以是易失性的,也可以是非易失性的。具体的,计算机可读存储介质可以是硬盘、多媒体卡、SD卡、闪存卡、SMC、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器等中的任意一种或者几种的任意组合。计算机可读存储介质中包括应用程序的异常记录和复现程序10,所述应用程序的异常记录和复现程序10被处理器执行时实现如下操作:
A1、定位应用程序的所有操作事件,并对所述应用程序的每个操作事件设置对应的监控节点;
A2、根据所述监控节点对所述应用程序的所有操作事件进行监控,获取所述应用程序运行时触发的每个操作事件的信息和对应的触发时间,根据所述应用程序运行时触发的操作事件的信息和触发时间生成用户行为记录;
A3、实时监控所述应用程序运行时是否出现异常状态,若所述应用程序未出现异常状态,在所述应用程序结束运行后删除所述用户行为记录;若所述应用程序出现异常状态,停止运行所述应用程序并将所述用户行为记录写入运行日志生成异常日志;
A4、根据所述异常状态和所述异常日志生成复现文档,根据所述复现文档对所述应用程序进行分析获取导致所述应用程序异常的原因,所述复现文档包括所述应用程序运行时出现的异常状态以及从所述应用程序开始运行到出现异常状态的时间段中触发的操作事件的信息和触发时间。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种应用程序的异常记录和复现方法,其特征在于,包括:
定位应用程序的所有操作事件,并对所述应用程序的每个操作事件设置对应的监控节点;
根据所述监控节点对所述应用程序的所有操作事件进行监控,获取所述应用程序运行时触发的每个操作事件的信息和对应的触发时间,根据所述应用程序运行时触发的操作事件的信息和触发时间生成用户行为记录;
实时监控所述应用程序运行时是否出现异常状态,若所述应用程序未出现异常状态,在所述应用程序结束运行后删除所述用户行为记录;若所述应用程序出现异常状态,停止运行所述应用程序并将所述用户行为记录写入运行日志生成异常日志;
根据所述异常状态和所述异常日志生成复现文档,根据所述复现文档对所述应用程序进行分析获取导致所述应用程序异常的原因,所述复现文档包括所述应用程序运行时出现的异常状态以及从所述应用程序开始运行到出现异常状态的时间段中触发的操作事件的信息和触发时间。
2.如权利要求1所述的应用程序的异常记录和复现方法,其特征在于,所述对所述应用程序的每个操作事件设置对应的监控节点包括:
为所述应用程序的每个操作事件设置对应的具有唯一性的标识作为监控节点。
3.如权利要求1所述的应用程序的异常记录和复现方法,其特征在于,所述根据所述应用程序运行时触发的操作事件的信息和触发时间生成用户行为记录包括:
将所述应用程序运行时触发的每个操作事件对应的监控节点和触发时间作为一组数据按触发顺序写入预设的缓存存储器;
在所述应用程序结束运行后将所述预设的缓存存储器存储的一组或多组数据按先进先出的顺序生成本次用户行为记录。
4.如权利要求3所述的应用程序的异常记录和复现方法,其特征在于,若所述应用程序出现异常状态,停止运行所述应用程序并将所述用户行为记录写入运行日志生成异常日志之后,还包括:
删除所述预设的缓存存储器存储的数据。
5.如权利要求1所述的应用程序的异常记录和复现方法,其特征在于,所述应用程序的异常状态包括代码异常和系统异常。
6.如权利要求5所述的应用程序的异常记录和复现方法,其特征在于,所述实时监控所述应用程序运行时是否出现异常状态包括:
根据预设的语法和全局函数记录所述应用程序运行时出现的代码异常;
从所述应用程序的运行日志中获取系统错误提示以记录所述应用程序的系统异常。
7.如权利要求1所述的应用程序的异常记录和复现方法,其特征在于,所述根据所述复现文档对所述应用程序进行分析获取导致所述应用程序异常的原因包括:
获取所述复现文档中从所述应用程序开始运行到出现异常状态的时间段中触发的多个操作事件的信息和触发时间;
重复运行所述应用程序并按所述触发时间顺序执行所述时间段中触发的多个操作事件,且在每次运行所述应用程序时依次删除所述时间段中触发的多个操作事件中的一个操作事件;
根据每次运行执行的操作事件的信息以及每次运行所述应用程序时是否出现所述异常状态,筛选出导致所述应用程序出现所述异常状态的操作事件作为原因展示。
8.一种电子装置,其特征在于,该电子装置包括:存储器、处理器,所述存储器上存储有可在所述处理器上运行的应用程序的异常记录和复现程序,所述应用程序的异常记录和复现程序被所述处理器执行时实现如权利要求1-7任意一项所述的应用程序的异常记录和复现方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有应用程序的异常记录和复现程序,所述应用程序的异常记录和复现程序可被一个或者多个处理器执行,以实现如权利要求1-7任意一项所述的应用程序的异常记录和复现方法。
10.一种应用程序的异常记录和复现装置,其特征在于,该装置包括:
事件定位模块:用于定位应用程序的所有操作事件,并对所述应用程序的每个操作事件设置对应的监控节点;
行为记录模块:用于根据所述监控节点对所述应用程序的所有操作事件进行监控,获取所述应用程序运行时触发的每个操作事件的信息和对应的触发时间,根据所述应用程序运行时触发的操作事件的信息和触发时间生成用户行为记录;
日志获取模块:用于实时监控所述应用程序运行时是否出现异常状态,若所述应用程序未出现异常状态,在所述应用程序结束运行后删除所述用户行为记录;若所述应用程序出现异常状态,停止运行所述应用程序并将所述用户行为记录写入运行日志生成异常日志;
异常复现模块:用于根据所述异常状态和所述异常日志生成复现文档,根据所述复现文档对所述应用程序进行分析获取导致所述应用程序异常的原因,所述复现文档包括所述应用程序运行时出现的异常状态以及从所述应用程序开始运行到出现异常状态的时间段中触发的操作事件的信息和触发时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011502802.4A CN112650658A (zh) | 2020-12-18 | 2020-12-18 | 应用程序的异常记录和复现方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011502802.4A CN112650658A (zh) | 2020-12-18 | 2020-12-18 | 应用程序的异常记录和复现方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112650658A true CN112650658A (zh) | 2021-04-13 |
Family
ID=75355119
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011502802.4A Pending CN112650658A (zh) | 2020-12-18 | 2020-12-18 | 应用程序的异常记录和复现方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112650658A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113138966A (zh) * | 2021-05-08 | 2021-07-20 | 贵州全安密灵科技有限公司 | 一种复现起爆操作场景的方法、装置、存储介质及设备 |
CN113347033A (zh) * | 2021-05-31 | 2021-09-03 | 中国工商银行股份有限公司 | 基于区块链的根因定位方法、系统及验证节点 |
CN113608988A (zh) * | 2021-08-10 | 2021-11-05 | 南京师范大学 | 一种面向复现的地理模拟情景记录方法 |
CN113626332A (zh) * | 2021-08-13 | 2021-11-09 | 北京百度网讯科技有限公司 | 调试方法、装置、设备、存储介质以及计算机程序产品 |
CN115061883A (zh) * | 2022-08-17 | 2022-09-16 | 中航信移动科技有限公司 | 一种基于weex的程序日志获取方法、存储介质及电子设备 |
-
2020
- 2020-12-18 CN CN202011502802.4A patent/CN112650658A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113138966A (zh) * | 2021-05-08 | 2021-07-20 | 贵州全安密灵科技有限公司 | 一种复现起爆操作场景的方法、装置、存储介质及设备 |
CN113138966B (zh) * | 2021-05-08 | 2023-06-06 | 贵州全安密灵科技有限公司 | 一种复现起爆操作场景的方法、装置、存储介质及设备 |
CN113347033A (zh) * | 2021-05-31 | 2021-09-03 | 中国工商银行股份有限公司 | 基于区块链的根因定位方法、系统及验证节点 |
CN113608988A (zh) * | 2021-08-10 | 2021-11-05 | 南京师范大学 | 一种面向复现的地理模拟情景记录方法 |
CN113626332A (zh) * | 2021-08-13 | 2021-11-09 | 北京百度网讯科技有限公司 | 调试方法、装置、设备、存储介质以及计算机程序产品 |
CN115061883A (zh) * | 2022-08-17 | 2022-09-16 | 中航信移动科技有限公司 | 一种基于weex的程序日志获取方法、存储介质及电子设备 |
CN115061883B (zh) * | 2022-08-17 | 2022-11-04 | 中航信移动科技有限公司 | 一种基于weex的程序日志获取方法、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112650658A (zh) | 应用程序的异常记录和复现方法、装置及存储介质 | |
WO2018120721A1 (zh) | 用户界面的测试方法、系统、电子装置及计算机可读存储介质 | |
CN107329894B (zh) | 应用程序系统测试方法、装置及电子设备 | |
CN112491602B (zh) | 行为数据的监控方法、装置、计算机设备及介质 | |
US8930761B2 (en) | Test case result processing | |
CN111459495B (zh) | 单元测试代码文件生成方法、电子装置及存储介质 | |
CN103186461A (zh) | 一种现场数据的保存方法和恢复方法以及相关装置 | |
CN107800757B (zh) | 用户行为记录方法及装置 | |
CN105335435A (zh) | 文件管理方法和信息处理设备 | |
US20190079854A1 (en) | Systems and methods for executing tests | |
CN111858605B (zh) | 数据库自动化审计方法、系统、设备及存储介质 | |
CN113157347A (zh) | 一种探针的自动部署方法、电子设备和存储介质 | |
CN113377719B (zh) | 一种系统异常关机时间获取方法及系统 | |
CN108829575B (zh) | 测试案例推荐方法、电子装置及可读存储介质 | |
US20170344461A1 (en) | Automated exception resolution during a software development session based on previous exception encounters | |
CN106897063B (zh) | 一种基于efi将os启动项永久添加至bios中的方法及系统 | |
CN113742224A (zh) | 测试系统、方法、装置、计算机设备和存储介质 | |
CN113806209A (zh) | 接口测试方法、框架、计算机设备和存储介质 | |
CN112835779A (zh) | 测试用例确定方法、装置、计算机设备 | |
CN108009039B (zh) | 终端信息的记录方法、装置、存储介质及电子设备 | |
CN113505026B (zh) | 验证备份数据的方法、装置、设备及存储介质 | |
CN112558982B (zh) | 代码检测方法、装置及计算机设备 | |
CN113656044B (zh) | 安卓安装包压缩方法、装置、计算机设备及存储介质 | |
CN112650613B (zh) | 一种错误信息处理方法、装置、电子设备及存储介质 | |
CN105446785A (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 |