一种协议录制、回放方法及终端的制作方法

文档序号:10515317阅读:378来源:国知局
一种协议录制、回放方法及终端的制作方法
【专利摘要】本发明实施例公开了一种协议录制、回放方法及终端,用于解决现有技术中在测试协议的过程中在重现测试场景时操作繁琐的问题,通过对被测试协议处理以快速重现测试场景,从而有效提高测试效率。本发明实施例方法包括:获取被测试协议对应的数据包;在所述数据包中添加所述被测试协议对应的操作指令,其中,所述操作指令用于重现测试场景;按照目标规则将所述数据包分类至对应的文件中;将所述文件本地保存。
【专利说明】
-种协议录制、回放方法及终端
技术领域
[0001] 本发明设及通信系统测试领域,具体设及一种协议录制、回放方法及终端。
【背景技术】
[0002] 目前,通信系统的协议测试过程包括协议录制和协议回放,其中,协议录制过程包 括终端通过中转服务器将执行过的所有协议本地保存,协议回放过程包括终端将需要回放 的协议用例发送至中转服务器,并通过中转服务器将需要回放的协议用例发送至测试服务 器W验证结果。
[0003] 但是,目前测试协议的过程中若需要重现测试场景时,则需要重新构建测试场景, 并添加测试条件,整个过程操作繁琐,从而导致测试效率低。

【发明内容】

[0004] 本发明实施例提供了一种协议录制、回放方法及终端,用于解决现有技术中在测 试协议的过程中在重现测试场景时操作繁琐的问题,通过对被测试协议处理W快速重现测 试场景,从而有效提高测试效率。
[0005] 本发明第一方面提供一种协议录制方法,包括:
[0006] 获取被测试协议对应的数据包;
[0007] 在所述数据包中添加所述被测试协议对应的操作指令,其中,所述操作指令用于 重现测试场景;
[000引按照目标规则将所述数据包分类至对应的文件中;
[0009] 将所述文件本地保存。
[0010] 本发明第二方面提供一种协议回放方法,包括:
[0011] 接收协议测试指令,所述协议测试指令用于指示对被测试协议进行测试;
[0012] 加载本地保存的被测试协议对应的数据包,其中,所述数据包中包含所述被测试 协议对应的操作指令,所述操作指令用于重现测试场景;
[001引根据所述操作指令回放目标协议,其中,所述目标协议为所述被测试协议中当前 待测试的协议。
[0014] 本发明第Ξ方面提供一种终端,包括:
[0015] 获取模块,用于获取被测试协议对应的数据包;
[0016] 添加模块,用于在所述获取模块获取的所述数据包中添加所述被测试协议对应的 操作指令,其中,所述操作指令用于重现测试场景;
[0017] 分类模块,用于按照目标规则将所述添加模块添加后的所述数据包分类至对应的 文件中;
[0018] 保存模块,用于将所述分类模块分类后的所述文件本地保存。
[0019]本发明第四方面提供一种终端,包括:
[0020]接收模块,用于接收协议测试指令,所述协议测试指令用于指示对被测试协议进 行测试;
[0021] 加载模块,用于加载本地保存的被测试协议对应的数据包,其中,所述数据包中包 含所述被测试协议对应的操作指令,所述操作指令用于重现测试场景;
[0022] 回放模块,用于根据所述操作指令回放目标协议,其中,所述目标协议为所述被测 试协议中当前待测试的协议。
[0023] 可见,在获取被测试协议对应的数据包后,在数据包中添加被测试协议对应的操 作指令,再将数据包按照目标规则分类保存,从而完成协议录制的过程,由于将数据包分类 后再本地保存,则能够快速区别不同的数据包;接收协议测试指令后,加载本地保存的被测 试协议对应的数据包,并根据所述操作指令回放目标协议,与现有技术不同的是,该数据包 中包含所述被测试协议对应的操作指令,则通过调用操作指令快速重现测试场景,操作简 单,从而有效提高测试效率。
【附图说明】
[0024] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使 用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于 本领域技术人员来讲,在不付出创造性劳动的前提下,还可W根据运些附图获得其他的附 图。
[0025] 图1为本发明实施例中终端的一个结构示意图;
[0026] 图2为本发明实施例中协议录制方法的一个实施例示意图;
[0027] 图3为本发明实施例中调用序列化函数的一个实施例示意图;
[0028] 图4为本发明实施例中协议录制方法的一个应用场景示意图;
[0029] 图5为本发明实施例中协议回放的一个实施例示意图;
[0030] 图6为本发明实施例中协议回放的另一个实施例示意图;
[0031 ]图7为本发明实施例中协议回放的另一个实施例示意图;
[0032] 图8a为本发明实施例中协议用例管理界面的一个示意图;
[0033] 图8b为本发明实施例中协议回放结果演示的一个示意图;
[0034] 图8c为本发明实施例中执行操作指令的一个流程示意图;
[0035] 图9为本发明实施例中终端的另一个结构示意图;
[0036] 图10为本发明实施例中终端的另一个结构示意图;
[0037] 图11为本发明实施例中终端的另一个结构示意图;
[0038] 图12为本发明实施例中终端的另一个结构示意图;
[0039] 图13为本发明实施例中终端的另一个结构示意图。
【具体实施方式】
[0040] 本发明实施例提供了一种协议录制、回放方法及终端,用于解决现有技术中在测 试协议的过程中在重现测试场景时操作繁琐的问题,通过对被测试协议处理W快速重现测 试场景,从而有效提高测试效率。
[0041] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施 例,都属于本发明保护的范围。
[0042] 在介绍本发明实施例之前,先介绍一下本发明所设及的"术语":
[0043] 术语"协议录制",是指将本次测试中获取到的被测试协议对应的数据包按照规定 的格式保存在本地。
[0044] 术语"协议回放",是指将本地保存的数据包中的被测试协议按照规定的格式重新 发送至对应的服务器。
[0045] 术语"协议用例",是指将被测试协议对应的数据包分类至对应的文件后,W文件 形式保存,其中一个文件包括一条或者多条被测试协议。
[0046] 接下来介绍一些本发明所设及的终端,该终端可W包括电脑,手机,笔记本,个人 数字助理(英文全称:Personal Digital Assistant,缩写:PDA)、车载电脑等任意终端设 备,此处不做具体限定,下面W终端是手机为例:
[0047] 图1示出的是与本发明实施例提供的终端相关的手机的部分结构的框图。参考图 1,手机包括:存储器110、输入单元120、显示单元130、Wi-Fi模块140、处理器150、W及电源 160等部件。本领域技术人员可W理解,图1中示出的手机结构并不构成对手机的限定,可W 包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0048] 下面结合图1对手机的各个构成部件进行具体的介绍:
[0049] 存储器110可用于存储软件程序W及模块,处理器150通过运行存储在存储器110 的软件程序W及模块,从而执行手机的各种功能应用W及数据处理。存储器110可主要包括 存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程 序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的 数据(比如音频数据、电话本等)等。此外,存储器110可W包括高速随机存取存储器,还可W 包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器 件。
[0050] 输入单元120可用于接收输入的数字或字符信息,W及产生与手机的用户设置W 及功能控制有关的键信号输入。具体地,输入单元120可包括触控面板121W及其他输入设 备122。触控面板121,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用 手指、触笔等任何适合的物体或附件在触控面板121上或在触控面板121附近的操作),并根 据预先设定的程式驱动相应的连接装置。可选的,触控面板121可包括触摸检测装置和触摸 控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号, 将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触 点坐标,再送给处理器150,并能接收处理器150发来的命令并加 W执行。此外,可W采用电 阻式、电容式、红外线W及表面声波等多种类型实现触控面板121。除了触控面板121,输入 单元120还可W包括其他输入设备122。具体地,其他输入设备122可W包括但不限于物理键 盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
[0051] 显示单元130可用于显示由用户输入的信息或提供给用户的信息W及手机的各种 菜单。显示单元130可包括显示面板131,可选的,可W采用液晶显示器(英文全称:Liquid Oystal Display,缩写:LCD)、有机发光二极管(英文全称:0rganic Light-Emitting Diode,缩写:0LED)等形式来配置显示面板131。进一步的,触控面板121可覆盖显示面板 131,当触控面板121检测到在其上或附近的触摸操作后,传送给处理器150W确定触摸事件 的类型,随后处理器150根据触摸事件的类型在显示面板131上提供相应的视觉输出。虽然 在图1中,触控面板121与显示面板131是作为两个独立的部件来实现手机的输入和输入功 能,但是在某些实施例中,可W将触控面板121与显示面板131集成而实现手机的输入和输 出功能,例如收发器。
[0052] 手机通过Wi-Fi模块140可W帮助用户收发电子邮件、浏览网页和访问流式媒体 等,它为用户提供了无线的宽带互联网访问。虽然图1示出了Wi-Fi模块140,但是可W理解 的是,其并不属于手机的必须构成,完全可W根据需要在不改变发明的本质的范围内而省 略。
[0053] 处理器150是手机的控制中屯、,利用各种接口和线路连接整个手机的各个部分,通 过运行或执行存储在存储器110内的软件程序和/或模块,W及调用存储在存储器110内的 数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器150可包 括一个或多个处理单元;优选的,处理器150可集成应用处理器和调制解调处理器,其中,应 用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。 可W理解的是,上述调制解调处理器也可W不集成到处理器150中。
[0054] 手机还包括给各个部件供电的电源160(比如电池),优选的,电源可W通过电源管 理系统与处理器150逻辑相连,从而通过电源管理系统实现管理充电、放电、W及功耗管理 等功能。
[0055] 尽管未示出,手机还可W包括摄像头、蓝牙模块、传感器、音频电路、射频(英文全 称:Radio化equency,缩写:RF)电路110等,此处不再寶述。
[0056] 在本发明实施例中,该终端所包括的所述处理器150用于获取被测试协议对应的 数据包;在所述数据包中添加所述被测试协议对应的操作指令,其中,所述操作指令用于重 现测试场景;按照目标规则将所述数据包分类至对应的文件中;
[0057] 所述存储器110用于将所述文件本地保存;
[0058] 所述输入单元120用于接收协议测试指令,所述协议测试指令用于指示对被测试 协议进行测试;
[0059] 所述显示单元130用于加载本地保存的被测试协议对应的数据包,其中,所述数据 包中包含所述被测试协议对应的操作指令,所述操作指令用于重现测试场景;
[0060] 所述处理器150还用于根据所述操作指令回放目标协议,其中,所述目标协议为所 述被测试协议中当前待测试的协议。
[0061] 在一些可能的实现方式中,所述处理器150具体用于获取所述被测试协议的协议 类型,协议头或者协议内容中的至少一个;
[0062] 将所述被测试协议的协议类型,协议头或者协议内容中的至少一个确定为所述目 标规则的属性;
[0063] 根据至少一个相同的所述属性将所述数据包分类至对应的文件中。
[0064] 所述存储器110具体用于通过调用序列化函数将所述文件处理成目标格式,并按 照所述目标格式将所述本件本地保存。
[0065] 在另一些可能的实现方式中,所述处理器150还用于根据所述操作指令回放目标 协议之前,获取所述目标协议当前对应的应用账号;判断所述目标协议是否与所述应用账 号匹配;若不匹配,通过调用所述操作指令更新所述目标协议w使得所述目标协议与所述 应用账号匹配。
[0066] 在另一些可能的实现方式中,所述处理器150还用于根据所述操作指令回放目标 协议之后,通过调用所述操作指令判断所述目标协议是否满足预设要求;将所述判断的结 果确定为所述目标协议的测试结果。
[0067] 在另一些可能的实现方式中,所述处理器150具体用于根据解释器将所述操作指 令解析为程序语言的代码并执行所述代码。
[0068] 上面介绍了本发明所设及的终端,在对终端所描述的基础上,请参阅图2,为本发 明实施例中协议录制方法的一个实施例示意图,具体流程如下:
[0069] 步骤201、获取被测试协议对应的数据包。
[0070] 由于终端通信网络是由许多具有信息交换和处理能力的节点互连而成的,要使整 个通信网络有条不素地工作,就需要每个节点必须遵守一些事先约定好的有关数据格式及 时序等的规则。运些为实现网络数据交换而建立的规则、约定或标准就称为网络协议,简称 协议。其中,协议的Ξ要素是:语法、语义、时序。语法是指数据与控制信息的结构或格式;语 义是指需要发出何种控制信息,完成何种动作W及做出何种响应;时序是指事件实现顺序 的详细说明。协议总是指某一层的协议。准确地说,它是在同等层之间的实体通信时,有关 通信规则和约定的集合就是该层协议,例如:物理层协议、传输层协议、应用层协议等。
[0071] 在本发明实施例中,开启终端,进一步利用终端中的处理器获取被测试协议对应 的数据包,其中,所述被测试协议可W覆盖所有测试场景中的协议。所述被测试协议是终端 A和其他终端B必须共同遵从的约定,例如:约定如何建立通信连接、如何互相识别等,只有 遵守运个约定,终端A和其他终端B之间才能实现通信交流。
[0072] 步骤202、在所述数据包中添加所述被测试协议对应的操作指令,其中,所述操作 指令用于重现测试场景。
[0073] 与现有技术不同的是,在数据包中添加所述被测试协议对应的操作(英文全称: 化erate,缩写:0P)指令,其中,所述被测试协议可对应一个或者多个0P指令,后续通过调用 所述0P指令快速重现测试场景,操作简单,有效提高了测试效率。
[0074] 其中,添加所述被测试协议对应的0P指令会在协议录制时与被测试协议一起保存 到本地文件中。所述被测试协议对应的0P指令如下表一:
[0075]
[0076]
[0077] 表一
[0078] 需要说明的是,OP指令除上述表一里描述的内容W外,还可W包括其他内容,具体 可根据实际情况而定,此处不做具体限定。
[0079] 步骤203、按照目标规则将所述数据包分类至对应的文件中。
[0080] 在一些可能的实现方式中,所述按照目标规则将所述数据包分类至对应的文件中 包括:
[0081] 获取所述被测试协议的协议类型,协议头或者协议内容中的至少一个;
[0082] 将所述被测试协议的协议类型,协议头或者协议内容中的至少一个确定为所述目 标规则的属性;
[0083] 根据至少一个相同的所述属性将所述数据包分类至对应的文件中。
[0084] 可见,通过目标规则将数据包分类,后续可根据目标规则很容易区别开不同的数 据包,也提高了协议测试的效率。其中,数据包中所包括的被测试协议有对应的应用程序, 每个应用程序有对应的应用账号,因此,可通过目标规则进一步区别开不同的应用程序W 及应用程序对应的应用账号。
[0085] 在实际应用中,W应用程序是游戏为例,对于不同的游戏,录制的数据包怎么区 另IJ,则采取的措施为在协议录制前,将每个游戏对应的被测试协议先进行分析,将游戏对应 的协议头,协议元数据提取出来,并且将同一款游戏录制的数据包保存在同一个文件中,从 而后续可W快速区别不同的游戏对应的数据包。
[0086] 需要说明的是,所述目标规则除了上述按照协议类型,协议头或者协议内容中的 至少一个分类,还可W是其他规则,例如:终端默认或者用户自定义的规则,此处不做具体 限定。
[0087] 步骤204、将所述文件本地保存。
[0088] 在一些可能的实现方式中,所述将所述文件本地保存包括:
[0089] 通过调用序列化函数将所述文件处理成目标格式,并按照所述目标格式将所述本 件本地保存。
[0090] 在实际应用中,目标格式可W是终端默认的格式或者用户自定义的格式,此处不 做具体限定,例如:终端通过调用序列化函数,将所述文件列化成化son格式,并按照化son 格式将所述文件本地保存。
[0091] 下面,举例说明一下调用序列化(英文:Serialize)函数保存文件的具体流程:如 图3所示,步骤301、单击应用程序的菜单"File I Save"或者"File ISaveAs"时,应用程序开始 调用化SaveDocument函数询问文件名;步骤302、调用GetFile函数获取文件的CFile指针, 其中,CFile指针用于从一个路径或文件句柄构造一个CArchive对象;步骤303、调用 DeleteContents函数清空文件类数据成员;步骤304、接着把CFile指针构造的CArchive对 象交给Serialize函数处理,调用Serialize函数完成读文件,重建文件对象W及将文件列 化成目标格式的工作;步骤305、调用SetModifiedFlag(FALSE)函数将文件修改标志清除; 步骤306、按照化son格式完成文件本地保存。
[0092] 需要说明的是,所述序列化函数可W从本地获取,也可W从第Ξ方获取,例如:接 收第Ξ方发送的所述序列化函数,并调用所述序列化函数将文件处理成对应的目标格式, 此处不做具体限定。
[0093] 在实际应用中,如图4所示,开启终端后,用户可在任意时刻执行协议录制(保存数 据包)操作。例如:单击开始-保存菜单或使用Ctrl+S快捷键弹出保存数据包的对话框,在协 议录制时,一个文件被视作一个测试套件(英文:TestSuite),终端可在同一文件中保存多 个Test化se,例如:在da化/gml. tb运个文件中保存多个Test化se,例如:gml等,进一步,可 通过上行(英文全称:啡)、下行(down)、已标记(onlymarked)等选项确定保存数据包的类 型。当up被选中,则保存上行数据,当down被选中,则保存下行数据。当onlymarked被选中, 则默认up和down被自动选中,则仅保存当前已标记为待发送状态的数据,当确定所选择的 数据类型和数据范围后,可通过点击"保存"完成保存文件,另外,还可W通过"取消"更改数 据类型和数据范围,并重新保存文件。
[0094] 上面介绍了协议录制的具体过程,请参阅图5,本发明实施例中协议回放方法的一 个实施例示意图,具体流程如下:
[0095] 步骤501、接收协议测试指令,所述协议测试指令用于指示对被测试协议进行测 试。
[0096] 本发明实施例中,终端接收协议测试指令,其中,所述协议测试指令用于指示对被 测试协议进行测试,在实际应用中,终端提供用户显示界面,在用户显示界面上显示用于用 户输入协议测试指令的操作选项,则用户可通过点击或者压力触控或者旋转等方式触发该 操作选项,从而使得终端接收该协议测试指令。当然,在实际应用中,终端还可W通过其他 方式接收协议测试指令,此处不作具体限定。
[0097] 步骤502、加载本地保存的被测试协议对应的数据包,其中,所述数据包中包含所 述被测试协议对应的操作指令,所述操作指令用于重现测试场景。
[0098] 本发明实施例中,由于在协议录制的时候,终端在所述被测试协议对应的数据包 中添加了所述被测试协议对应的操作指令并进行本地保存,因此,当终端加载本地保存的 被测试协议对应的数据包,则该数据包中包含所述被测试协议对应的操作指令,其中,所述 操作指令用于重现测试场景,操作简单,有效提高了测试效率。
[0099] 步骤503、根据所述操作指令回放目标协议,其中,所述目标协议为所述被测试协 议中当前待测试的协议。
[0100] 与现有技术不同的是,根据操作指令回放目标协议,其中,目标协议可对应一个或 者多个操作指令,通过调用该操作指令重现测试场景,可协助定位协议问题,有效提高测试 效率。
[0101] 在图5所示实施例的基础上,请参阅图6,本发明实施例中协议回放的另一个实施 例示意图,具体流程如下:
[0102] 步骤601、接收协议测试指令,所述协议测试指令用于指示对被测试协议进行测 试。
[0103] 步骤602、加载本地保存的被测试协议对应的数据包,其中,所述数据包中包含所 述被测试协议对应的操作指令,所述操作指令用于重现测试场景。
[0104] 在一些可能的实现方式中,所述操作指令包括保存指令、赋值指令、更新指令、跳 转指令、断言指令中的至少一个。当然,还可W包括上述表一里描述的操作指令,具体可根 据实际情况而定,此处不做具体限定。
[0105] 需要说明的是,步骤601和步骤602与图5所示的步骤501和步骤502相同或相似,具 体可参阅步骤501和步骤502,此处不再寶述。
[0106] 步骤603、获取所述目标协议当前对应的应用账号。
[0107] 步骤604、判断所述目标协议是否与所述应用账号匹配,若否,执行步骤605。
[0108] 由于在实际应用中,协议回放中,应用程序当前登陆的应用账号可能已经过期,或 者是另一个账号登陆应用程序,导致协议头不一致。因此,可先获取所述目标协议当前对应 的应用账号,并判断所述目标协议是否与所述应用账号匹配,当所述目标协议与所述应用 账号不匹配时,可执行步骤605。
[0109] 步骤605、通过调用所述操作指令更新所述目标协议W使得所述目标协议与所述 应用账号匹配。
[0110] 在一些可能的实现方式中,所述调用所述操作指令包括:根据解释器将所述操作 指令解析为程序语言的代码并执行所述代码。
[0111] 在实际应用中,例如:当所述目标协议与所述应用账号不匹配时,可W调用0P指令 (例如:MOV指令或者UPDATE指令)更新协议字段,具体过程为:利用解释器将0P指令(MOV指 令或者UPDATE指令)解析为pyhton代码,并执行该pyhton代码,从而使得所述目标协议与所 述应用账号匹配。
[0112] 步骤606、根据所述操作指令回放目标协议,其中,所述目标协议为所述被测试协 议中当前待测试的协议。
[0113] 与现有技术不同的是,根据操作指令回放目标协议,其中,目标协议可对应一个或 者多个操作指令,通过调用该操作指令重现测试场景,可协助定位协议问题,有效提高测试 效率。
[0114] 在图5所示实施例的基础上,请参阅图7,本发明实施例中协议回放的另一个实施 例示意图,具体流程如下:
[0115] 步骤701、接收协议测试指令,所述协议测试指令用于指示对被测试协议进行测 试。
[0116] 步骤702、加载本地保存的被测试协议对应的数据包,其中,所述数据包中包含所 述被测试协议对应的操作指令,所述操作指令用于重现测试场景。
[0117] 在一些可能的实现方式中,所述操作指令包括保存指令、赋值指令、更新指令、跳 转指令、断言指令中的至少一个。当然,还可W包括上述表一里描述的操作指令,具体可根 据实际情况而定,此处不做具体限定。
[0118] 步骤703、根据所述操作指令回放目标协议,其中,所述目标协议为所述被测试协 议中当前待测试的协议。
[0119] 需要说明的是,步骤701至步骤703与图5所示实施例中的步骤501至步骤503相同 或相似,具体可参阅步骤501至步骤503,此处不再寶述。
[0120] 步骤704、通过调用所述操作指令判断所述目标协议是否满足预设要求。
[0121] 在一些可能的实现方式中,所述调用所述操作指令包括:根据解释器将所述操作 指令解析为程序语言的代码并执行所述代码。
[0122] 步骤705、将所述判断的结果确定为所述目标协议的测试结果。
[0123] 在实际应用中,当协议回放时,为了快速获取测试结果,通过0P指令判断所述目标 协议是否满足预设要求,若满足预设要求,则确定被测试协议不存在漏桐,若不满足预设要 求,则确定被测试协议存在漏桐,进而后续修正被测试协议,其中,预设要求可W是终端默 认的或者用户自定义的标准,此处不做具体限定。可见,在协议录制时,添加被测试协议对 应的0P指令,在协议回放的时候,可调用0P指令快速重现测试场景,从而有效提高测试效 率。
[0124] 需要说明是,在一些可能的实现方式中,终端完全执行图6和图7所示实施例的所 有内容,具体可参阅图6和图7所示实施例中的内容,此处不再寶述。
[0125] 在实际应用中,如图8a所示,在回放协议时,通过用例管理界面来打开本地保存的 文件,例如:打开保存在终端E盘中的文件,打开后自动加载当前文件中的被测试协议,选中 被协议测试(例如:图8a中所示的gml),其协议回放结果如下图8b所示,在图8b所示的界面 上,包括外部命令(英文全称:separate,缩写:seq)的数据量,数据类型(Direction),用户 的身份信息(英文全称:user 1扯〇^11日*1〇11,缩写:化11),0?指令等,^0?指令为6乂阳口'_69为 例,用于指示期望数据包的某个字段与字符串相同,则通过调用EXPECT_EQ重现测试场景, 并实现数据包的某个字段与字符串相同。
[0126] 可见,协议回放的过程其实就是打开存在本地的文件,然后将加载文件中的被测 试协议,按原来的协议格式发送到服务器的过程。实践表明,在协议回放过程中,会出现两 个可能影响回放结果的问题:第一、协议回放中,应用程序当前登陆的应用账号可能已经过 期,或者是另一个账号登陆应用程序,导致协议头不一致;第二、协议回放W后,对回放结果 的确定。
[0127] 本发明采用了 0P指令很好地的解决了上述两个问题,其中,0P指令是一种类似于 汇编指令和断言指令结合的一种指令集。由于在协议录制时添加0P指令,0P指令会在协议 录制时与被测试协议一起保存到本地文件,因此,在协议回放时,终端利用协议工具解析并 执行0P指令,从而完成协议测试自动化,如图8c所示,为0P指令的工作流程:
[0128] 针对上述第一个问题,采取的解决方案为:由于在协议录制时,针对被测试协议添 加了0P指令,例如:M0V指令或者UPDATE指令等,并注册应用程序的应用账号。在协议回放之 前,可W先判断当前登陆的应用账号和协议头中的会话控制(Seesion)校验字段是否一致, 当不一致时,可W调用MOV指令或者UPDATE指令更新协议字段,具体过程为:利用解释器将 0P指令(MOV指令或者UPDATE指令)解析为pyhton代码,并执行该pyhton代码,从而使得应用 账号和协议头中的会话控制(Seesion)校验字段保持一致。
[0129] 针对上述第二个问题,采取的解决方案为:在协议录制时,在期望协议中添加 EXPECT操作指令,当回放至当条协议时,可W通过EXPECT指令快速地获取协议当前字段是 否符合预期,从而根据获取的内容快速判断测试结果,有效提高测试效率。
[0130] 可见,与现有技术不同的是,若回归某个测试场景时,无需重新构建测试场景,并 添加测试条件等繁琐工作,可W快速的"回到"测试场景,极大的减轻了繁琐的工作,同时还 可W协助定位被测试协议出现的问题。
[0131] 为便于更好的实施本发明实施例的上述相关方法,下面还提供用于配合上述方法 的相关装置。
[0132] 请参阅图9,本发明实施例中终端800的一个结构示意图,所述终端800包括:获取 模块801,添加模块802和分类模块803 W及保存模块804。
[0133] 获取模块801,用于获取被测试协议对应的数据包;
[0134] 添加模块802,用于在所述获取模块801获取的所述数据包中添加所述被测试协议 对应的操作指令,其中,所述操作指令用于重现测试场景;
[0135] 分类模块803,用于按照目标规则将所述添加模块802添加后的所述数据包分类至 对应的文件中;
[0136] 在一些可能的实现方式中,所述分类模块803具体用于获取所述被测试协议的协 议类型,协议头或者协议内容中的至少一个;将所述被测试协议的协议类型,协议头或者协 议内容中的至少一个确定为所述目标规则的属性;根据至少一个相同的所述属性将所述数 据包分类至对应的文件中。
[0137] 保存模块804,用于将所述分类模块803分类后的所述文件本地保存。
[0138] 在一些可能的实现方式中,所述保存模块804具体用于通过调用序列化函数将所 述文件处理成目标格式,并按照所述目标格式将所述本件本地保存。
[0139] 请参阅图10,本发明实施例中终端900的一个结构示意图,所述终端900包括:接收 模块901,加载模块902和回放模块903。
[0140] 接收模块901,用于接收协议测试指令,所述协议测试指令用于指示对被测试协议 进行测试;
[0141] 加载模块902,用于加载本地保存的被测试协议对应的数据包,其中,所述数据包 中包含所述被测试协议对应的操作指令,所述操作指令用于重现测试场景;
[0142] 回放模块903,用于根据所述操作指令回放目标协议,其中,所述目标协议为所述 被测试协议中当前待测试的协议。
[0143] 在图10所示实施例的基础上,请参阅图11,在一些可能的实现方式中,所述终端 900还包括:获取模块904,判断模块905和调用模块906。
[0144] 获取模块904,用于所述回放模块903根据所述操作指令回放目标协议之前,获取 所述目标协议当前对应的应用账号;
[0145] 判断模块905,用于判断所述目标协议是否与所述应用账号匹配;
[0146] 调用模块906,用于若不匹配,通过调用所述操作指令更新所述目标协议W使得所 述目标协议与所述应用账号匹配。
[0147] 其中,所述调用模块906具体用于根据解释器将所述操作指令解析为程序语言的 代码并执行所述代码。
[0148] 在图10所示实施例的基础上,请参阅图12,在另一些可能的实现方式中,所述终端 还包括:判断模块905和确定模块907。
[0149] 判断模块905,用于所述回放模块根据所述操作指令回放目标协议之后,通过调用 所述操作指令判断所述目标协议是否满足预设要求;
[0150] 确定模块907,用于将所述判断模块判断的结果确定为所述目标协议的测试结果。
[0151] 在图11所示实施例的基础上,请参阅图13,在另一些可能的实现方式中,所述终端 还包括:确定模块907。
[0152] 所述判断模块905,还用于所述回放模块根据所述操作指令回放目标协议之后,通 过调用所述操作指令判断所述目标协议是否满足预设要求;
[0153] 确定模块907,用于将所述判断模块判断的结果确定为所述目标协议的测试结果。
[0154] 需要说明的是,上述模块可W是软件模块,能够在计算机系统的硬件中执行,也可 W是特定的集成电路,并取得对应的技术效果,此处不做具体限定。另外,上述模块执行的 步骤可对应图2至图7所示实施例中的方法具体实现,其具体实现过程可参考图2至图7所示 方法实施例中的相关描述,此处不再寶述,通过该终端执行图2至图7所示实施例的方法,取 得该方法实施例所能取得的技术效果。
[0155] 综上,在获取被测试协议对应的数据包后,在数据包中添加被测试协议对应的操 作指令,再将数据包按照目标规则分类保存,从而完成协议录制的过程,由于将数据包分类 后再本地保存,则能够快速区别不同的数据包;接收协议测试指令后,加载本地保存的被测 试协议对应的数据包,并根据所述操作指令回放目标协议,与现有技术不同的是,该数据包 中包含所述被测试协议对应的操作指令,则通过调用操作指令快速重现测试场景,操作简 单,从而有效提高测试效率。
[0156] 所属领域的技术人员可W清楚地了解到,为描述的方便和简洁,上述描述的系统, 装置和单元的具体工作过程,可W参考前述方法实施例中的对应过程,在此不再寶述。
[0157] 在本申请所提供的几个实施例中,应该理解到,所掲露的系统,装置和方法,可W 通过其它的方式实现。例如,W上所描述的装置实施例仅仅是示意性的,例如,所述单元的 划分,仅仅为一种逻辑功能划分,实际实现时可W有另外的划分方式,例如多个单元或组件 可W结合或者可W集成到另一个系统,或一些特征可W忽略,或不执行。另一点,所显示或 讨论的相互之间的禪合或直接禪合或通信连接可W是通过一些接口,装置或单元的间接禪 合或通信连接,可W是电性,机械或其它的形式。
[0158] 所述作为分离部件说明的单元可W是或者也可W不是物理上分开的,作为单元显 示的部件可W是或者也可W不是物理单元,即可W位于一个地方,或者也可W分布到多个 网络单元上。可w根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目 的。
[0159] 另外,在本发明各个实施例中的各功能单元可W集成在一个处理单元中,也可W 是各个单元单独物理存在,也可W两个或两个W上单元集成在一个单元中。上述集成的单 元既可W采用硬件的形式实现,也可W采用软件功能单元的形式实现。
[0160] 所述集成的单元如果W软件功能单元的形式实现并作为独立的产品销售或使用 时,可W存储在一个计算机可读取存储介质中。基于运样的理解,本发明的技术方案本质上 或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可软件产品的形式 体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用W使得一台计算机 设备(可W是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全 部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memo巧)、随机存取存储器(RAM,Random Access Memcxry)、磁碟或者光盘等各种可W存储程 序代码的介质。
[0161] W上所述,W上实施例仅用W说明本发明的技术方案,而非对其限制;尽管参照前 述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可W对前 述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而运些 修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
【主权项】
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所述的终端,其特征在于,所述操作指令包括保存指令、赋值 指令、更新指令、跳转指令、断言指令中的至少一个。
【文档编号】H04L12/26GK105871662SQ201610457278
【公开日】2016年8月17日
【申请日】2016年6月22日
【发明人】文骁, 文骁一, 邱广, 何航, 何庆玮
【申请人】腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1