CN105871662B - 一种协议录制、回放方法及终端 - Google Patents
一种协议录制、回放方法及终端 Download PDFInfo
- Publication number
- CN105871662B CN105871662B CN201610457278.0A CN201610457278A CN105871662B CN 105871662 B CN105871662 B CN 105871662B CN 201610457278 A CN201610457278 A CN 201610457278A CN 105871662 B CN105871662 B CN 105871662B
- Authority
- CN
- China
- Prior art keywords
- agreement
- protocol
- operational order
- tested
- module
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/18—Protocol analysers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种协议录制、回放方法及终端,用于解决现有技术中在测试协议的过程中在重现测试场景时操作繁琐的问题,通过对被测试协议处理以快速重现测试场景,从而有效提高测试效率。本发明实施例方法包括:获取被测试协议对应的数据包;在所述数据包中添加所述被测试协议对应的操作指令,其中,所述操作指令用于重现测试场景;按照目标规则将所述数据包分类至对应的文件中;将所述文件本地保存。
Description
技术领域
本发明涉及通信系统测试领域,具体涉及一种协议录制、回放方法及终端。
背景技术
目前,通信系统的协议测试过程包括协议录制和协议回放,其中,协议录制过程包括终端通过中转服务器将执行过的所有协议本地保存,协议回放过程包括终端将需要回放的协议用例发送至中转服务器,并通过中转服务器将需要回放的协议用例发送至测试服务器以验证结果。
但是,目前测试协议的过程中若需要重现测试场景时,则需要重新构建测试场景,并添加测试条件,整个过程操作繁琐,从而导致测试效率低。
发明内容
本发明实施例提供了一种协议录制、回放方法及终端,用于解决现有技术中在测试协议的过程中在重现测试场景时操作繁琐的问题,通过对被测试协议处理以快速重现测试场景,从而有效提高测试效率。
本发明第一方面提供一种协议录制方法,包括:
获取被测试协议对应的数据包;
在所述数据包中添加所述被测试协议对应的操作指令,其中,所述操作指令用于重现测试场景;
按照目标规则将所述数据包分类至对应的文件中;
将所述文件本地保存。
本发明第二方面提供一种协议回放方法,包括:
接收协议测试指令,所述协议测试指令用于指示对被测试协议进行测试;
加载本地保存的被测试协议对应的数据包,其中,所述数据包中包含所述被测试协议对应的操作指令,所述操作指令用于重现测试场景;
根据所述操作指令回放目标协议,其中,所述目标协议为所述被测试协议中当前待测试的协议。
本发明第三方面提供一种终端,包括:
获取模块,用于获取被测试协议对应的数据包;
添加模块,用于在所述获取模块获取的所述数据包中添加所述被测试协议对应的操作指令,其中,所述操作指令用于重现测试场景;
分类模块,用于按照目标规则将所述添加模块添加后的所述数据包分类至对应的文件中;
保存模块,用于将所述分类模块分类后的所述文件本地保存。
本发明第四方面提供一种终端,包括:
接收模块,用于接收协议测试指令,所述协议测试指令用于指示对被测试协议进行测试;
加载模块,用于加载本地保存的被测试协议对应的数据包,其中,所述数据包中包含所述被测试协议对应的操作指令,所述操作指令用于重现测试场景;
回放模块,用于根据所述操作指令回放目标协议,其中,所述目标协议为所述被测试协议中当前待测试的协议。
可见,在获取被测试协议对应的数据包后,在数据包中添加被测试协议对应的操作指令,再将数据包按照目标规则分类保存,从而完成协议录制的过程,由于将数据包分类后再本地保存,则能够快速区别不同的数据包;接收协议测试指令后,加载本地保存的被测试协议对应的数据包,并根据所述操作指令回放目标协议,与现有技术不同的是,该数据包中包含所述被测试协议对应的操作指令,则通过调用操作指令快速重现测试场景,操作简单,从而有效提高测试效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中终端的一个结构示意图;
图2为本发明实施例中协议录制方法的一个实施例示意图;
图3为本发明实施例中调用序列化函数的一个实施例示意图;
图4为本发明实施例中协议录制方法的一个应用场景示意图;
图5为本发明实施例中协议回放的一个实施例示意图;
图6为本发明实施例中协议回放的另一个实施例示意图;
图7为本发明实施例中协议回放的另一个实施例示意图;
图8a为本发明实施例中协议用例管理界面的一个示意图;
图8b为本发明实施例中协议回放结果演示的一个示意图;
图8c为本发明实施例中执行操作指令的一个流程示意图;
图9为本发明实施例中终端的另一个结构示意图;
图10为本发明实施例中终端的另一个结构示意图;
图11为本发明实施例中终端的另一个结构示意图;
图12为本发明实施例中终端的另一个结构示意图;
图13为本发明实施例中终端的另一个结构示意图。
具体实施方式
本发明实施例提供了一种协议录制、回放方法及终端,用于解决现有技术中在测试协议的过程中在重现测试场景时操作繁琐的问题,通过对被测试协议处理以快速重现测试场景,从而有效提高测试效率。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在介绍本发明实施例之前,先介绍一下本发明所涉及的“术语”:
术语“协议录制”,是指将本次测试中获取到的被测试协议对应的数据包按照规定的格式保存在本地。
术语“协议回放”,是指将本地保存的数据包中的被测试协议按照规定的格式重新发送至对应的服务器。
术语“协议用例”,是指将被测试协议对应的数据包分类至对应的文件后,以文件形式保存,其中一个文件包括一条或者多条被测试协议。
接下来介绍一些本发明所涉及的终端,该终端可以包括电脑,手机,笔记本,个人数字助理(英文全称:Personal Digital Assistant,缩写:PDA)、车载电脑等任意终端设备,此处不做具体限定,下面以终端是手机为例:
图1示出的是与本发明实施例提供的终端相关的手机的部分结构的框图。参考图1,手机包括:存储器110、输入单元120、显示单元130、Wi-Fi模块140、处理器150、以及电源160等部件。本领域技术人员可以理解,图1中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图1对手机的各个构成部件进行具体的介绍:
存储器110可用于存储软件程序以及模块,处理器150通过运行存储在存储器110的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器110可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器110可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元120可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元120可包括触控面板121以及其他输入设备122。触控面板121,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板121上或在触控面板121附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板121可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器150,并能接收处理器150发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板121。除了触控面板121,输入单元120还可以包括其他输入设备122。具体地,其他输入设备122可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元130可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元130可包括显示面板131,可选的,可以采用液晶显示器(英文全称:LiquidCrystal Display,缩写:LCD)、有机发光二极管(英文全称:Organic Light-EmittingDiode,缩写:OLED)等形式来配置显示面板131。进一步的,触控面板121可覆盖显示面板131,当触控面板121检测到在其上或附近的触摸操作后,传送给处理器150以确定触摸事件的类型,随后处理器150根据触摸事件的类型在显示面板131上提供相应的视觉输出。虽然在图1中,触控面板121与显示面板131是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板121与显示面板131集成而实现手机的输入和输出功能,例如收发器。
手机通过Wi-Fi模块140可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图1示出了Wi-Fi模块140,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器150是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器110内的软件程序和/或模块,以及调用存储在存储器110内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器150可包括一个或多个处理单元;优选的,处理器150可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器150中。
手机还包括给各个部件供电的电源160(比如电池),优选的,电源可以通过电源管理系统与处理器150逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像头、蓝牙模块、传感器、音频电路、射频(英文全称:Radio Frequency,缩写:RF)电路110等,此处不再赘述。
在本发明实施例中,该终端所包括的所述处理器150用于获取被测试协议对应的数据包;在所述数据包中添加所述被测试协议对应的操作指令,其中,所述操作指令用于重现测试场景;按照目标规则将所述数据包分类至对应的文件中;
所述存储器110用于将所述文件本地保存;
所述输入单元120用于接收协议测试指令,所述协议测试指令用于指示对被测试协议进行测试;
所述显示单元130用于加载本地保存的被测试协议对应的数据包,其中,所述数据包中包含所述被测试协议对应的操作指令,所述操作指令用于重现测试场景;
所述处理器150还用于根据所述操作指令回放目标协议,其中,所述目标协议为所述被测试协议中当前待测试的协议。
在一些可能的实现方式中,所述处理器150具体用于获取所述被测试协议的协议类型,协议头或者协议内容中的至少一个;
将所述被测试协议的协议类型,协议头或者协议内容中的至少一个确定为所述目标规则的属性;
根据至少一个相同的所述属性将所述数据包分类至对应的文件中。
所述存储器110具体用于通过调用序列化函数将所述文件处理成目标格式,并按照所述目标格式将所述本件本地保存。
在另一些可能的实现方式中,所述处理器150还用于根据所述操作指令回放目标协议之前,获取所述目标协议当前对应的应用账号;判断所述目标协议是否与所述应用账号匹配;若不匹配,通过调用所述操作指令更新所述目标协议以使得所述目标协议与所述应用账号匹配。
在另一些可能的实现方式中,所述处理器150还用于根据所述操作指令回放目标协议之后,通过调用所述操作指令判断所述目标协议是否满足预设要求;将所述判断的结果确定为所述目标协议的测试结果。
在另一些可能的实现方式中,所述处理器150具体用于根据解释器将所述操作指令解析为程序语言的代码并执行所述代码。
上面介绍了本发明所涉及的终端,在对终端所描述的基础上,请参阅图2,为本发明实施例中协议录制方法的一个实施例示意图,具体流程如下:
步骤201、获取被测试协议对应的数据包。
由于终端通信网络是由许多具有信息交换和处理能力的节点互连而成的,要使整个通信网络有条不紊地工作,就需要每个节点必须遵守一些事先约定好的有关数据格式及时序等的规则。这些为实现网络数据交换而建立的规则、约定或标准就称为网络协议,简称协议。其中,协议的三要素是:语法、语义、时序。语法是指数据与控制信息的结构或格式;语义是指需要发出何种控制信息,完成何种动作以及做出何种响应;时序是指事件实现顺序的详细说明。协议总是指某一层的协议。准确地说,它是在同等层之间的实体通信时,有关通信规则和约定的集合就是该层协议,例如:物理层协议、传输层协议、应用层协议等。
在本发明实施例中,开启终端,进一步利用终端中的处理器获取被测试协议对应的数据包,其中,所述被测试协议可以覆盖所有测试场景中的协议。所述被测试协议是终端A和其他终端B必须共同遵从的约定,例如:约定如何建立通信连接、如何互相识别等,只有遵守这个约定,终端A和其他终端B之间才能实现通信交流。
步骤202、在所述数据包中添加所述被测试协议对应的操作指令,其中,所述操作指令用于重现测试场景。
与现有技术不同的是,在数据包中添加所述被测试协议对应的操作(英文全称:Operate,缩写:OP)指令,其中,所述被测试协议可对应一个或者多个OP指令,后续通过调用所述OP指令快速重现测试场景,操作简单,有效提高了测试效率。
其中,添加所述被测试协议对应的OP指令会在协议录制时与被测试协议一起保存到本地文件中。所述被测试协议对应的OP指令如下表一:
表一
需要说明的是,OP指令除上述表一里描述的内容以外,还可以包括其他内容,具体可根据实际情况而定,此处不做具体限定。
步骤203、按照目标规则将所述数据包分类至对应的文件中。
在一些可能的实现方式中,所述按照目标规则将所述数据包分类至对应的文件中包括:
获取所述被测试协议的协议类型,协议头或者协议内容中的至少一个;
将所述被测试协议的协议类型,协议头或者协议内容中的至少一个确定为所述目标规则的属性;
根据至少一个相同的所述属性将所述数据包分类至对应的文件中。
可见,通过目标规则将数据包分类,后续可根据目标规则很容易区别开不同的数据包,也提高了协议测试的效率。其中,数据包中所包括的被测试协议有对应的应用程序,每个应用程序有对应的应用账号,因此,可通过目标规则进一步区别开不同的应用程序以及应用程序对应的应用账号。
在实际应用中,以应用程序是游戏为例,对于不同的游戏,录制的数据包怎么区别,则采取的措施为在协议录制前,将每个游戏对应的被测试协议先进行分析,将游戏对应的协议头,协议元数据提取出来,并且将同一款游戏录制的数据包保存在同一个文件中,从而后续可以快速区别不同的游戏对应的数据包。
需要说明的是,所述目标规则除了上述按照协议类型,协议头或者协议内容中的至少一个分类,还可以是其他规则,例如:终端默认或者用户自定义的规则,此处不做具体限定。
步骤204、将所述文件本地保存。
在一些可能的实现方式中,所述将所述文件本地保存包括:
通过调用序列化函数将所述文件处理成目标格式,并按照所述目标格式将所述本件本地保存。
在实际应用中,目标格式可以是终端默认的格式或者用户自定义的格式,此处不做具体限定,例如:终端通过调用序列化函数,将所述文件列化成Jason格式,并按照Jason格式将所述文件本地保存。
下面,举例说明一下调用序列化(英文:Serialize)函数保存文件的具体流程:如图3所示,步骤301、单击应用程序的菜单“File|Save”或者“File|SaveAs”时,应用程序开始调用OnSaveDocument函数询问文件名;步骤302、调用GetFile函数获取文件的CFile指针,其中,CFile指针用于从一个路径或文件句柄构造一个CArchive对象;步骤303、调用DeleteContents函数清空文件类数据成员;步骤304、接着把CFile指针构造的CArchive对象交给Serialize函数处理,调用Serialize函数完成读文件,重建文件对象以及将文件列化成目标格式的工作;步骤305、调用SetModifiedFlag(FALSE)函数将文件修改标志清除;步骤306、按照Jason格式完成文件本地保存。
需要说明的是,所述序列化函数可以从本地获取,也可以从第三方获取,例如:接收第三方发送的所述序列化函数,并调用所述序列化函数将文件处理成对应的目标格式,此处不做具体限定。
在实际应用中,如图4所示,开启终端后,用户可在任意时刻执行协议录制(保存数据包)操作。例如:单击开始-保存菜单或使用Ctrl+S快捷键弹出保存数据包的对话框,在协议录制时,一个文件被视作一个测试套件(英文:TestSuite),终端可在同一文件中保存多个TestCase,例如:在data/gm1.tb这个文件中保存多个TestCase,例如:gm1等,进一步,可通过上行(英文全称:up)、下行(down)、已标记(onlymarked)等选项确定保存数据包的类型。当up被选中,则保存上行数据,当down被选中,则保存下行数据。当onlymarked被选中,则默认up和down被自动选中,则仅保存当前已标记为待发送状态的数据,当确定所选择的数据类型和数据范围后,可通过点击“保存”完成保存文件,另外,还可以通过“取消”更改数据类型和数据范围,并重新保存文件。
上面介绍了协议录制的具体过程,请参阅图5,本发明实施例中协议回放方法的一个实施例示意图,具体流程如下:
步骤501、接收协议测试指令,所述协议测试指令用于指示对被测试协议进行测试。
本发明实施例中,终端接收协议测试指令,其中,所述协议测试指令用于指示对被测试协议进行测试,在实际应用中,终端提供用户显示界面,在用户显示界面上显示用于用户输入协议测试指令的操作选项,则用户可通过点击或者压力触控或者旋转等方式触发该操作选项,从而使得终端接收该协议测试指令。当然,在实际应用中,终端还可以通过其他方式接收协议测试指令,此处不作具体限定。
步骤502、加载本地保存的被测试协议对应的数据包,其中,所述数据包中包含所述被测试协议对应的操作指令,所述操作指令用于重现测试场景。
本发明实施例中,由于在协议录制的时候,终端在所述被测试协议对应的数据包中添加了所述被测试协议对应的操作指令并进行本地保存,因此,当终端加载本地保存的被测试协议对应的数据包,则该数据包中包含所述被测试协议对应的操作指令,其中,所述操作指令用于重现测试场景,操作简单,有效提高了测试效率。
步骤503、根据所述操作指令回放目标协议,其中,所述目标协议为所述被测试协议中当前待测试的协议。
与现有技术不同的是,根据操作指令回放目标协议,其中,目标协议可对应一个或者多个操作指令,通过调用该操作指令重现测试场景,可协助定位协议问题,有效提高测试效率。
在图5所示实施例的基础上,请参阅图6,本发明实施例中协议回放的另一个实施例示意图,具体流程如下:
步骤601、接收协议测试指令,所述协议测试指令用于指示对被测试协议进行测试。
步骤602、加载本地保存的被测试协议对应的数据包,其中,所述数据包中包含所述被测试协议对应的操作指令,所述操作指令用于重现测试场景。
在一些可能的实现方式中,所述操作指令包括保存指令、赋值指令、更新指令、跳转指令、断言指令中的至少一个。当然,还可以包括上述表一里描述的操作指令,具体可根据实际情况而定,此处不做具体限定。
需要说明的是,步骤601和步骤602与图5所示的步骤501和步骤502相同或相似,具体可参阅步骤501和步骤502,此处不再赘述。
步骤603、获取所述目标协议当前对应的应用账号。
步骤604、判断所述目标协议是否与所述应用账号匹配,若否,执行步骤605。
由于在实际应用中,协议回放中,应用程序当前登陆的应用账号可能已经过期,或者是另一个账号登陆应用程序,导致协议头不一致。因此,可先获取所述目标协议当前对应的应用账号,并判断所述目标协议是否与所述应用账号匹配,当所述目标协议与所述应用账号不匹配时,可执行步骤605。
步骤605、通过调用所述操作指令更新所述目标协议以使得所述目标协议与所述应用账号匹配。
在一些可能的实现方式中,所述调用所述操作指令包括:根据解释器将所述操作指令解析为程序语言的代码并执行所述代码。
在实际应用中,例如:当所述目标协议与所述应用账号不匹配时,可以调用OP指令(例如:MOV指令或者UPDATE指令)更新协议字段,具体过程为:利用解释器将OP指令(MOV指令或者UPDATE指令)解析为pyhton代码,并执行该pyhton代码,从而使得所述目标协议与所述应用账号匹配。
步骤606、根据所述操作指令回放目标协议,其中,所述目标协议为所述被测试协议中当前待测试的协议。
与现有技术不同的是,根据操作指令回放目标协议,其中,目标协议可对应一个或者多个操作指令,通过调用该操作指令重现测试场景,可协助定位协议问题,有效提高测试效率。
在图5所示实施例的基础上,请参阅图7,本发明实施例中协议回放的另一个实施例示意图,具体流程如下:
步骤701、接收协议测试指令,所述协议测试指令用于指示对被测试协议进行测试。
步骤702、加载本地保存的被测试协议对应的数据包,其中,所述数据包中包含所述被测试协议对应的操作指令,所述操作指令用于重现测试场景。
在一些可能的实现方式中,所述操作指令包括保存指令、赋值指令、更新指令、跳转指令、断言指令中的至少一个。当然,还可以包括上述表一里描述的操作指令,具体可根据实际情况而定,此处不做具体限定。
步骤703、根据所述操作指令回放目标协议,其中,所述目标协议为所述被测试协议中当前待测试的协议。
需要说明的是,步骤701至步骤703与图5所示实施例中的步骤501至步骤503相同或相似,具体可参阅步骤501至步骤503,此处不再赘述。
步骤704、通过调用所述操作指令判断所述目标协议是否满足预设要求。
在一些可能的实现方式中,所述调用所述操作指令包括:根据解释器将所述操作指令解析为程序语言的代码并执行所述代码。
步骤705、将所述判断的结果确定为所述目标协议的测试结果。
在实际应用中,当协议回放时,为了快速获取测试结果,通过OP指令判断所述目标协议是否满足预设要求,若满足预设要求,则确定被测试协议不存在漏洞,若不满足预设要求,则确定被测试协议存在漏洞,进而后续修正被测试协议,其中,预设要求可以是终端默认的或者用户自定义的标准,此处不做具体限定。可见,在协议录制时,添加被测试协议对应的OP指令,在协议回放的时候,可调用OP指令快速重现测试场景,从而有效提高测试效率。
需要说明是,在一些可能的实现方式中,终端完全执行图6和图7所示实施例的所有内容,具体可参阅图6和图7所示实施例中的内容,此处不再赘述。
在实际应用中,如图8a所示,在回放协议时,通过用例管理界面来打开本地保存的文件,例如:打开保存在终端E盘中的文件,打开后自动加载当前文件中的被测试协议,选中被协议测试(例如:图8a中所示的gm1),其协议回放结果如下图8b所示,在图8b所示的界面上,包括外部命令(英文全称:separate,缩写:seq)的数据量,数据类型(Direction),用户的身份信息(英文全称:user information,缩写:Uin),OP指令等,以OP指令为EXPECT_EQ为例,用于指示期望数据包的某个字段与字符串相同,则通过调用EXPECT_EQ重现测试场景,并实现数据包的某个字段与字符串相同。
可见,协议回放的过程其实就是打开存在本地的文件,然后将加载文件中的被测试协议,按原来的协议格式发送到服务器的过程。实践表明,在协议回放过程中,会出现两个可能影响回放结果的问题:第一、协议回放中,应用程序当前登陆的应用账号可能已经过期,或者是另一个账号登陆应用程序,导致协议头不一致;第二、协议回放以后,对回放结果的确定。
本发明采用了OP指令很好地的解决了上述两个问题,其中,OP指令是一种类似于汇编指令和断言指令结合的一种指令集。由于在协议录制时添加OP指令,OP指令会在协议录制时与被测试协议一起保存到本地文件,因此,在协议回放时,终端利用协议工具解析并执行OP指令,从而完成协议测试自动化,如图8c所示,为OP指令的工作流程:
针对上述第一个问题,采取的解决方案为:由于在协议录制时,针对被测试协议添加了OP指令,例如:MOV指令或者UPDATE指令等,并注册应用程序的应用账号。在协议回放之前,可以先判断当前登陆的应用账号和协议头中的会话控制(Seesion)校验字段是否一致,当不一致时,可以调用MOV指令或者UPDATE指令更新协议字段,具体过程为:利用解释器将OP指令(MOV指令或者UPDATE指令)解析为pyhton代码,并执行该pyhton代码,从而使得应用账号和协议头中的会话控制(Seesion)校验字段保持一致。
针对上述第二个问题,采取的解决方案为:在协议录制时,在期望协议中添加EXPECT操作指令,当回放至当条协议时,可以通过EXPECT指令快速地获取协议当前字段是否符合预期,从而根据获取的内容快速判断测试结果,有效提高测试效率。
可见,与现有技术不同的是,若回归某个测试场景时,无需重新构建测试场景,并添加测试条件等繁琐工作,可以快速的“回到”测试场景,极大的减轻了繁琐的工作,同时还可以协助定位被测试协议出现的问题。
为便于更好的实施本发明实施例的上述相关方法,下面还提供用于配合上述方法的相关装置。
请参阅图9,本发明实施例中终端800的一个结构示意图,所述终端800包括:获取模块801,添加模块802和分类模块803以及保存模块804。
获取模块801,用于获取被测试协议对应的数据包;
添加模块802,用于在所述获取模块801获取的所述数据包中添加所述被测试协议对应的操作指令,其中,所述操作指令用于重现测试场景;
分类模块803,用于按照目标规则将所述添加模块802添加后的所述数据包分类至对应的文件中;
在一些可能的实现方式中,所述分类模块803具体用于获取所述被测试协议的协议类型,协议头或者协议内容中的至少一个;将所述被测试协议的协议类型,协议头或者协议内容中的至少一个确定为所述目标规则的属性;根据至少一个相同的所述属性将所述数据包分类至对应的文件中。
保存模块804,用于将所述分类模块803分类后的所述文件本地保存。
在一些可能的实现方式中,所述保存模块804具体用于通过调用序列化函数将所述文件处理成目标格式,并按照所述目标格式将所述本件本地保存。
请参阅图10,本发明实施例中终端900的一个结构示意图,所述终端900包括:接收模块901,加载模块902和回放模块903。
接收模块901,用于接收协议测试指令,所述协议测试指令用于指示对被测试协议进行测试;
加载模块902,用于加载本地保存的被测试协议对应的数据包,其中,所述数据包中包含所述被测试协议对应的操作指令,所述操作指令用于重现测试场景;
回放模块903,用于根据所述操作指令回放目标协议,其中,所述目标协议为所述被测试协议中当前待测试的协议。
在图10所示实施例的基础上,请参阅图11,在一些可能的实现方式中,所述终端900还包括:获取模块904,判断模块905和调用模块906。
获取模块904,用于所述回放模块903根据所述操作指令回放目标协议之前,获取所述目标协议当前对应的应用账号;
判断模块905,用于判断所述目标协议是否与所述应用账号匹配;
调用模块906,用于若不匹配,通过调用所述操作指令更新所述目标协议以使得所述目标协议与所述应用账号匹配。
其中,所述调用模块906具体用于根据解释器将所述操作指令解析为程序语言的代码并执行所述代码。
在图10所示实施例的基础上,请参阅图12,在另一些可能的实现方式中,所述终端还包括:判断模块905和确定模块907。
判断模块905,用于所述回放模块根据所述操作指令回放目标协议之后,通过调用所述操作指令判断所述目标协议是否满足预设要求;
确定模块907,用于将所述判断模块判断的结果确定为所述目标协议的测试结果。
在图11所示实施例的基础上,请参阅图13,在另一些可能的实现方式中,所述终端还包括:确定模块907。
所述判断模块905,还用于所述回放模块根据所述操作指令回放目标协议之后,通过调用所述操作指令判断所述目标协议是否满足预设要求;
确定模块907,用于将所述判断模块判断的结果确定为所述目标协议的测试结果。
需要说明的是,上述模块可以是软件模块,能够在计算机系统的硬件中执行,也可以是特定的集成电路,并取得对应的技术效果,此处不做具体限定。另外,上述模块执行的步骤可对应图2至图7所示实施例中的方法具体实现,其具体实现过程可参考图2至图7所示方法实施例中的相关描述,此处不再赘述,通过该终端执行图2至图7所示实施例的方法,取得该方法实施例所能取得的技术效果。
综上,在获取被测试协议对应的数据包后,在数据包中添加被测试协议对应的操作指令,再将数据包按照目标规则分类保存,从而完成协议录制的过程,由于将数据包分类后再本地保存,则能够快速区别不同的数据包;接收协议测试指令后,加载本地保存的被测试协议对应的数据包,并根据所述操作指令回放目标协议,与现有技术不同的是,该数据包中包含所述被测试协议对应的操作指令,则通过调用操作指令快速重现测试场景,操作简单,从而有效提高测试效率。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (16)
1.一种协议录制方法,其特征在于,包括:
获取被测试协议对应的数据包;
在所述数据包中添加所述被测试协议对应的操作指令,其中,所述操作指令用于重现测试场景;
按照目标规则将所述数据包分类至对应的文件中;
将所述文件本地保存。
2.根据权利要求1所述的方法,其特征在于,所述按照目标规则将所述数据包分类至对应的文件中包括:
获取所述被测试协议的协议类型,协议头或者协议内容中的至少一个;
将所述被测试协议的协议类型,协议头或者协议内容中的至少一个确定为所述目标规则的属性;
根据至少一个相同的所述属性将所述数据包分类至对应的文件中。
3.根据权利要求1或2所述的方法,其特征在于,所述将所述文件本地保存包括:
通过调用序列化函数将所述文件处理成目标格式,并按照所述目标格式将所述文件本地保存。
4.一种协议回放方法,其特征在于,包括:
接收协议测试指令,所述协议测试指令用于指示对被测试协议进行测试;
加载本地保存的被测试协议对应的数据包,其中,所述数据包中包含所述被测试协议对应的操作指令,所述操作指令用于重现测试场景;
根据所述操作指令回放目标协议,其中,所述目标协议为所述被测试协议中当前待测试的协议。
5.根据权利要求4所述的方法,其特征在于,所述根据所述操作指令回放目标协议之前,所述方法还包括:
获取所述目标协议当前对应的应用账号;
判断所述目标协议是否与所述应用账号匹配;
若不匹配,通过调用所述操作指令更新所述目标协议以使得所述目标协议与所述应用账号匹配。
6.根据权利要求4所述的方法,其特征在于,所述根据所述操作指令回放目标协议之后,所述方法还包括:
通过调用所述操作指令判断所述目标协议是否满足预设要求;
将所述判断的结果确定为所述目标协议的测试结果。
7.根据权利要求5或6所述的方法,其特征在于,所述调用所述操作指令包括:
根据解释器将所述操作指令解析为程序语言的代码并执行所述代码。
8.根据权利要求5或6所述的方法,其特征在于,所述操作指令包括保存指令、赋值指令、更新指令、跳转指令、断言指令中的至少一个。
9.一种终端,其特征在于,包括:
获取模块,用于获取被测试协议对应的数据包;
添加模块,用于在所述获取模块获取的所述数据包中添加所述被测试协议对应的操作指令,其中,所述操作指令用于重现测试场景;
分类模块,用于按照目标规则将所述添加模块添加后的所述数据包分类至对应的文件中;
保存模块,用于将所述分类模块分类后的所述文件本地保存。
10.根据权利要求9所述的终端,其特征在于,所述分类模块具体用于获取所述被测试协议的协议类型,协议头或者协议内容中的至少一个;将所述被测试协议的协议类型,协议头或者协议内容中的至少一个确定为所述目标规则的属性;根据至少一个相同的所述属性将所述数据包分类至对应的文件中。
11.根据权利要求9或10所述的终端,其特征在于,所述保存模块具体用于通过调用序列化函数将所述文件处理成目标格式,并按照所述目标格式将所述文件本地保存。
12.一种终端,其特征在于,包括:
接收模块,用于接收协议测试指令,所述协议测试指令用于指示对被测试协议进行测试;
加载模块,用于加载本地保存的被测试协议对应的数据包,其中,所述数据包中包含所述被测试协议对应的操作指令,所述操作指令用于重现测试场景;
回放模块,用于根据所述操作指令回放目标协议,其中,所述目标协议为所述被测试协议中当前待测试的协议。
13.根据权利要求12所述的终端,其特征在于,所述终端还包括:
获取模块,用于所述回放模块根据所述操作指令回放目标协议之前,获取所述目标协议当前对应的应用账号;
判断模块,用于判断所述目标协议是否与所述应用账号匹配;
调用模块,用于若不匹配,通过调用所述操作指令更新所述目标协议以使得所述目标协议与所述应用账号匹配。
14.根据权利要求12所述的终端,其特征在于,所述终端还包括:
判断模块,用于所述回放模块根据所述操作指令回放目标协议之后,通过调用所述操作指令判断所述目标协议是否满足预设要求;
确定模块,用于将所述判断模块判断的结果确定为所述目标协议的测试结果。
15.根据权利要求13或14所述的终端,其特征在于,所述调用模块具体用于根据解释器将所述操作指令解析为程序语言的代码并执行所述代码。
16.根据权利要求13或14所述的终端,其特征在于,所述操作指令包括保存指令、赋值指令、更新指令、跳转指令、断言指令中的至少一个。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610457278.0A CN105871662B (zh) | 2016-06-22 | 2016-06-22 | 一种协议录制、回放方法及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610457278.0A CN105871662B (zh) | 2016-06-22 | 2016-06-22 | 一种协议录制、回放方法及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105871662A CN105871662A (zh) | 2016-08-17 |
CN105871662B true CN105871662B (zh) | 2018-10-23 |
Family
ID=56649108
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610457278.0A Active CN105871662B (zh) | 2016-06-22 | 2016-06-22 | 一种协议录制、回放方法及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105871662B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111324576B (zh) * | 2018-12-14 | 2023-08-08 | 深圳市优必选科技有限公司 | 一种录音数据保存的方法、装置、存储介质及终端设备 |
CN109818822A (zh) * | 2018-12-29 | 2019-05-28 | 冲石通信技术(北京)有限公司 | 一种采用深度学习机制的数据回放的测试方法及系统 |
CN112988552B (zh) * | 2019-12-12 | 2023-06-30 | 腾讯科技(深圳)有限公司 | 应用程序测试方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1287427A (zh) * | 1999-11-05 | 2001-03-14 | 深圳市中兴通讯股份有限公司 | 一种基于消息录制回放的模拟网元测试方法 |
CN1848777A (zh) * | 2006-01-19 | 2006-10-18 | 华为技术有限公司 | 一种协议仿真测试装置 |
CN102420717A (zh) * | 2011-11-04 | 2012-04-18 | 展讯通信(上海)有限公司 | 移动终端协议栈测试方法及系统 |
CN103685354A (zh) * | 2012-09-05 | 2014-03-26 | 百度在线网络技术(北京)有限公司 | 一种基于rmi协议的测试方法和装置 |
CN104063263A (zh) * | 2014-06-23 | 2014-09-24 | 华为技术有限公司 | 辅流处理的方法和装置 |
-
2016
- 2016-06-22 CN CN201610457278.0A patent/CN105871662B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1287427A (zh) * | 1999-11-05 | 2001-03-14 | 深圳市中兴通讯股份有限公司 | 一种基于消息录制回放的模拟网元测试方法 |
CN1848777A (zh) * | 2006-01-19 | 2006-10-18 | 华为技术有限公司 | 一种协议仿真测试装置 |
CN102420717A (zh) * | 2011-11-04 | 2012-04-18 | 展讯通信(上海)有限公司 | 移动终端协议栈测试方法及系统 |
CN103685354A (zh) * | 2012-09-05 | 2014-03-26 | 百度在线网络技术(北京)有限公司 | 一种基于rmi协议的测试方法和装置 |
CN104063263A (zh) * | 2014-06-23 | 2014-09-24 | 华为技术有限公司 | 辅流处理的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105871662A (zh) | 2016-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111352844B (zh) | 一种测试方法和相关装置 | |
CN105871662B (zh) | 一种协议录制、回放方法及终端 | |
CN111666222B (zh) | 一种测试方法和相关装置 | |
CN109343926A (zh) | 应用程序图标的显示方法、装置、终端和存储介质 | |
CN108334608A (zh) | 应用页面的链接生成方法、装置、存储介质及电子设备 | |
CN108040159A (zh) | 基于硬件驱动的重启定位方法、移动终端及可读存储介质 | |
CN107943685B (zh) | 一种遍历路径生成方法、装置、服务器及存储介质 | |
CN107943683A (zh) | 一种测试脚本生成方法、装置、电子设备及存储介质 | |
CN109828920A (zh) | 一种日志分析方法、装置及计算机可读存储介质 | |
CN110377503A (zh) | 压力测试方法、装置、计算机设备及存储介质 | |
CN107766523A (zh) | 一种文件管理方法、移动终端和计算机可读存储介质 | |
CN108121613A (zh) | 基于内存页的重启定位方法、移动终端及可读存储介质 | |
CN107562637A (zh) | 一种用于软件测试的方法、设备、系统及存储介质 | |
CN108196968A (zh) | 移动终端重启定位方法、移动终端及计算机可读存储介质 | |
US20120117197A1 (en) | Content auto-discovery | |
CN109634838A (zh) | 定位应用程序故障的方法、装置、存储介质和电子设备 | |
CN109165110A (zh) | 移动终端重启定位方法、移动终端及计算机可读存储介质 | |
CN108255631A (zh) | 移动终端重启定位方法、移动终端及计算机可读存储介质 | |
CN109298964A (zh) | 移动终端重启定位方法、移动终端及计算机可读存储介质 | |
CN108052437A (zh) | 重启定位方法、移动终端及计算机可读存储介质 | |
CN108089937A (zh) | 基于直接内存分配的重启定位方法、移动终端及存储介质 | |
CN108196969A (zh) | 重启监测与定位方法、移动终端及计算机可读存储介质 | |
CN110659212A (zh) | 一种软件测试方法、装置、设备及介质 | |
CN108268335A (zh) | 基于系统服务的重启定位方法、移动终端及可读存储介质 | |
CN110059485A (zh) | Ios应用的私有api检测方法、终端及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |