CN110515854B - 应用程序异常的复现方法、装置和电子设备 - Google Patents

应用程序异常的复现方法、装置和电子设备 Download PDF

Info

Publication number
CN110515854B
CN110515854B CN201910821633.1A CN201910821633A CN110515854B CN 110515854 B CN110515854 B CN 110515854B CN 201910821633 A CN201910821633 A CN 201910821633A CN 110515854 B CN110515854 B CN 110515854B
Authority
CN
China
Prior art keywords
touch
request
response
touch terminal
test
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
Application number
CN201910821633.1A
Other languages
English (en)
Other versions
CN110515854A (zh
Inventor
袁定波
雷应锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN201910821633.1A priority Critical patent/CN110515854B/zh
Publication of CN110515854A publication Critical patent/CN110515854A/zh
Application granted granted Critical
Publication of CN110515854B publication Critical patent/CN110515854B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本发明提供了一种应用程序异常的复现方法、装置和电子设备,涉及计算机技术领域,该方法包括:接收所述目标触控终端响应针对所述客户端的第二操作发送的第一请求,所述第二操作为所述第一操作在所述测试触控终端中的镜像;响应所述第一请求,根据所述配置数据向所述目标触控终端发送第一响应,以便于所述目标触控终端根据所述第一请求和第一响应复现所述客户端出现的异常,解决了测试时的环境与复现时的环境之间的差异大造成的异常被复现的概率,提升了异常被复现的概率。

Description

应用程序异常的复现方法、装置和电子设备
技术领域
本发明涉及应用程序异常的复现技术领域,尤其是涉及一种应用程序异常的复现方法、装置和电子设备。
背景技术
程序测试指在规定的条件下对程序进行操作,以发现程序漏洞(BUG),衡量软件质量,对软件是否能满足设计要求进行评估。通过程序测试能够促进鉴定软件的正确性、完整性、安全性以及质量等。
目前,测试人员对触控终端进行操作,如果终端不能正常响应则出现BUG,通过在终端中进行同样的操作可以复现遇到的BUG,通过对BUG的复现,可以有效的分析出现BUG的原因。
然而,因为测试时的环境与复现时的环境可能是不同的,无法复现的BUG的概率非常高。
发明内容
有鉴于此,本发明的目的在于提供一种应用程序异常的复现方法、装置和电子设备,以提高复现应用程序异常的成功率,提升应用程序异常的修复效率。
第一方面,提供了一种应用程序异常的复现方法。该方法应用于代理服务器,预先安装有所述应用程序的客户端的测试触控终端和目标触控终端分别与所述代理服务器通信连接;所述代理服务器预先配置有用于响应不同终端针对同一客户端的相同操作发送的请求,返回相同响应的配置数据;所述测试触控终端在响应针对所述客户端的第一操作时,所述客户端出现异常;所述方法包括:
接收所述目标触控终端响应针对所述客户端的第二操作发送的第一请求,所述第二操作为所述第一操作在所述测试触控终端中的镜像;
响应所述第一请求,根据所述配置数据向所述目标触控终端发送第一响应,以便于所述目标触控终端根据所述第一请求和第一响应复现所述客户端出现的异常。
在一些可选的实现中,响应所述第一请求,根据所述配置数据向所述目标触控终端发送第一响应的步骤,包括:
响应所述第一请求,根据所述配置数据向将所述第一请求修改为第二请求;其中,所述配置数据包括,将测试触控终端响应针对所述客户端的第一操作发送的第三请求和所述第一请求,修改为相同的第二请求的配置数据;
向预先安装有所述应用程序的服务端的应用服务器发送所述第二请求;
接收所述应用服务器响应所述第二请求发送的第一响应,并向所述目标触控终端发送第一响应。
在一些可选的实现中,所述第一请求、第二请求和第三请求为http格式的请求,通过对所述第三请求或所述第一请求中请求头、URL参数和请求体中的任意一项或多项的进行修改,得到所述第二请求。
在一些可选的实现中,响应所述第一请求,根据所述配置数据向所述目标触控终端发送第一响应的步骤,包括:
响应所述第一请求,根据所述配置数据确定预先定义的第一响应;
向所述目标触控终端发送所述第一响应。
在一些可选的实现中,所述代理服务器包括数据库,所述数据库用于存储所述配置数据,还包括:
与所述测试触控终端建立通信连接;
通过所述通信连接,接收所述测试触控终端发送的配置指令;
根据所述配置指令进行配置操作;其中,所述配置操作包括读取所述配置数据、设置所述配置数据、修改所述配置数据中的一项或多项。
第二方面,提供了一种应用程序异常的复现方法。所述方法应用于控制模块,所述控制模块与测试触控终端和目标触控终端连接,所述测试触控终端和所述目标触控终端预先安装有所述应用程序的客户端;所述测试触控终端在响应针对所述客户端的第一操作时,所述客户端出现异常;所述方法包括:
通过监听所述测试触控终端的触摸事件,确定与所述第一操作对应的多个所述触摸事件的信息;
获取所述测试触控终端的高宽信息;
应用所述测试触控终端的高宽信息,在所述目标触控终端对与所述第一操作对应的多个所述触摸事件的信息进行镜像,生成针对所述客户端的第二操作,以便所述目标触控终端通过响应所述第二操作复现所述客户端出现的异常。
在一些可选的实现中,所述触摸事件的信息包括所述触摸事件的类型,所述触摸事件的类型包括离开UP操作、移动MOVE操作或按下DOWN操作。
在一些可选的实现中,监听所述测试触控终端的触摸事件的信息的步骤包括:
实时监听所述测试触控终端的对应于触摸事件的命令串行数据流,并对监听到的命令串行数据流进行复制,每个所述触摸事件包括多个命令;
根据复制的与所述第一操作对应的命令串行数据流,确定与所述第一操作对应的多个命令的时间戳、命令类型、命令代码和命令值;
应用与所述第一操作对应的多个命令的时间戳、命令类型、命令代码和命令值,确定与所述第一操作的多个所述触摸事件的时间戳、触摸类型和触控点参数,其中,所述触摸类型包括单点触控类型或多点触控类型,所述触控点参数包括触控点位置、触控点编号和触控点的压力。
在一些可选的实现中,监听所述测试触控终端的触摸事件的信息的步骤,还包括:
监听所述测试触控终端的对应于触摸事件的命令串行数据流,并对监听到的命令串行数据流进行复制,每个所述触摸事件包括多个命令;
对于每个所述触摸事件,根据复制的命令串行数据流,确定与该触摸事件对应的每个命令的时间戳、命令类型、命令代码和命令值;
对于每个所述触摸事件,均应用与该触摸事件对应的多个命令的时间戳、命令类型、命令代码和命令值,确定该触摸事件的时间戳、触摸类型和触控点参数,其中,所述触摸类型包括单点触控类型或多点触控类型,所述触控点参数包括触控点位置、触控点编号和触控点的压力;
将每个所述触摸事件的时间戳、触摸类型和触控点参数存储在事件数据库中。
在一些可选的实现中,在获取所述测试触控终端的高宽信息和所述目标触控终端的高宽信息的步骤之前,还包括:
响应针对第一操作的复现指令,从所述事件数据库中获取与所述第一操作对应的多个所述触摸事件的时间戳、触摸类型和触控点参数。
在一些可选的实现中,应用所述测试触控终端的高宽信息,在所述目标触控终端对所述第一操作的多个触摸信息进行镜像的步骤,包括:
应用所述测试触控终端的高宽信息,确定与所述第一操作对应的触控点参数,对应于所述目标触控终端的相对触控点参数;
根据与所述第一操作对应的多个所述触摸事件的时间戳、触摸类型和相对触控点参数,在所述目标触控终端将所述第一操作镜像为所述第二操作。
第三方面,提供了一种应用程序异常的复现方法。所述方法应用于触控终端,控制模块与所述触控终端连接,所述终端预先安装有所述应用程序的客户端;代理服务器预先配置有用于响应不同终端针对同一客户端的相同操作发送的请求,返回相同响应的配置数据;所述方法包括:
响应针对所述客户端的第二操作,向所述代理服务器发送第一请求;
接收所述代理服务器响应所述第一请求根据所述配置数据发送的第一响应;
根据所述第一请求和第一响应复现所述客户端出现的异常。
在一些可选的实现中,还包括:
响应针对所述客户端的第一操作,向所述代理服务器发送所述第一请求。
在一些可选的实现中,还包括:
与所述代理服务器建立通信连接;
通过所述通信连接,向所述代理服务器发送的配置指令,所述配置指令用于读取所述配置数据、设置所述配置数据、修改所述配置数据中的一项或多项。
在一些可选的实现中,通过所述通信连接,向所述代理服务器发送的配置指令的步骤,包括:
通过所述通信连接,获取并显示用于配置的图形用户界面,所述图形用户界面包括配置项组件;
响应针对所述配置项组件的操作,向所述代理服务器发送配置指令。
在一些可选的实现中,所述图形用户界面还包括测试数据展示组件,所述方法还包括:
响应针对所述测试数据展示组件的操作,向所述代理服务器发送测试数据获取请求;
接收所述代理服务器发送的测试上下文数据,并显示在所述图形用户界面中。
第四方面,提供了一种应用程序异常的复现装置。所述装置应用于代理服务器,预先安装有所述应用程序的客户端的测试触控终端和目标触控终端分别与所述代理服务器通信连接;所述代理服务器预先配置有用于响应不同终端针对同一客户端的相同操作发送的请求,返回相同响应的配置数据;所述测试触控终端在响应针对所述客户端的第一操作时,所述客户端出现异常;所述装置包括:
接收单元,用于接收所述目标触控终端响应针对所述客户端的第二操作发送的第一请求,所述第二操作为所述第一操作在所述测试触控终端中的镜像;
响应单元,用于响应所述第一请求,根据所述配置数据向所述目标触控终端发送第一响应,以便于所述目标触控终端根据所述第一请求和第一响应复现所述客户端出现的异常。
第五方面,提供了一种应用程序异常的复现装置。所述装置应用于控制模块,所述控制模块与测试触控终端和目标触控终端连接,所述测试触控终端和所述目标触控终端预先安装有所述应用程序的客户端;所述测试触控终端在响应针对所述客户端的第一操作时,所述客户端出现异常;所述装置包括:
确定单元,用于通过监听所述测试触控终端的触摸事件,确定与所述第一操作对应的多个所述触摸事件的信息;
获取单元,用于获取所述测试触控终端的高宽信息;
镜像单元,用于应用所述测试触控终端的高宽信息,在所述目标触控终端对与所述第一操作对应的多个所述触摸事件的信息进行镜像,生成针对所述客户端的第二操作,以便所述目标触控终端通过响应所述第二操作复现所述客户端出现的异常。
第六方面,提供了一种应用程序异常的复现装置。所述装置应用于触控终端,控制模块与所述触控终端连接,所述终端预先安装有所述应用程序的客户端;代理服务器预先配置有用于响应不同终端针对同一客户端的相同操作发送的请求,返回相同响应的配置数据;所述装置包括:
响应单元,用于响应针对所述客户端的第二操作,向所述代理服务器发送第一请求;
接收单元,用于接收所述代理服务器响应所述第一请求根据所述配置数据发送的第一响应;
复现单元,用于根据所述第一请求和第一响应复现所述客户端出现的异常。
第七方面,本发明实施例提供了一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述应用程序异常的复现方法的步骤。
第八方面,本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有机器可执行指令,该机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述应用程序异常的复现方法的步骤。
本发明实施例带来了以下有益效果:
本发明实施例提供的一种应用程序异常的复现方法、装置和电子设备,对测试触控终端上的操作进行监控以及镜像,并在代理服务器中预设配置数据,使得目标触控终端和测试触控终端接收到同样的响应,这样在目标触控终端上对操作和响应都进行高度还原,以实现复现客户端出现的异常,降低了测试时的环境与复现时的环境之间的差异,提升了异常被复现的概率,提升了修复异常的效率。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种应用场景示意图;
图2为本发明实施例提供的一种应用程序异常的复现方法的信令交互示意图;
图3为本发明实施例提供的另一种应用程序异常的复现方法的流程图;
图4为本发明实施例提供的另一种应用程序异常的复现方法的流程图;
图5为本发明实施例提供的一个示例;
图6为本发明实施例提供的另一种应用程序异常的复现方法的流程图;
图7为本发明实施例提供的一种应用程序异常的复现装置的结构示意图;
图8为本发明实施例提供的另一种应用程序异常的复现装置的结构示意图;
图9为本发明实施例提供的另一种应用程序异常的复现装置的结构示意图;
图10为本发明实施例提供的一种代理服务器的结构示意图;
图11为本发明实施例提供的一种控制模块的结构示意图;
图12为本发明实施例提供的一种触控终端的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
考虑到因为测试时的环境与复现时的环境可能是不同的,无法复现的BUG的概率非常高的问题,大概率是在复现时,针对终端的操作不完全相同,或者应用服务器对于不同终端或不同时间的请求会返回不同的响应等的问题造成的。本发明实施例提供一种应用程序异常的复现方法、装置和电子设备,该技术可以应用于如图1所示的应用场景中,该应用场景包括终端101、代理服务器102和控制模块103。在一些实施例中,该场景还可以包括应用服务器104。其中,终端101与代理服务器102和控制模块103连接,该代理服务器102可以与应用服务器104连接。
在一些实施例中,该终端101可以包括测试终端和目标终端,其中测试终端用于进行测试,目标终端用于复现在测试终端上进行的测试。该测试终端和该目标终端可以为相同的终端或不同的终端。
另外,该终端101可以为触控终端也可以为非触控终端,例如,该终端101可以为手机、平板电脑或计算机等能够进行操作的电子设备。在本申请实施例中,该终端101以触控终端为例进行介绍。
在一些实施例中,该控制模块103可以对终端101进行监听以及对监听到的操作在其他终端101上进行镜像。例如,该控制模块103可以对测试触控终端进行监听,对监听到的操作,可以在目标触控终端上进行镜像。
下面结合附图和具体实施例对本申请实施例进行进一步地介绍。
图2为本申请实施例提供的一种应用程序异常的复现方法的信令交互示意图。该方法适用于图1所示的场景,其中,客户端的测试触控终端和目标触控终端分别预先安装有应用程序的;代理服务器预先配置有用于响应不同终端针对同一客户端的相同操作发送的请求,返回相同响应的配置数据。如图2所示,该方法具体可以包括如下步骤:
S210,测试触控终端响应针对客户端的第一操作时,客户端出现异常;
S220,控制模块通过监听测试触控终端的触摸事件,确定与第一操作对应的多个触摸事件的信息;
S230,控制模块在目标触控终端对与第一操作对应的多个触摸事件的信息进行镜像,生成针对客户端的第二操作;
S240,目标触控终端响应针对客户端的第二操作,向代理服务器发送第一请求;
S250,代理服务器响应第一请求,根据配置数据向目标触控终端发送第一响应;以使得该目标触控终端根据第一请求和第一响应复现客户端出现的异常。
下面对上述步骤S210-S250进行详细介绍。
对于步骤S210,用户可以通过在测试触控终端上针对应待测试的应用程序的客户端进行测试操作。例如,可以在测试触控终端上针对客户端提供的各种图形用户界面,进行滑动、点击、长按等单指或多指手势的操作。根据测试终端对操作是否能正常响应来确定是否出现异常,例如,在测试过程中,测试终端针对操作出现黑屏、卡死、闪退等非正常响应时,确认出现异常。在本申请实施例中,该第一操作可以是指在测试触控终端进行测试时,任意异常对应的操作。
另外,测试触控终端可以响应该第一操作,并向代理服务器发送第三请求。代理服务器可以响应第三请求,向测试触控终端发送第一响应。通常,该第三请求和该第一响应可以造成该测试触控终端出现异常。
对于步骤S220,控制模块可以对测试触控终端上的触摸事件进行实时监听,对监听到的触摸事件进行记录,在需要复现时,获取记录中与第一操作对应的多个触摸事件的信息。也可以是,控制模块根据监听到的与第一操作对应的多个触摸事件的信息,在目标终端上进行实时复现。
对于步骤S230,由于测试时的测试触控终端与复现时的目标触控终端存在一定的差异,造成客户端的图形用户界面在测试触控终端和目标触控终端存在一定的差异,所以在复现时,控制模块可以将基于平面的绝对位置的第一操作转换为基于客户端的相对位置的第二操作,以更精确地在目标触控终端上复现第一操作。
在一些实施例中,控制模块可以获取测试触控终端的高宽信息,该高宽信息为屏幕的高宽信息。例如,控制模块可以通过USB或无线网络的方式与测试触控终端建立连接,通过该连接向测试触控终端发送屏幕参数查询(dumpsys display)命令,测试触控终端响应该屏幕参数查询命令返回屏幕参数数据流,针对该数据流采用如下所示的正则表达式可获得屏幕的宽高信息:
.*DisplayViewport{valid=true,.*orientation=(\d+),.*deviceWid th=(\d+),deviceHeight=(\d+).*
通过如下方式计算得到测试触控终端上针对客户端的触摸事件的相对位置(relatePosX,relatePosY):
relatePosX=evt.PosX/srcDevice.Display.Width;
relatePosY=evt.PosY/srcDevice.Display.Height
其中(evt.PosX,evt.PosY)为触摸事件对应的屏幕绝对位置;srcDevice.Display.Width和srcDevice.Display.Height分别为测试触控终端的平面宽高。
根据该触摸事件的相对位置对触摸事件在目标终端上进行镜像,可以实现高精度复刻。
对于步骤S250,可以在代理服务器预先配置配置数据。该配置数据可以包括个人配置、项目配置和接口配置中的一项或多项。
其中,个人配置主要包括个人信息。例如,个人所属项目组信息配置、所使用的测试/目标触控终端的设备IP信息配置等。
项目配置可以包括项目相关的配置。例如,项目创建、项目信息更新、项目管理员添加、项目成员增删等。
接口配置主要用于配置测试场景。例如,状态码定制、上/下行定制、公开(项目组内皆可见)/私有(仅自己可见)定制、响应时间定制、请求头定制、请求体定制、响应头定制、响应体定制。
代理服务器在接收到第一请求或第三请求后,读取该第一请求或第三请求对应的配置数据:
如果根据配置数据确定,需要继续向应用服务器发送请求,则对第一请求或第三请求进行修改(例如,修改请求头、URL参数或请求体中的一项或多项)得到第二请求,再向应用服务器转发该第二请求,从应用服务器获得该第二请求的第一响应后,将该第一响应转发给目标触控终端或测试触控终端。
如果根据配置数据确定,如果不需要继续向应用服务器请求,则读取用户定制的第一响应,该第一响应可以包括响应头,响应状态码,响应体等,再将该第一响应发送给目标触控终端或测试触控终端。
通过本申请实施例,对测试触控终端上的操作进行监控以及镜像,并在代理服务器中预设配置数据,使得目标触控终端和测试触控终端接收到同样的响应,这样在目标触控终端上对操作和响应都进行高度还原,以实现复现客户端出现的异常,降低了测试时的环境与复现时的环境之间的差异,提升了异常被复现的概率,提升了修复异常的效率。
下面结合附图以及具体实施例,分别对应用于代理服务器、控制模块和触控终端的应用程序异常的复现方法进行详细介绍。
图3为本申请实施例提供的一种应用程序异常的复现方法。该方法应用于代理服务器。其中,预先安装有应用程序的客户端的测试触控终端和目标触控终端分别与代理服务器通信连接;该代理服务器预先配置有用于响应不同终端针对同一客户端的相同操作发送的请求,返回相同响应的配置数据;测试触控终端在响应针对客户端的第一操作时,客户端出现异常。
如图3所示,该方法包括:
S310,接收目标触控终端响应针对客户端的第二操作发送的第一请求。该第二操作为第一操作在测试触控终端中的镜像。
S320,响应第一请求,根据配置数据向目标触控终端发送第一响应,以便于目标触控终端根据第一请求和第一响应复现客户端出现的异常。
对于步骤S320,根据配置数据响应不同终端针对同一客户端的相同操作发送的请求,返回相同响应方式可以包括多种。
作为一个示例,可以通过向应用服务器发送相同的请求,以获取相同的响应。基于此,上述步骤S320具体可以通过如下步骤实现:
步骤1.1),响应第一请求,根据配置数据向将第一请求修改为第二请求;其中,配置数据包括,将测试触控终端响应针对客户端的第一操作发送的第三请求和第一请求,修改为相同的第二请求的配置数据;
步骤1.2),向预先安装有应用程序的服务端的应用服务器发送第二请求;
步骤1.3),接收应用服务器响应第二请求发送的第一响应,并向目标触控终端发送第一响应。
作为另一个示例,可以预先定义相同的响应,基于此,上述步骤S320具体可以通过如下步骤实现:
步骤2.1),响应第一请求,根据配置数据确定预先定义的第一响应;
步骤2.2),向目标触控终端发送第一响应。
在一些实施例中,上述第一请求、第二请求和第三请求可以为http格式的请求,通过对第三请求或第一请求中请求头、URL参数和请求体中的任意一项或多项的进行修改,得到第二请求。
例如,代理服务器可以包括Mockxy代理服务模块,该Mockxy代理服务(ProxyServer)模块可以采用RFC7230–HTTP/1.1:Message Syntax and Routing(消息语法和录音)协议格式,该Mockxy代理服务模块可以测试/目标触控终端到应用服务器之间的请求进行抓取、修改、阻塞等操作。具体地:
该Mockxy代理服务模块可以开启一个端口,用于监听连接到代理服务器上的测试/目标触控终端的请求。
该Mockxy代理服务模块还可以对监听到的请求数据进行解析,得到如下信息:测试/目标触控终端IP信息、第一请求/第三请求的URL信息、第一请求/第三请求的请求头(request headers)、第一请求/第三请求的URL参数(request parameters)、第一请求/第三请求的请求体(request body);其中,第一请求/第三请求可以称为真是请求,第二请求可以称为构造请求。
该Mockxy代理服务模块还可以从代理Web服务模块中读取配置数据。
Mockxy代理服务模块根据配置数据确定,如果需要继续向应用服务器请求,则根据配置数据对请求进行修改(例如,将第一请求/第三请求修改为第二请求),向应用服务器发送修改后的请求,从应用服务器接收到响应(例如,第一响应)后,再转发给测试/目标触控终端。
Mockxy代理服务模块根据配置数据确定,如果不需要继续向应用服务器请求,则从配置数据中读取用户定制的响应(例如,第一响应,该第一响应可以包括:响应头、响应状态码和响应体等),再将用户定制的响应转发给测试/目标触控终端。
在一些实施例中,代理服务器包括数据库,数据库用于存储配置数据,例如,该数据库可以通过代理Web服务模块进行调用。基于此,该方法还可以包括:
步骤3.1),与测试触控终端建立通信连接;
步骤3.2),通过通信连接,接收测试触控终端发送的配置指令;
步骤3.3),根据配置指令进行配置操作;其中,该配置操作包括读取配置数据、设置配置数据、修改配置数据中的一项或多项。
例如,代理服务器可以提供Mockxy前端用户界面,该Mockxy前端用户界面主要针对配置数据的交互页面。例如,该Mockxy前端用户界面可以包括:接口数据展示模块、接口配置模块、项目配置模块、个人配置模块。
通过接口配置模块可以对接口进行配置。通过对接口进行配置可以定制各种测试场景。该模块主要为用户提供了状态码定制、上/下行定制、公开(项目组内皆可见)/私有(仅自己可见)定制、响应时间定制、请求头定制、请求体定制、响应头定制、响应体定制。在一些实施例中,还可以提供激活/关闭对应配置的功能,方便用户灵活调整或定制测试场景。
通过个人配置模块可以配置一些个人信息:例如,配置个人所属项目组信息配置、所使用的测试/目标触控终端的设备IP信息配置等。其中,接口数据展示模块和接口配置模块的功能仅仅会针对个人配置模块已经配置的测试/目标触控终端IP信息的设备生效。
通过项目配置模块可以进行项目相关的配置,例如,项目创建、项目信息更新、项目管理员添加、项目成员增删等。其中接口配置模块中的公开定制的测试场景数据在项目组内是公开可见。
通过接口数据展示模块可以展示测试/目标触控终端的测试上下文数据。该测试上下文数据可以包括接口请求的状态码、接口请求方法(GET/POST等)、接口请求对应的URL、接口上下行数据包大小、接口上下行请求耗时、测试/目标触控终端的IP信息、请求发生的时间戳、接口请求的请求头、请求体、URL参数、响应头、响应体等信息。在一些实施例中,请求头、请求体、响应头、响应体信息可以以json格式呈现,方便用户增删改查。
通过本申请实施例,代理服务器可以为不同终端针对同一客户端的相同操作发送的请求,返回相同响应,根据该响应进行异常复现时,降低了测试时的环境与复现时的环境之间的差异,提升了异常被复现的概率。
图4为本申请实施例提供的另一种应用程序异常的复现方法。该方法应用于控制模块。其中,控制模块与测试触控终端和目标触控终端连接,该测试触控终端和目标触控终端预先安装有应用程序的客户端;测试触控终端在响应针对客户端的第一操作时,客户端出现异常。如图4所示,该方法包括:
S410,通过监听测试触控终端的触摸事件,确定与第一操作对应的多个触摸事件的信息;
S420,获取测试触控终端的高宽信息;
S430,应用测试触控终端的高宽信息,在目标触控终端对与第一操作对应的多个触摸事件的信息进行镜像,生成针对客户端的第二操作,以便目标触控终端通过响应第二操作复现客户端出现的异常。
在一些实施例中,该触摸事件的信息可以包括触摸事件的类型,触摸事件的类型包括离开UP操作、移动MOVE操作或按下DOWN操作。
在一个示例中,可以实时对监听到的操作在目标触控终端中进行镜像,基于此,上述步骤S410具体可以通过如下步骤实现:
步骤4.1),实时监听测试触控终端的对应于触摸事件的命令串行数据流,并对监听到的命令串行数据流进行复制,每个触摸事件包括多个命令;
步骤4.2),根据复制的与第一操作对应的命令串行数据流,确定与第一操作对应的多个命令的时间戳、命令类型、命令代码和命令值;
步骤4.3),应用与第一操作对应的多个命令的时间戳、命令类型、命令代码和命令值,确定与第一操作的多个触摸事件的时间戳、触摸类型和触控点参数,其中,触摸类型包括单点触控类型或多点触控类型,触控点参数包括触控点位置、触控点编号和触控点的压力。
在另一个示例中,可以先对监听到的操作进行存储,在需要进行复现时,依据存储的操作进行复现,基于此,上述步骤S410具体可以通过如下步骤实现:
步骤5.1),监听测试触控终端的对应于触摸事件的命令串行数据流,并对监听到的命令串行数据流进行复制,每个触摸事件包括多个命令;
步骤5.2),对于每个触摸事件,根据复制的命令串行数据流,确定与该触摸事件对应的每个命令的时间戳、命令类型、命令代码和命令值;
步骤5.3),对于每触摸事件,均应用与该触摸事件对应的多个命令的时间戳、命令类型、命令代码和命令值,确定该触摸事件的时间戳、触摸类型和触控点参数,其中,该触摸类型包括单点触控类型或多点触控类型,触控点参数包括触控点位置、触控点编号和触控点的压力;
步骤5.4),将每个触摸事件的时间戳、触摸类型和触控点参数存储在事件数据库中。
在一些实施例中,在上述步骤S420之前,还包括:响应针对第一操作的复现指令,从事件数据库中获取与第一操作对应的多个触摸事件的时间戳、触摸类型和触控点参数。
例如,控制模块可以包括事件监听模块、事件解析模块、事件存储模块和事件镜像模块。
其中,该事件监听模块可以监听测试触控终端的操作路径,并采用Buffer将其缓存,供事件解析模块进行解析。事件监听模块可以基于ADB命令来完成。在一些实施例中,可以基于USB/无线网络与测试触控终端建立起socket连接,通过该socket连接发送getevent-lt命令,接收测试触控终端返回的命令串行数据流。事件监听模块可以通过开启线程,持续监听并获取测试触控终端返回的命令串行数据流并将其存入buffer,供事件解析模块解析。例如,上述命令串行数据流如下表1所示:
表1
需要说明的是,命令串行数据流实际接收到的并不是数据表而是数据流,此处仅是为了清晰,用表来表述。
事件解析模块可以针对事件监听模块获取到的命令串行数据流,将其解析为一个或多个完整的用户操作,并将其传递给事件储存模块进行实时储存。
事件解析模块可以根据linux输入子系统的协议规范来对数据流进行解析。下面介绍其详细的原理和操作过程。
首先,需要判断测试触控终端的触屏协议类型为单点触控类型、多点触控类型A,还是多点触控类型B。可以通过如下规则进行判断:
如果命令串行数据流中包含了ABS_MT_POSITION_X,ABS_MT_POSITION_Y,且包含了ABS_MT_SLOT,则其触屏协议类型为多点触控类型B。
如果命令串行数据流中包含了ABS_MT_POSITION_X,ABS_MT_POSITION_Y,且不包含ABS_MT_SLOT,则其触屏协议类型为多点触控类型A。
如果命令串行数据流中不包含ABS_MT_POSTION_X,且不包含ABS_MT_POSITION_Y,则其触屏协议类型为单点触控类型。
接下来,在获取到测试触控终端的触屏协议类型后,可以针对其具体的触屏类型对命令串行数据流进行解析了。例如,可以通过如下正则表达式对命令串行数据流进行解析:
\[\s*(\d+\.\d+)\]\s*(.*):(\w*)\s*?(\w+)\s*?(\w+)
例如,命令串行数据[26163.316491]/dev/input/event0:EV_ABS ABS_MT_POSITION_X 00000179,被解析为:
时间戳:26163.316491;
ET(Event Type,命令类型):EV_ABS;
EC(Event Code,命令代码):ABS_MT_POSITION_X;
EV(Event Value,命令值):0x00000179。
然后针对上面的{Timestamp,ET,EC,EV}构成的命令串行数据流,采用如图5所示的流程图进行解析:
首先,进行初始化工作,SLOTS置位空数组;lastTrackingIDs置为空数组;currentSlot置为零;evt(包含Timestamp,Type,Contact,Pressure,Major,PosX,PosY,TrackingID等属性的结构体)初始化,其中,对于evt的初始化,将TrackingID置为0xFFFFFFFF,其余值均为零。
当ET==EV_ABS时:
如果EC的值为ABS_MT_POSITION_X,或ABS_MT_POSITION_Y,或ABS_MT_PRESSURE,或ABS_MT_TOUCH_MAJOR,则将其对应的EV的值赋给当前SLOT对应的属性;
如果EC的值为ABS_MT_SLOT:如果EV的值大于等于SLOTS的程度,则新建一个SLOT,并添加到SLOTS数组中,且用EV值更新currentSlot的值;否则,直接用EV值更新currentSlot的值。
当ET==EV_SYN时:
如果EC的值为SYN_REPORT:如果TRACKING ID值为0xFFFFFF,则单次事件解析完成,且触摸类型为UP操作;如果TRACKING ID值不是0xFFFFFFFF,且上次的TRACKING ID与当前TRACKING ID一致,则触摸类型为MOVE操作;如果TRACKING ID值不是0xFFFFFFFF,且上次的TRACKING ID与当前TRACKING ID不一致,则触摸类型为DOWN操作,单次事件解析完成。
事件储存模块可以将事件解析模块解析得到的测试触控终端的触摸事件的时间戳、触摸类型和触控点参数进行储存,测试触控终端的触摸事件的时间戳、触摸类型和触控点参数进行储存也可以称为操作路径序列。作为一个示例,针对实时镜像:储存模块会将测试触控终端的操作路径序列通过管道/Buffer/队列的方式储存在内存中,供事件镜像模块获取;针对非实时镜像方案:储存模块会将测试触控终端的操作路径序列json化,然后将其存入事件数据库文件,事件镜像模块通过加载事件数据库文件的方式来获取测试触控终端的设备操作路径序列。
在一些实施例中,在镜像时,可以根据触控点的绝对位置确定触控点的相对位置,根据相对位置进行镜像,更精确。基于此,上述步骤S430具体可以通过如下步骤实现:
步骤6.1),应用测试触控终端的高宽信息,确定与第一操作对应的触控点参数,对应于目标触控终端的相对触控点参数;
步骤6.2),根据与第一操作对应的多个触摸事件的时间戳、触摸类型和相对触控点参数,在目标触控终端将第一操作镜像为第二操作。
例如,事件镜像模块可以从事件数据库文件或内存中读取测试触控终端的设备操作序列,并将其镜像操作在各目标触控终端。具体可以利用minitouch来实现镜像过程。其操作步骤如下:
初始化minitouch的socket连接;
获取测试触控终端设备的宽高信息;
从事件数据库文件或内存中逐个读取触摸事件的时间戳、触摸类型和相对触控点参数。并根据触摸事件的触控点的绝对位置确定测试触控终端上触摸事件的触控点的相对位置;
根据触摸类型来判断当前触摸事件为按下操作(DOWN),抬起操作(UP),还是滑动操作(MOVE),还是具体的设备硬键操作。同时根据触摸事件的触控点参数来判断当前操作为多点触控的第几个点。根据触摸事件的触控点参数来判断按压的压力值。然后调用minitouch的操作封装给目标触控终端发送对应的指令。例如:
“d 0 0.5 0.5 50”:该指令表示多点触控的第一个点,相对位置为(0.5,0.5)的位置,按压压力为50的点击操作。
“m 1 0.6 0.6 50”:该指令表示多点触控的第二个点,相对位置为(0.6,0.6)的位置,按压压力为50的滑动操作。
“u 1 0.6 0.6 50”:该指令表示多点触控的第二个点,相对位置为(0.6,0.6)的位置抬起操作。
在一些实施例中,确定当前触控事件的时间戳和上一个触控事件的时间戳之间的时间差。事件镜像模块可以在睡眠对应的时间差之后,再次执行下一个触控事件的镜像。另外,目标触控终端和测试触控终端之间可能由于设备性能等差异,导致操作的响应时间不一致,因此此处用户可针对不同的目标触控终端传入时间间隔参数,事件镜像模块会根据用户传入的参数执行睡眠操作后,再执行下一个触控事件的镜像。逐个完成测试触控终端的操作路径序列在目标触控终端上的高精度复刻。
通过本发明实施例,控制模块可以将测试触控终端的操作高精度复刻在目标触控终端上,根据该响应进行异常复现时,降低了测试时的环境与复现时的环境之间的差异,提升了异常被复现的概率。
图6为本申请实施例提供的另一种应用程序异常的复现方法。该方法应用于触控终端。其中,该控制模块与触控终端连接,该终端预先安装有应用程序的客户端;代理服务器预先配置有用于响应不同终端针对同一客户端的相同操作发送的请求,返回相同响应的配置数据;该方法包括:
S610,响应针对客户端的第二操作,向代理服务器发送第一请求;
S620,接收代理服务器响应第一请求根据配置数据发送的第一响应;
S630,根据第一请求和第一响应复现客户端出现的异常。
在一些实施例中,测试触控终端和目标触控终端可以为同一终端,此时,该方法还包括:
响应针对客户端的第一操作,向代理服务器发送第一请求。其中,该触控终端在响应第一操作时,出现异常,此时,可以通过上述步骤S610-S630对该异常进行复现。
其中,根据第一请求和第一响应复现客户端出现的异常,确定触控终端在执行第一请求和第一响应时的日志等上下文信息,根据该上下文等信息可以对该异常进行分析。
在一些实施例中,还可以对代理服务中的配属数据进行配置,基于此,该方法还包括:
步骤7.1),与代理服务器建立通信连接;
步骤7.2),通过该通信连接,向代理服务器发送的配置指令,该配置指令用于读取配置数据、设置配置数据、修改配置数据中的一项或多项。
其中,在一些实施例中,可以通过代理服务器提供的图形用户界面,对代理服务中的配属数据进行配置。基于此,上述步骤7.2)具体可以通过如下步骤实现:
步骤8.1),通过通信连接,获取并显示用于配置的图形用户界面,该图形用户界面包括配置项组件。
步骤8.2),响应针对配置项组件的操作,向代理服务器发送配置指令。
对于步骤8.1),图形用户界面可以如前述图3所示的实施例中的Mockxy前端用户界面,该配置项组件可以如前述图3所示的实施例中接口配置模块、项目配置模块或个人配置模块等。
在一些实施例中,图形用户界面还包括测试数据展示组件,例如,该测试数据展示组件可以如前述图3所示的实施例中的接口数据展示模块。
基于此,该方法还包括:
步骤9.1),响应针对测试数据展示组件的操作,向代理服务器发送测试数据获取请求;
步骤9.2),接收代理服务器发送的测试上下文数据,并显示在图形用户界面中。
通过本发明实施例,可以将前一段时间的操作高精度复刻在当前触控终端上,根据该响应进行异常复现时,降低了测试时的环境与复现时的环境之间的差异,提升了异常被复现的概率。
图7为本申请实施例提供的一种应用程序异常的复现装置结构示意图。该装置应用于代理服务器,预先安装有应用程序的客户端的测试触控终端和目标触控终端分别与代理服务器通信连接;代理服务器预先配置有用于响应不同终端针对同一客户端的相同操作发送的请求,返回相同响应的配置数据;测试触控终端在响应针对客户端的第一操作时,客户端出现异常;如图7所示,该装置包括:
接收单元701,用于接收目标触控终端响应针对客户端的第二操作发送的第一请求,第二操作为第一操作在测试触控终端中的镜像;
响应单元702,用于响应第一请求,根据配置数据向目标触控终端发送第一响应,以便于目标触控终端根据第一请求和第一响应复现客户端出现的异常。
在一些实施例中,响应单元702还用于,响应第一请求,根据配置数据向将第一请求修改为第二请求;其中,配置数据包括,将测试触控终端响应针对客户端的第一操作发送的第三请求和第一请求,修改为相同的第二请求的配置数据;
发送单元,用于向预先安装有应用程序的服务端的应用服务器发送第二请求;
接收单元701还用于,接收应用服务器响应第二请求发送的第一响应,并向目标触控终端发送第一响应。
在一些实施例中,第一请求、第二请求和第三请求为http格式的请求,通过对第三请求或第一请求中请求头、URL参数和请求体中的任意一项或多项的进行修改,得到第二请求。
在一些实施例中,响应单元702具体用于:
响应第一请求,根据配置数据确定预先定义的第一响应;
向目标触控终端发送第一响应。
在一些实施例中,代理服务器包括数据库,数据库用于存储配置数据,还包括:
建立单元,用于与测试触控终端建立通信连接;
接收单元还用于,通过通信连接,接收测试触控终端发送的配置指令;
配置单元,用于根据配置指令进行配置操作;其中,配置操作包括读取配置数据、设置配置数据、修改配置数据中的一项或多项。
图8为本申请实施例提供的一种应用程序异常的复现装置结构示意图。该装置应用于控制模块,控制模块与测试触控终端和目标触控终端连接,测试触控终端和目标触控终端预先安装有应用程序的客户端;测试触控终端在响应针对客户端的第一操作时,客户端出现异常;装置包括:
确定单元801,用于通过监听测试触控终端的触摸事件,确定与第一操作对应的多个触摸事件的信息;
获取单元802,用于获取测试触控终端的高宽信息;
镜像单元803,用于应用测试触控终端的高宽信息,在目标触控终端对与第一操作对应的多个触摸事件的信息进行镜像,生成针对客户端的第二操作,以便目标触控终端通过响应第二操作复现客户端出现的异常。
在一些实施例中,触摸事件的信息包括触摸事件的类型,触摸事件的类型包括离开UP操作、移动MOVE操作或按下DOWN操作。
在一些实施例中,确定单元801具体用于:
实时监听测试触控终端的对应于触摸事件的命令串行数据流,并对监听到的命令串行数据流进行复制,每个触摸事件包括多个命令;
根据复制的与第一操作对应的命令串行数据流,确定与第一操作对应的多个命令的时间戳、命令类型、命令代码和命令值;
应用与第一操作对应的多个命令的时间戳、命令类型、命令代码和命令值,确定与第一操作的多个触摸事件的时间戳、触摸类型和触控点参数,其中,触摸类型包括单点触控类型或多点触控类型,触控点参数包括触控点位置、触控点编号和触控点的压力。
在一些实施例中,确定单元801具体用于:
监听测试触控终端的对应于触摸事件的命令串行数据流,并对监听到的命令串行数据流进行复制,每个触摸事件包括多个命令;
对于每个触摸事件,根据复制的命令串行数据流,确定与该触摸事件对应的每个命令的时间戳、命令类型、命令代码和命令值;
对于每个触摸事件,均应用与该触摸事件对应的多个命令的时间戳、命令类型、命令代码和命令值,确定该触摸事件的时间戳、触摸类型和触控点参数,其中,触摸类型包括单点触控类型或多点触控类型,触控点参数包括触控点位置、触控点编号和触控点的压力;
将每个触摸事件的时间戳、触摸类型和触控点参数存储在事件数据库中。
在一些实施例中,还包括:
响应单元,用于响应针对第一操作的复现指令,从事件数据库中获取与第一操作对应的多个触摸事件的时间戳、触摸类型和触控点参数。
在一些实施例中,镜像单元803具体用于:
应用测试触控终端的高宽信息,确定与第一操作对应的触控点参数,对应于目标触控终端的相对触控点参数;
根据与第一操作对应的多个触摸事件的时间戳、触摸类型和相对触控点参数,在目标触控终端将第一操作镜像为第二操作。
图9为本申请实施例提供的一种应用程序异常的复现装置的结构示意图。该装置应用于触控终端,控制模块与触控终端连接,终端预先安装有应用程序的客户端;代理服务器预先配置有用于响应不同终端针对同一客户端的相同操作发送的请求,返回相同响应的配置数据;如图9所示,该装置包括:
响应单元901,用于响应针对客户端的第二操作,向代理服务器发送第一请求;
接收单元902,用于接收代理服务器响应第一请求根据配置数据发送的第一响应;
复现单元903,用于根据第一请求和第一响应复现客户端出现的异常。
在一些实施例中,响应单元还用于,响应针对客户端的第一操作,向代理服务器发送第一请求。
在一些实施例中,还包括:
建立单元,用于与代理服务器建立通信连接;
发送单元,用于通过通信连接,向代理服务器发送的配置指令,配置指令用于读取配置数据、设置配置数据、修改配置数据中的一项或多项。
在一些实施例中发送单元具体用于:
通过通信连接,获取并显示用于配置的图形用户界面,图形用户界面包括配置项组件;
响应针对配置项组件的操作,向代理服务器发送配置指令。
在一些实施例中,图形用户界面还包括测试数据展示组件,响应单元还用于,响应针对测试数据展示组件的操作,向代理服务器发送测试数据获取请求;
接收单元还用于,接收代理服务器发送的测试上下文数据,并显示在图形用户界面中。
如图10所示,本申请实施例提供的一种代理服务器1000,包括:处理器1001,存储器1002,总线1003和通信接口1004,处理器1001、通信接口1004和存储器1002通过总线1003连接;存储器1002用于存储程序;处理器1001用于通过总线1003调用存储在存储器1002中的程序,执行上述实施例的应用程序异常的复现方法。
具体地,上述存储器1002和处理器1001能够为通用的存储器和处理器,这里不做具体限定,当处理器1001运行存储器1002存储的计算机程序时,能够执行上述应用程序异常的复现方法。
如图11所示,本申请实施例提供的一种控制模块1100,包括:处理器1101,存储器1102,总线1103和通信接口1104,处理器1101、通信接口1104和存储器1102通过总线1103连接;存储器1102用于存储程序;处理器1101用于通过总线1103调用存储在存储器1102中的程序,执行上述实施例的应用程序异常的复现方法。
具体地,上述存储器1102和处理器1101能够为通用的存储器和处理器,这里不做具体限定,当处理器1101运行存储器1102存储的计算机程序时,能够执行上述应用程序异常的复现方法。
如图12所示,本申请实施例提供的一种触控终端1200,包括:处理器1201,存储器1202,总线1203和通信接口1204,处理器1201、通信接口1204和存储器1202通过总线1203连接;存储器1202用于存储程序;处理器1201用于通过总线1203调用存储在存储器1202中的程序,执行上述实施例的应用程序异常的复现方法。
具体地,上述存储器1202和处理器1201能够为通用的存储器和处理器,这里不做具体限定,当处理器1201运行存储器1202存储的计算机程序时,能够执行上述应用程序异常的复现方法。
对应于上述应用程序异常的复现方法,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述应用程序异常的复现方法的步骤。
本申请实施例所提供的应用程序异常的复现装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本申请实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台服务端设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述移动控制方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (21)

1.一种应用程序异常的复现方法,其特征在于,所述方法应用于代理服务器,预先安装有所述应用程序的客户端的测试触控终端和目标触控终端分别与所述代理服务器通信连接;所述代理服务器预先配置有用于响应不同终端针对同一客户端的相同操作发送的请求,返回相同响应的配置数据;所述测试触控终端在响应针对所述客户端的第一操作时,所述客户端出现异常;所述方法包括:
接收所述目标触控终端响应针对所述客户端的第二操作发送的第一请求,所述第二操作为所述第一操作在所述测试触控终端中的镜像;
响应所述第一请求,根据所述配置数据向所述目标触控终端发送第一响应,以便于所述目标触控终端根据所述第一请求和第一响应复现所述客户端出现的异常。
2.根据权利要求1所述的方法,其特征在于,响应所述第一请求,根据所述配置数据向所述目标触控终端发送第一响应的步骤,包括:
响应所述第一请求,根据所述配置数据向将所述第一请求修改为第二请求;其中,所述配置数据包括,将测试触控终端响应针对所述客户端的第一操作发送的第三请求和所述第一请求,修改为相同的第二请求的配置数据;
向预先安装有所述应用程序的服务端的应用服务器发送所述第二请求;
接收所述应用服务器响应所述第二请求发送的第一响应,并向所述目标触控终端发送第一响应。
3.根据权利要求2所述的方法,其特征在于,所述第一请求、第二请求和第三请求为http格式的请求,通过对所述第三请求或所述第一请求中请求头、URL参数和请求体中的任意一项或多项的进行修改,得到所述第二请求。
4.根据权利要求1所述的方法,其特征在于,响应所述第一请求,根据所述配置数据向所述目标触控终端发送第一响应的步骤,包括:
响应所述第一请求,根据所述配置数据确定预先定义的第一响应;
向所述目标触控终端发送所述第一响应。
5.根据权利要求1所述的方法,其特征在于,所述代理服务器包括数据库,所述数据库用于存储所述配置数据,还包括:
与所述测试触控终端建立通信连接;
通过所述通信连接,接收所述测试触控终端发送的配置指令;
根据所述配置指令进行配置操作;其中,所述配置操作包括读取所述配置数据、设置所述配置数据、修改所述配置数据中的一项或多项。
6.一种应用程序异常的复现方法,其特征在于,所述方法应用于控制模块,所述控制模块与测试触控终端和目标触控终端连接,所述测试触控终端和所述目标触控终端预先安装有所述应用程序的客户端;所述测试触控终端在响应针对所述客户端的第一操作时,所述客户端出现异常;所述方法包括:
通过监听所述测试触控终端的触摸事件,确定与所述第一操作对应的多个所述触摸事件的信息;
获取所述测试触控终端的高宽信息;
应用所述测试触控终端的高宽信息,在所述目标触控终端对与所述第一操作对应的多个所述触摸事件的信息进行镜像,生成针对所述客户端的第二操作,以便所述目标触控终端通过响应所述第二操作复现所述客户端出现的异常。
7.根据权利要求6所述的方法,其特征在于,所述触摸事件的信息包括所述触摸事件的类型,所述触摸事件的类型包括离开UP操作、移动MOVE操作或按下DOWN操作。
8.根据权利要求6所述的方法,其特征在于,监听所述测试触控终端的触摸事件的信息的步骤包括:
实时监听所述测试触控终端的对应于触摸事件的命令串行数据流,并对监听到的命令串行数据流进行复制,每个所述触摸事件包括多个命令;
根据复制的与所述第一操作对应的命令串行数据流,确定与所述第一操作对应的多个命令的时间戳、命令类型、命令代码和命令值;
应用与所述第一操作对应的多个命令的时间戳、命令类型、命令代码和命令值,确定与所述第一操作的多个所述触摸事件的时间戳、触摸类型和触控点参数,其中,所述触摸类型包括单点触控类型或多点触控类型,所述触控点参数包括触控点位置、触控点编号和触控点的压力。
9.根据权利要求6所述的方法,其特征在于,监听所述测试触控终端的触摸事件的信息的步骤,还包括:
监听所述测试触控终端的对应于触摸事件的命令串行数据流,并对监听到的命令串行数据流进行复制,每个所述触摸事件包括多个命令;
对于每个所述触摸事件,根据复制的命令串行数据流,确定与该触摸事件对应的每个命令的时间戳、命令类型、命令代码和命令值;
对于每个所述触摸事件,均应用与该触摸事件对应的多个命令的时间戳、命令类型、命令代码和命令值,确定该触摸事件的时间戳、触摸类型和触控点参数,其中,所述触摸类型包括单点触控类型或多点触控类型,所述触控点参数包括触控点位置、触控点编号和触控点的压力;
将每个所述触摸事件的时间戳、触摸类型和触控点参数存储在事件数据库中。
10.根据权利要求9所述的方法,其特征在于,在获取所述测试触控终端的高宽信息和所述目标触控终端的高宽信息的步骤之前,还包括:
响应针对第一操作的复现指令,从所述事件数据库中获取与所述第一操作对应的多个所述触摸事件的时间戳、触摸类型和触控点参数。
11.根据权利要求6所述的方法,其特征在于,应用所述测试触控终端的高宽信息,在所述目标触控终端对所述第一操作的多个触摸信息进行镜像的步骤,包括:
应用所述测试触控终端的高宽信息,确定与所述第一操作对应的触控点参数,对应于所述目标触控终端的相对触控点参数;
根据与所述第一操作对应的多个所述触摸事件的时间戳、触摸类型和相对触控点参数,在所述目标触控终端将所述第一操作镜像为所述第二操作。
12.一种应用程序异常的复现方法,其特征在于,所述方法应用于触控终端,控制模块与所述触控终端连接,所述终端预先安装有所述应用程序的客户端;代理服务器预先配置有用于响应不同终端针对同一客户端的相同操作发送的请求,返回相同响应的配置数据;所述触控终端在响应针对所述客户端的第一操作时,所述客户端出现异常;所述方法包括:
响应针对所述客户端的第二操作,向所述代理服务器发送第一请求;所述第二操作为所述第一操作在所述触控终端中的镜像;
接收所述代理服务器响应所述第一请求根据所述配置数据发送的第一响应;
根据所述第一请求和第一响应复现所述客户端出现的异常。
13.根据权利要求12所述的方法,其特征在于,还包括:
响应针对所述客户端的所述第一操作,向所述代理服务器发送所述第一请求。
14.根据权利要求12所述的方法,其特征在于,还包括:
与所述代理服务器建立通信连接;
通过所述通信连接,向所述代理服务器发送的配置指令,所述配置指令用于读取所述配置数据、设置所述配置数据、修改所述配置数据中的一项或多项。
15.根据权利要求14所述的方法,其特征在于,通过所述通信连接,向所述代理服务器发送的配置指令的步骤,包括:
通过所述通信连接,获取并显示用于配置的图形用户界面,所述图形用户界面包括配置项组件;
响应针对所述配置项组件的操作,向所述代理服务器发送配置指令。
16.根据权利要求15所述的方法,其特征在于,所述图形用户界面还包括测试数据展示组件,所述方法还包括:
响应针对所述测试数据展示组件的操作,向所述代理服务器发送测试数据获取请求;
接收所述代理服务器发送的测试上下文数据,并显示在所述图形用户界面中。
17.一种应用程序异常的复现装置,其特征在于,所述装置应用于代理服务器,预先安装有所述应用程序的客户端的测试触控终端和目标触控终端分别与所述代理服务器通信连接;所述代理服务器预先配置有用于响应不同终端针对同一客户端的相同操作发送的请求,返回相同响应的配置数据;所述测试触控终端在响应针对所述客户端的第一操作时,所述客户端出现异常;所述装置包括:
接收单元,用于接收所述目标触控终端响应针对所述客户端的第二操作发送的第一请求,所述第二操作为所述第一操作在所述测试触控终端中的镜像;
响应单元,用于响应所述第一请求,根据所述配置数据向所述目标触控终端发送第一响应,以便于所述目标触控终端根据所述第一请求和第一响应复现所述客户端出现的异常。
18.一种应用程序异常的复现装置,其特征在于,所述装置应用于控制模块,所述控制模块与测试触控终端和目标触控终端连接,所述测试触控终端和所述目标触控终端预先安装有所述应用程序的客户端;所述测试触控终端在响应针对所述客户端的第一操作时,所述客户端出现异常;所述装置包括:
确定单元,用于通过监听所述测试触控终端的触摸事件,确定与所述第一操作对应的多个所述触摸事件的信息;
获取单元,用于获取所述测试触控终端的高宽信息;
镜像单元,用于应用所述测试触控终端的高宽信息,在所述目标触控终端对与所述第一操作对应的多个所述触摸事件的信息进行镜像,生成针对所述客户端的第二操作,以便所述目标触控终端通过响应所述第二操作复现所述客户端出现的异常。
19.一种应用程序异常的复现装置,其特征在于,所述装置应用于触控终端,控制模块与所述触控终端连接,所述终端预先安装有所述应用程序的客户端;代理服务器预先配置有用于响应不同终端针对同一客户端的相同操作发送的请求,返回相同响应的配置数据;所述触控终端在响应针对所述客户端的第一操作时,所述客户端出现异常;所述装置包括:
响应单元,用于响应针对所述客户端的第二操作,向所述代理服务器发送第一请求;所述第二操作为所述第一操作在所述触控终端中的镜像;
接收单元,用于接收所述代理服务器响应所述第一请求根据所述配置数据发送的第一响应;
复现单元,用于根据所述第一请求和第一响应复现所述客户端出现的异常。
20.一种电子设备,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现权利要求1-16任一项所述的方法。
21.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现权利要求1-16任一项所述的方法。
CN201910821633.1A 2019-08-30 2019-08-30 应用程序异常的复现方法、装置和电子设备 Active CN110515854B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910821633.1A CN110515854B (zh) 2019-08-30 2019-08-30 应用程序异常的复现方法、装置和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910821633.1A CN110515854B (zh) 2019-08-30 2019-08-30 应用程序异常的复现方法、装置和电子设备

Publications (2)

Publication Number Publication Date
CN110515854A CN110515854A (zh) 2019-11-29
CN110515854B true CN110515854B (zh) 2023-08-11

Family

ID=68630194

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910821633.1A Active CN110515854B (zh) 2019-08-30 2019-08-30 应用程序异常的复现方法、装置和电子设备

Country Status (1)

Country Link
CN (1) CN110515854B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111625381B (zh) * 2020-04-09 2024-04-19 腾讯音乐娱乐科技(深圳)有限公司 应用程序的运行场景复现方法、装置、设备及存储介质
CN112637682A (zh) * 2020-12-16 2021-04-09 深圳Tcl新技术有限公司 异常离线诊断方法、装置、设备及计算机可读存储介质
CN112748832B (zh) * 2021-01-19 2022-11-22 联想(北京)有限公司 信息处理方法、装置及电子设备和存储介质
CN114546822A (zh) * 2021-12-27 2022-05-27 芯华章科技股份有限公司 测试设计的方法、电子设备及存储介质
CN115061883B (zh) * 2022-08-17 2022-11-04 中航信移动科技有限公司 一种基于weex的程序日志获取方法、存储介质及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080127097A1 (en) * 2006-11-28 2008-05-29 International Business Machines Corporation Method and devices for url command testing and for scenario testing
CN107748714A (zh) * 2017-09-08 2018-03-02 广州视源电子科技股份有限公司 应用程序兼容性测试方法、系统、服务器、客户端及存储介质
CN109726064A (zh) * 2019-01-08 2019-05-07 腾讯音乐娱乐科技(深圳)有限公司 模拟客户端异常运行的方法、装置、系统及存储介质
CN109960642A (zh) * 2017-12-22 2019-07-02 百度在线网络技术(北京)有限公司 自动测试方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080127097A1 (en) * 2006-11-28 2008-05-29 International Business Machines Corporation Method and devices for url command testing and for scenario testing
CN107748714A (zh) * 2017-09-08 2018-03-02 广州视源电子科技股份有限公司 应用程序兼容性测试方法、系统、服务器、客户端及存储介质
CN109960642A (zh) * 2017-12-22 2019-07-02 百度在线网络技术(北京)有限公司 自动测试方法和装置
CN109726064A (zh) * 2019-01-08 2019-05-07 腾讯音乐娱乐科技(深圳)有限公司 模拟客户端异常运行的方法、装置、系统及存储介质

Also Published As

Publication number Publication date
CN110515854A (zh) 2019-11-29

Similar Documents

Publication Publication Date Title
CN110515854B (zh) 应用程序异常的复现方法、装置和电子设备
WO2020119434A1 (zh) 接口数据处理方法、自动化测试方法、装置、设备和介质
CA2866449C (en) Telemetry system for a cloud synchronization system
US9858178B2 (en) System and method for facilitating field testing of a test application
CN110321273B (zh) 一种业务统计方法及装置
CN107562556B (zh) 故障的恢复方法、恢复装置及存储介质
CN108268364A (zh) 异常事件回放方法、装置及设备
CN107741902B (zh) 程序应用检测方法及程序应用检测装置
CN112636992B (zh) 一种动态路由方法、装置、设备及存储介质
CN106713011B (zh) 一种获取测试数据的方法与系统
CN110837474A (zh) 一种脚本录制方法、装置、终端及存储介质
WO2021129335A1 (zh) 操作监控方法及装置、操作分析方法及装置
CN111625381A (zh) 应用程序的运行场景复现方法、装置、设备及存储介质
US9792195B2 (en) Terminal data logger
US10432490B2 (en) Monitoring single content page application transitions
CN117499287A (zh) Web测试方法、装置、存储介质及代理服务器
CN113485909A (zh) 测试方法、装置、计算设备以及介质
US9374437B2 (en) Schema validation proxy
CN111352821A (zh) 业务测试方法、装置、电子设备和计算机可读存储介质
CN111159033A (zh) 一种软件测试方法及装置
CN115292636A (zh) H5页面录制方法、装置和设备及存储介质
CN114895879A (zh) 管理系统设计方案确定方法、装置、设备及存储介质
CN109756393B (zh) 信息处理方法、系统、介质和计算设备
CN114518984A (zh) 一种埋点信息的上报方法、装置、存储介质及终端设备
CN112131026A (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