CN109684175B - 应用软件操作的记录方法和装置以及复现方法和装置 - Google Patents
应用软件操作的记录方法和装置以及复现方法和装置 Download PDFInfo
- Publication number
- CN109684175B CN109684175B CN201811599310.4A CN201811599310A CN109684175B CN 109684175 B CN109684175 B CN 109684175B CN 201811599310 A CN201811599310 A CN 201811599310A CN 109684175 B CN109684175 B CN 109684175B
- Authority
- CN
- China
- Prior art keywords
- event
- logic
- external input
- application software
- function
- 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
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/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例提出一种应用软件操作的记录方法和装置以及应用软件操作的复现方法和装置,其中记录方法包括:记录输入动作产生的至少一个外部输入事件,记录所述应用软件运行产生的至少一个逻辑事件;存储所述至少一个外部输入事件和至少一个逻辑事件。本发明实施例能够提高对应用软件操作复现的准确率。
Description
技术领域
本发明涉及应用软件技术领域,尤其涉及一种应用软件操作的记录方法和装置以及复现方法和装置。
背景技术
现有针对应用软件(APP,Application)操作的记录及复现过程中,一般只记录及复现用户的输入动作所产生的外部输入事件,例如用户对触摸屏的触摸动作、对物理按键的按动动作等。对于弹框等动态内容则不予记录。因此,如果记录过程中出现了动态内容,在复现过程中无法复现该动态内容,将极易发生路径偏离。
发明内容
本发明实施例提供一种应用软件操作的记录方法及装置,以及一种应用软件操作的复现方法及装置,以至少解决现有技术中的以上技术问题。
第一方面,本发明实施例提供了一种应用软件操作的记录方法,包括:
记录输入动作产生的至少一个外部输入事件,记录所述应用软件运行产生的至少一个逻辑事件;
存储所述至少一个外部输入事件和至少一个逻辑事件。
在一种实施方式中,所述逻辑事件包括:应用软件的业务逻辑所调用函数的名称及所述函数使用的参数。
在一种实施方式中,所述存储所述至少一个输入事件和至少一个逻辑事件,包括:
按照各个所述外部输入事件及所述逻辑事件产生的时间顺序,存储所述至少一个输入事件和至少一个逻辑事件,并存储所述外部输入事件及所述逻辑事件产生的时间。
第二方面,本发明实施例提出一种应用软件操作的复现方法,包括:
读取预先存储的至少一个外部输入事件和至少一个逻辑事件;
分发所述外部输入事件;并且,对所述逻辑事件进行修正,分发修正后的逻辑事件。
在一种实施方式中,所述逻辑事件包括:应用软件的业务逻辑所调用函数的名称及所述函数的参数;
所述对所述逻辑事件进行修正,分发修正后的逻辑事件,包括:
响应于所述函数在需要调用的时间段内没有被调用,分发所述逻辑事件。
在一种实施方式中,所述逻辑事件包括:应用软件的业务逻辑所调用函数的名称及所述函数的参数;
所述对所述逻辑事件进行修正,分发修正后的逻辑事件,包括:
响应于所述函数在需要调用的时间段内被调用,但使用的参数与所述逻辑事件中包括的参数不同,将所述逻辑事件中包括的参数提供给对应的业务逻辑,以供所述业务逻辑在调用所述函数时使用。
在一种实施方式中,所述逻辑事件包括:应用软件的业务逻辑所调用函数的名称及所述函数使用的参数;
所述对所述逻辑事件进行修正,分发修正后的逻辑事件,包括:
响应于所述函数在不需要调用的时间段内被调用,阻止对应的业务逻辑调用所述函数。
第三方面,本发明实施例提出一种应用软件操作的记录装置,包括:
外部输入事件记录模块,用于记录输入动作产生的至少一个外部输入事件;
逻辑事件记录模块,用于记录所述应用软件运行产生的至少一个逻辑事件;
存储模块,用于存储所述至少一个外部输入事件和至少一个逻辑事件。
在一种实施方式中,所述存储模块,用于按照各个所述外部输入事件及所述逻辑事件产生的时间顺序,存储所述至少一个输入事件和至少一个逻辑事件,并存储所述外部输入事件及所述逻辑事件产生的时间。
在一种实施方式中,所述逻辑事件记录模块,用于记录应用软件的业务逻辑所调用函数的名称及所述函数使用的参数。
第四方面,本发明实施例提出一种应用软件操作的复现装置,包括:
读取模块,用于读取预先存储的至少一个外部输入事件和至少一个逻辑事件;
外部输入事件分发模块,用于分发所述外部输入事件;
逻辑事件分发模块,用于对所述逻辑事件进行修正,分发修正后的逻辑事件。
在一种实施方式中,所述逻辑事件包括:应用软件的业务逻辑所调用函数的名称及所述函数使用的参数;
所述逻辑事件分发模块包括:
第一校验子模块,用于判断所述函数在需要调用的时间段内是否被调用,如果未被调用,则将所述逻辑事件提供给第一分发子模块;
所述第一分发子模块,用于分发所述逻辑事件。
在一种实施方式中,所述逻辑事件包括:应用软件的业务逻辑所调用函数的名称及所述函数使用的参数;
所述逻辑事件分发模块包括:
第二校验子模块,用于判断所述函数在需要调用的时间段内是否被调用,并且使用的参数与所述逻辑事件中包括的参数不同,如果是,则将所述逻辑事件中包括的参数发送至第二分发子模块;
所述第二分发子模块,用于将所述逻辑事件中包括的参数提供给对应的业务逻辑,以供所述业务逻辑在调用所述函数时使用。
在一种实施方式中,所述逻辑事件包括:应用软件的业务逻辑所调用函数的名称及所述函数使用的参数;
所述逻辑事件分发模块包括:
第三校验子模块,用于判断所述函数是否在不需要调用的时间段内被调用,如果是,则通知第三分发子模块;
所述第三分发子模块,用于根据所述通知,阻止对应的业务逻辑调用所述函数。
第五方面,本发明实施例提供了一种应用软件操作的记录设备,所述设备的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,所述设备的结构中包括处理器和存储器,所述存储器用于存储支持所述设备执行上述应用软件操作的记录方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。所述设备还可以包括通信接口,用于与其他设备或通信网络通信。
第六方面,本发明实施例提供了一种应用软件操作的复现设备,所述设备的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,所述设备的结构中包括处理器和存储器,所述存储器用于存储支持所述设备执行上述应用软件操作的复现方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。所述设备还可以包括通信接口,用于与其他设备或通信网络通信。
第七方面,本发明实施例提供了一种计算机可读存储介质,用于存储人设备所用的计算机软件指令,其包括用于执行上述方法所涉及的程序。
上述技术方案中的一个技术方案具有如下优点或有益效果:
本发明实施例通过记录及复现用户的输入动作产生的外部输入事件、以及应用软件运行产生的逻辑事件,能够记录及复现整个记录过程中出现的动态内容,从而避免在复现过程中发生路径偏离,提高对应用软件操作复现的准确率。
上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本发明进一步的方面、实施方式和特征将会是容易明白的。
附图说明
在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本发明公开的一些实施方式,而不应将其视为是对本发明范围的限制。
图1为本发明实施例的一种应用软件操作的记录方法实现流程图;
图2为本发明实施例提出的应用软件操作的记录方法原理示意图;
图3为本发明实施例的一种应用软件操作的复现方法实现流程图;
图4为本发明实施例提出的应用软件操作的复现方法原理示意图;
图5为本发明实施例的一种应用软件操作的记录装置结构示意图;
图6为本发明实施例的一种应用软件操作的复现装置结构示意图;
图7为本发明实施例的一种应用软件操作的复现装置结构示意图;
图8为本发明实施例的一种应用软件操作的记录设备结构示意图。
具体实施方式
在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本发明的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。
本发明实施例主要提供了一种应用软件操作的记录方法和装置,以及一种应用软件操作的复现方法和装置,下面分别通过以下实施例进行技术方案的展开描述。
如图1为本发明实施例的一种应用软件操作的记录方法实现流程图,包括:
S11:记录输入动作产生的至少一个外部输入事件,记录所述应用软件运行产生的至少一个逻辑事件。
S12:存储所述至少一个外部输入事件和至少一个逻辑事件。
以下以应用于安卓(Android)系统中的应用软件为例进行说明。
在一种可能的实施方式中,上述输入动作可以包括:用户对触摸屏的触摸动作以及对物理按键的按动动作。两种动作产生的外部输入事件分别为触摸事件(MotionEvent)和物理按键事件(KeyEvent)。
步骤S11中,记录外部输入事件的方式可以为:
在应用软件运行时代理窗口事件分发回调对象(Window.Callback对象),记录Window.Callback对象向对应页面分发的外部输入事件。
在应用软件运行过程中,操作系统通过Window.Callback对象将外部输入事件分发至对应的页面,因此,通过代理Window.Callback对象,可以记录其分发的外部输入事件。
在一种可能的实施方式中,将应用软件的业务逻辑对函数的调用作为逻辑事件。因此,步骤S11中记录的逻辑事件可以包括:应用软件的业务逻辑所调用函数的名称及所述函数使用的参数。例如,可以将“函数名-参数”作为记录的键值对(Key-Value)。
在一种可能的实施方式中,步骤S12可以包括:按照各个外部输入事件及逻辑事件产生的时间顺序,存储所述至少一个输入事件和至少一个逻辑事件,并存储外部输入事件及所述逻辑事件产生的时间。
一种可能的实施方式中,外部输入事件或逻辑事件产生的时间可以指相对于整个记录过程开始时刻的相对时间。例如,在整个记录过程开始后的1s时产生事件A,则将事件A产生的时间记录为第1s;其中,A可以为外部输入事件或逻辑事件。
一种可能的实施方式中,记录及存储外部输入事件及逻辑事件时,可以将外部输入事件及逻辑事件以时间顺序加入一个事件队列,最终将事件队列中的事件写入文件中进行保存。例如,可以将事件写入JavaScript对象简谱(JSON,JavaScript Object Notation)文件中。
如图2为本发明实施例提出的应用软件操作的记录方法原理示意图。如图2显示,本发明实施例可以设置记录层,包括外部输入事件记录层及逻辑事件记录层,分别用于记录外部输入事件及逻辑事件。其中,本发明实施例设置的记录层可以以轻量级软件开发工具包(SDK,Software Development Kit)的形式集成入安卓系统的应用软件中。记录的外部输入事件及逻辑事件按照事件顺序加入到同一个事件队列中,并写入JSON文件。
本发明实施例还提出一种应用软件操作的复现方法,如图3为该方法实现流程图,包括:
S31:读取预先存储的至少一个外部输入事件和至少一个逻辑事件;
S32:分发所述外部输入事件;并且,对所述逻辑事件进行修正,分发修正后的逻辑事件。
在一种可能的实施方式中,步骤S31中可以进一步读取外部输入事件和逻辑事件产生的时间;在步骤S32中,按照产生的时间分发外部输入事件以及修正并分发逻辑事件。
在一种可能的实施方式中,上述外部输入事件包括触摸事件(MotionEvent)和物理按键事件(KeyEvent)。步骤S32中分发外部输入事件的方式可以为:向代理的Window.Callback对象分发外部输入事件,从而达到拟真的复现效果。由于此时分发的外部输入事件并不是由用户的输入动作产生的,因此,前述的外部输入事件可以认为是虚拟的事件。
在一种可能的实施方式中,上述逻辑事件可以包括:应用软件的业务逻辑所调用函数的名称及所述函数使用的参数。
在读取到逻辑事件时,可以首先对该逻辑事件进行参数校验(例如活动弹层的调起),如果校验通过,则直接丢弃该逻辑事件中包括的函数;如果校验未通过,则执行上述步骤S32中的对所述逻辑事件进行修正,分发修正后的逻辑事件。修正及分发的方式至少包括以下几种:
方式一:如果逻辑事件中包括的函数在需要调用的时间段内没有被调用,则分发所述逻辑事件。
方式二:如果逻辑事件中包括的函数在需要调用的时间段内被调用,但使用的参数与所述逻辑事件中包括的参数不同,则将所述逻辑事件中包括的参数提供给对应的业务逻辑,以供所述业务逻辑在调用所述函数时使用。
方式三:如果逻辑事件中包括的函数在不需要调用的时间段内被调用,则阻止对应的业务逻辑调用所述函数。
如图4为本发明实施例提出的应用软件操作的复现方法原理示意图。如图4所示,本发明实施例可以依次从文件中读取外部输入事件或逻辑事件,这里的外部输入事件或逻辑事件是虚拟的事件。采用外部输入事件分发层向操作系统分发外部输入事件。采用逻辑事件校验层对读取到的逻辑事件包括的关键函数进行校验,如果校验通过,则对该逻辑事件放行,也就是直接丢弃该逻辑事件中包括的函数;如果校验不通过,则采用函数调用分发层对该逻辑事件进行修正及分发。修正及分发的具体方式可以采用上述三种方式中的任意一种。本发明实施例设置的外部输入事件分发层、逻辑事件校验层及函数调用分发层可以以轻量级SDK的形式集成入安卓系统的应用软件中。此外,本发明实施例提出的复现方法还可以向应用软件的业务逻辑层开放接口,支持应用软件的业务逻辑层自定义对逻辑事件进行的修正。
本发明实施例还提出一种应用软件操作的记录装置,如图5为该装置结构示意图,包括:
外部输入事件记录模块510,用于记录用户的输入动作产生的至少一个外部输入事件;
逻辑事件记录模块520,用于记录所述应用软件运行产生的至少一个逻辑事件;
存储模块530,用于存储所述至少一个外部输入事件和至少一个逻辑事件。
在一种可能的实施方式中,所述存储模块530,用于按照各个所述外部输入事件及所述逻辑事件产生的时间顺序,存储所述至少一个输入事件和至少一个逻辑事件,并存储所述外部输入事件及所述逻辑事件产生的时间。
在一种可能的实施方式中,所述逻辑事件记录模块520,用于记录应用软件的业务逻辑所调用函数的名称及所述函数使用的参数。
本发明实施例还提出一种应用软件操作的复现装置,如图6为该装置结构示意图,包括:
读取模块610,用于读取预先存储的至少一个外部输入事件和至少一个逻辑事件;
外部输入事件分发模块620,用于分发所述外部输入事件;
逻辑事件分发模块630,用于对所述逻辑事件进行修正,分发修正后的逻辑事件。
在一种可能的实施方式中,所述逻辑事件包括:应用软件的业务逻辑所调用函数的名称及所述函数使用的参数。
本发明实施例还提出另一种应用软件操作的复现装置,如图7为该装置结构示意图,包括:
读取模块610,用于读取预先存储的至少一个外部输入事件和至少一个逻辑事件;
外部输入事件分发模块620,用于分发所述外部输入事件;
逻辑事件分发模块630,用于对所述逻辑事件进行修正,分发修正后的逻辑事件。
其中,逻辑事件分发模块630可以包括:
第一校验子模块631,用于判断所述函数在需要调用的时间段内是否被调用,如果未被调用,则将所述逻辑事件提供给第一分发子模块632;
第一分发子模块632,用于分发所述逻辑事件。
或者,所述逻辑事件分发模块630可以包括:
第二校验子模块633,用于判断所述函数在需要调用的时间段内是否被调用,并且使用的参数与所述逻辑事件中包括的参数不同,如果是,则将所述逻辑事件中包括的参数发送至第二分发子模块634;
第二分发子模块634,用于将所述逻辑事件中包括的参数提供给对应的业务逻辑,以供所述业务逻辑在调用所述函数时使用。
或者,所述逻辑事件分发模块630可以包括:
第三校验子模块635,用于判断所述函数是否在不需要调用的时间段内被调用,如果是,则通知第三分发子模块636;
第三分发子模块636,用于根据所述通知,阻止对应的业务逻辑调用所述函数。
为了简要描述,以上将第一校验子模块631、第一分发子模块632、第二校验子模块633、第二分发子模块634、第三校验子模块635、第三分发子模块636放在一个实施例中介绍。在本发明的其他实施例中,逻辑事件分发模块630可以包括第一校验子模块631和第一分发子模块632,或者包括第二校验子模块633和第二分发子模块634,或者包括第三校验子模块635和第三分发子模块636。
本发明实施例各装置中的各模块的功能可以参见上述方法中的对应描述,在此不再赘述。
本发明实施例还提出一种应用软件操作的记录设备,如图8为本发明实施例的应用软件操作的记录设备结构示意图,包括:
存储器11和处理器12,存储器11存储有可在处理器12上运行的计算机程序。所述处理器12执行所述计算机程序时实现上述实施例中的应用软件操作的记录方法。所述存储器11和处理器12的数量可以为一个或多个。
所述设备还可以包括:
通信接口13,用于与外界设备进行通信,进行数据交换传输。
存储器11可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
如果存储器11、处理器12和通信接口13独立实现,则存储器11、处理器12和通信接口13可以通过总线相互连接并完成相互之间的通信。所述总线可以是工业标准体系结构(ISA,Industry Standard Architecture)总线,外部设备互连(PCI,PeripheralComponent Interconnect)总线或扩展工业标准体系结构(EISA,Extended IndustryStandard Architecture)等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器11、处理器12和通信接口13集成在一块芯片上,则存储器11、处理器12和通信接口13可以通过内部接口完成相互间的通信。
本发明实施例还提出一种应用软件操作的复现设备,包括存储器和处理器,存储器存储有可在处理器上运行的计算机程序。所述处理器执行所述计算机程序时实现上述实施例中的应用软件操作的复现方法。本实施例提出的应用软件操作的复现设备与上述实施例中提出的应用软件操作的记录设备的结构相同,在此不再赘述。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。所述存储介质可以是只读存储器,磁盘或光盘等。
综上所述,本发明实施例提出的应用软件操作的记录方法和装置,以及应用软件操作的复现方法和装置,通过记录及复现用户的输入动作产生的外部输入事件、以及应用软件运行产生的逻辑事件,能够记录及复现整个记录过程中出现的动态内容,从而避免在复现过程中发生路径偏离,提高对应用软件操作复现的准确率。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (13)
1.一种应用软件操作的记录方法,其特征在于,包括:
记录输入动作产生的至少一个外部输入事件,记录所述应用软件运行产生的至少一个逻辑事件;其中,通过在应用软件运行时代理窗口事件分发回调对象,利用回调对象记录外部输入事件;
存储所述至少一个外部输入事件和至少一个逻辑事件,以在读取到记录的逻辑事件时,对所述逻辑事件进行参数校验,如果校验未通过则对所述逻辑事件进行修正;如果校验通过则丢弃所述逻辑事件;
其中,所述存储所述至少一个输入事件和至少一个逻辑事件,包括:
按照各个所述外部输入事件及所述逻辑事件产生的时间顺序,存储所述至少一个输入事件和至少一个逻辑事件;
利用外部输入事件记录层记录所述外部输入事件,利用逻辑事件记录层记录所述逻辑事件,所述逻辑事件记录层和所述外部输入事件记录层以轻量级软件开发工具包集成在应用软件中;记录的外部输入事件及逻辑事件按照时间顺序加入到同一个事件队列中;
其中,所述对所述逻辑事件进行修正,包括:
响应于函数在需要调用的时间段内被调用,但使用的参数与所述逻辑事件中包括的参数不同,将所述逻辑事件中包括的参数提供给对应的业务逻辑,以供所述业务逻辑在调用所述函数时使用;所述逻辑事件包括:应用软件的业务逻辑所调用函数的名称及所述函数使用的参数。
2.根据权利要求1所述的方法,其特征在于,所述存储所述至少一个输入事件和至少一个逻辑事件,还包括:
存储所述外部输入事件及所述逻辑事件产生的时间。
3.一种应用软件操作的复现方法,其特征在于,包括:
读取预先存储的至少一个外部输入事件和至少一个逻辑事件;其中,所述至少一个输入事件和至少一个逻辑事件是按照各个所述外部输入事件及所述逻辑事件产生的时间顺序纪录的;利用外部输入事件记录层记录所述外部输入事件,利用逻辑事件记录层记录所述逻辑事件,所述逻辑事件记录层和所述外部输入事件记录层以轻量级软件开发工具包集成在应用软件中;记录的外部输入事件及逻辑事件按照时间顺序加入到同一个事件队列中;其中,通过在应用软件运行时代理窗口事件分发回调对象,利用回调对象记录外部输入事件;
分发所述外部输入事件;并且,对所述逻辑事件进行修正,分发修正后的逻辑事件;
其中,在读取到逻辑事件时,对所述逻辑事件进行参数校验,如果校验未通过则对所述逻辑事件进行修正;如果校验通过则丢弃所述逻辑事件;
所述逻辑事件包括:应用软件的业务逻辑所调用函数的名称及所述函数的参数;
所述对所述逻辑事件进行修正,分发修正后的逻辑事件,包括:
响应于所述函数在需要调用的时间段内被调用,但使用的参数与所述逻辑事件中包括的参数不同,将所述逻辑事件中包括的参数提供给对应的业务逻辑,以供所述业务逻辑在调用所述函数时使用;
所述逻辑事件包括:应用软件的业务逻辑所调用函数的名称及所述函数使用的参数。
4.根据权利要求3所述的方法,其特征在于,
所述对所述逻辑事件进行修正,分发修正后的逻辑事件,包括:
响应于所述函数在需要调用的时间段内没有被调用,分发所述逻辑事件。
5.根据权利要求3所述的方法,其特征在于,
所述对所述逻辑事件进行修正,分发修正后的逻辑事件,包括:
响应于所述函数在不需要调用的时间段内被调用,阻止对应的业务逻辑调用所述函数。
6.一种应用软件操作的记录装置,其特征在于,包括:
外部输入事件记录模块,用于记录输入动作产生的至少一个外部输入事件;其中,通过在应用软件运行时代理窗口事件分发回调对象,利用回调对象记录外部输入事件
逻辑事件记录模块,用于记录所述应用软件运行产生的至少一个逻辑事件;
存储模块,用于存储所述至少一个外部输入事件和至少一个逻辑事件,以在读取到逻辑事件时,对所述逻辑事件进行参数校验,如果校验未通过则对所述逻辑事件进行修正;如果校验通过则丢弃所述逻辑事件;
其中,所述存储模块按照各个所述外部输入事件及所述逻辑事件产生的时间顺序,存储所述至少一个输入事件和至少一个逻辑事件;利用外部输入事件记录层记录所述外部输入事件,利用逻辑事件记录层记录所述逻辑事件,所述逻辑事件记录层和所述外部输入事件记录层以轻量级软件开发工具包集成在应用软件中;记录的外部输入事件及逻辑事件按照时间顺序加入到同一个事件队列中;
其中,所述对所述逻辑事件进行修正,包括:
响应于函数在需要调用的时间段内被调用,但使用的参数与所述逻辑事件中包括的参数不同,将所述逻辑事件中包括的参数提供给对应的业务逻辑,以供所述业务逻辑在调用所述函数时使用;
所述逻辑事件包括:应用软件的业务逻辑所调用函数的名称及所述函数使用的参数。
7.根据权利要求6所述的装置,其特征在于,所述存储模块,用于存储所述外部输入事件及所述逻辑事件产生的时间。
8.一种应用软件操作的复现装置,其特征在于,包括:
读取模块,用于读取预先存储的至少一个外部输入事件和至少一个逻辑事件;其中,所述至少一个输入事件和至少一个逻辑事件是按照各个所述外部输入事件及所述逻辑事件产生的时间顺序存储的;利用外部输入事件记录层记录所述外部输入事件,利用逻辑事件记录层记录所述逻辑事件,所述逻辑事件记录层和所述外部输入事件记录层以轻量级软件开发工具包集成在应用软件中;记录的外部输入事件及逻辑事件按照时间顺序加入到同一个事件队列中;其中,通过在应用软件运行时代理窗口事件分发回调对象,利用回调对象记录外部输入事件;
外部输入事件分发模块,用于分发所述外部输入事件;
逻辑事件分发模块,用于对所述逻辑事件进行修正,分发修正后的逻辑事件;
其中,所述逻辑事件包括:应用软件的业务逻辑所调用函数的名称及所述函数的参数;
所述逻辑事件分发模块具体用于在读取到逻辑事件时,对所述逻辑事件进行参数校验,如果校验未通过则对所述逻辑事件进行修正;如果校验通过则丢弃所述逻辑事件;
所述逻辑事件分发模块包括:
第二校验子模块,用于判断所述函数在需要调用的时间段内是否被调用,并且使用的参数与所述逻辑事件中包括的参数不同,如果是,则将所述逻辑事件中包括的参数发送至第二分发子模块;
所述第二分发子模块,用于将所述逻辑事件中包括的参数提供给对应的业务逻辑,以供所述业务逻辑在调用所述函数时使用;
所述逻辑事件包括:应用软件的业务逻辑所调用函数的名称及所述函数使用的参数。
9.根据权利要求8所述的装置,其特征在于,
所述逻辑事件分发模块包括:
第一校验子模块,用于判断所述函数在需要调用的时间段内是否被调用,如果未被调用,则将所述逻辑事件提供给第一分发子模块;
所述第一分发子模块,用于分发所述逻辑事件。
10.根据权利要求8所述的装置,其特征在于,
所述逻辑事件分发模块包括:
第三校验子模块,用于判断所述函数是否在不需要调用的时间段内被调用,如果是,则通知第三分发子模块;
所述第三分发子模块,用于根据所述通知,阻止对应的业务逻辑调用所述函数。
11.一种应用软件操作的记录设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-2中任一所述的方法。
12.一种应用软件操作的复现设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求3-5中任一所述的方法。
13.一种计算机可读存储介质,其存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811599310.4A CN109684175B (zh) | 2018-12-26 | 2018-12-26 | 应用软件操作的记录方法和装置以及复现方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811599310.4A CN109684175B (zh) | 2018-12-26 | 2018-12-26 | 应用软件操作的记录方法和装置以及复现方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109684175A CN109684175A (zh) | 2019-04-26 |
CN109684175B true CN109684175B (zh) | 2022-07-19 |
Family
ID=66188588
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811599310.4A Active CN109684175B (zh) | 2018-12-26 | 2018-12-26 | 应用软件操作的记录方法和装置以及复现方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109684175B (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10901810B2 (en) * | 2014-05-14 | 2021-01-26 | Intel Corporation | Event-based record and replay for advanced applications |
CN105302700B (zh) * | 2014-06-13 | 2018-11-13 | 阿里巴巴集团控股有限公司 | 一种记录在触摸终端上的用户操作的方法与设备 |
US10083159B1 (en) * | 2016-07-13 | 2018-09-25 | Screen Share Technology Ltd. | Method for recording, editing and reproduction of web browser session |
CN106446066A (zh) * | 2016-09-05 | 2017-02-22 | Tcl海外电子(惠州)有限公司 | 基于用户界面的用户操作记录方法及装置 |
-
2018
- 2018-12-26 CN CN201811599310.4A patent/CN109684175B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109684175A (zh) | 2019-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10142170B2 (en) | Log processing method and client | |
US9665465B1 (en) | Automated determination of application permissions | |
US10552812B2 (en) | Scenario based logging | |
CN105893161A (zh) | 在软件程序中调用资源的方法和装置 | |
CN108874441B (zh) | 一种板卡配置方法、装置、服务器和存储介质 | |
CN113778391A (zh) | 原生应用程序的页面处理方法、装置及设备 | |
CN108132832B (zh) | 应用程序启动方法和装置 | |
CN111159160A (zh) | 一种版本回滚方法、装置、电子设备及存储介质 | |
CN109684175B (zh) | 应用软件操作的记录方法和装置以及复现方法和装置 | |
CN110045952B (zh) | 代码调用方法与装置 | |
US10417116B2 (en) | System, method, and apparatus for crowd-sourced gathering of application execution events for automatic application testing and replay | |
CN108509228A (zh) | 加载页面的方法、终端设备及计算机可读存储介质 | |
CN110362294A (zh) | 开发任务执行方法、装置、电子设备及存储介质 | |
US11630714B2 (en) | Automated crash recovery | |
CN112905449B (zh) | 目标测试方法、装置、设备和存储介质 | |
CN114356290A (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN112882921B (zh) | 故障模拟方法和装置 | |
CN110727537B (zh) | 统一处理响应报文的方法、装置、计算机设备及存储介质 | |
CN110119289B (zh) | 一种在线页面粘贴方法、装置、介质和电子设备 | |
US10241892B2 (en) | Issuance of static analysis complaints | |
CN111310175A (zh) | 基于插件化的iOS应用安全监测与防护方法及装置 | |
CN116126581B (zh) | 内存故障处理方法、装置、系统、设备及存储介质 | |
US9697018B2 (en) | Synthesizing inputs to preserve functionality | |
US20220156005A1 (en) | Service management device, service management method, and non-transitory computer-readable recording medium | |
JP2014119869A (ja) | シンボリック実行方法、シンボリック実行プログラム及びシンボリック実行装置 |
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 |