CN110232025A - 协议测试方法、装置和系统 - Google Patents
协议测试方法、装置和系统 Download PDFInfo
- Publication number
- CN110232025A CN110232025A CN201910502438.2A CN201910502438A CN110232025A CN 110232025 A CN110232025 A CN 110232025A CN 201910502438 A CN201910502438 A CN 201910502438A CN 110232025 A CN110232025 A CN 110232025A
- Authority
- CN
- China
- Prior art keywords
- test
- request message
- implementing result
- server
- client
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 298
- 238000004891 communication Methods 0.000 claims abstract description 29
- 238000000034 method Methods 0.000 claims abstract description 27
- 235000013399 edible fruits Nutrition 0.000 claims description 5
- 241000208340 Araliaceae Species 0.000 claims description 3
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 claims description 3
- 235000003140 Panax quinquefolius Nutrition 0.000 claims description 3
- 235000008434 ginseng Nutrition 0.000 claims description 3
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 2
- 239000010931 gold Substances 0.000 description 2
- 229910052737 gold Inorganic materials 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种协议测试方法、装置和系统。其中,该方法包括:控制客户端向服务器发送请求消息,其中,请求消息基于预设通信协议进行封装,请求消息中携带有待执行参数,待执行参数为客户端执行的测试用例中的参数;获取服务器基于请求消息反馈的第一执行结果;将第一执行结果以及第二执行结果进行比较,得到测试结果,其中,第二执行结果是与待执行参数相适配的执行结果。本发明解决了现有技术测试协议的测试效率低的技术问题。
Description
技术领域
本发明涉及应用测试领域,具体而言,涉及一种协议测试方法、装置和系统。
背景技术
网络游戏的软件实体分为游戏客户端和服务器,目前游戏客户端与服务器之间的通信一般是基于RPC(Remote Procedure Call,远程过程调用)开发框架进行的,例如,用户通过客户端购买游戏道具,则客户端需要向服务器发送RPC请求,服务器在接收到RPC请求之后,经过验证处理,向客户端返回RPC响应消息。为保证服务器的运行,需要对服务器的RPC进行协议测试。例如,玩家通过客户端伪造了一条给自己加100000金币的RPC请求,如果服务器对客户端请求进行了回应,给玩家增加了金币,则玩家就可以进行非法获利,严重破坏了游戏的生态环境。由此可见,在游戏领域,协议测试具有重要意义。
在现有技术中,可以通过测试者阅读客户端以及服务器对应的协议代码,确定需要进行测试的协议以及协议参数,然后编写测试脚本进行协议测试。该方案需要测试者花费时间阅读客户端和服务器对应的协议代码,效率较低,而且对测试者的代码能力要求较高,提高了协议测试的门槛。
对此,现有技术还存在一种测试方案,该方案通过增加软件实体(即协议测试工具)来拦截客户端到服务器的网络消息以获取网络协议。具体的,首先启动协议测试工具,监听游戏客户端的发送的协议以及接收到的协议,并启动游戏客户端,与协议测试工具建立连接。然后在客户端触发需要进行测试的协议,游戏客户端将协议发送至服务器的同时,利用钩子发送一份协议至协议测试工具,协议测试工具在接收到游戏客户端发送的协议之后,按照测试用例修改协议内容,并将修改后的协议发送至客户端,再由客户端将协议发送至服务器,得到测试结果,最后人工验证测试结果。
在上述方案中,协议测试用例管理需要测试者处理,无法提供用例评审、用例共享等操作,缺乏统一的用例管理;在进行接口协议测试用例回归时,需要重新阅读用例,重新构建测试环境、用例执行环境,进行接口协议的再执行用例,验证执行结果,回归周期较长,效率较低。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种协议测试方法、装置和系统,以至少解决现有技术测试协议的测试效率低的技术问题。
根据本发明实施例的一个方面,提供了一种协议测试方法,包括:控制客户端向服务器发送请求消息,其中,请求消息基于预设通信协议进行封装,请求消息中携带有待执行参数,待执行参数为客户端执行的测试用例中的参数;获取服务器基于请求消息反馈的第一执行结果;将第一执行结果以及第二执行结果进行比较,得到测试结果,其中,第二执行结果是与待执行参数相适配的执行结果。
进一步地,协议测试方法还包括:将测试用例发送至客户端,以使客户端基于测试用例将携带有待执行参数的请求消息发送至服务器,并获取服务器反馈的第一执行结果;基于客户端获取服务器反馈的第一执行结果。
进一步地,协议测试方法还包括:将测试用例发送至客户端,以使客户端基于测试用例将携带有待执行参数的请求消息发送至服务器的测试接口;获取服务器的测试接口反馈的第一执行结果。
进一步地,协议测试方法还包括:检测第一执行结果与第二执行结果是否相匹配;在第一执行结果与第二执行结果匹配的情况下,确定测试结果为测试成功;在第一执行结果与第二执行结果不匹配的情况下,确定测试结果为测试失败。
进一步地,协议测试方法还包括:在控制客户端向服务器发送请求消息之前,获取至少一组数据,其中,至少一组数据中的每组数据为请求消息中的待执行参数;生成与每组数据对应的测试用例。
进一步地,协议测试方法还包括:在生成与每组数据对应的测试用例之后,获取客户端与服务器之间进行通信的预设通信协议;基于测试用例对预设通信协议中的待执行参数进行修改,得到请求消息。
进一步地,客户端包括如下至少之一:真实客户端和模拟客户端。
根据本发明实施例的另一方面,还提供了一种协议测试系统,包括:客户端,用于向服务器发送请求消息,其中,请求消息中携带有待执行参数;测试平台,用于在客户端向服务器发送请求消息的过程中,获取请求消息,并对请求消息中的待执行参数进行修改,生成测试用例以及与测试用例对应的第二执行结果,其中,测试用例被客户端执行,第二执行结果为与待执行参数相适配的执行结果;服务器,用于接收客户端执行测试用例时发送的请求消息,并返回与请求消息对应的第一执行结果;测试平台还用于将第一执行结果以及第二执行结果进行比较,得到测试结果。
根据本发明实施例的另一方面,还提供了一种协议测试装置,包括:发送模块,用于控制客户端向服务器发送请求消息,其中,请求消息基于预设通信协议进行封装,请求消息中携带有待执行参数,待执行参数为客户端执行的测试用例中的参数;获取模块,用于获取服务器基于请求消息反馈的第一执行结果;比较模块,用于将第一执行结果以及第二执行结果进行比较,得到测试结果,其中,第二执行结果是与待执行参数相适配的执行结果。
根据本发明实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述的协议测试方法。
在本发明实施例中,采用测试平台进行协议测试的方式,通过测试平台控制客户端向服务器发送基于预设通信协议进行封装的请求消息,并获取服务器基于请求消息反馈的第一执行结果,最后将第一结果与第二执行结果进行比较,得到测试结果,其中,请求消息中携带有待执行参数,待执行参数为客户端执行的测试用例中的参数,第二执行结果是与待执行参数相适配的执行结果。
在上述过程中,测试人员通过测试平台对预设通信协议中的待执行参数进行修改,并基于修改后的待执行参数生成测试用例,进而使客户端执行测试用例,向服务器发送基于预设通信协议进行封装的请求消息,从而完成协议测试,整个过程中,无需修改协议代码,降低了对测试人员的测试能力要求。另外,由于测试人员仅对待执行参数修改,即可生成对应的测试用例,进而实现协议测试,提高了测试效率。最后,在服务器基于请求消息返回第一执行结果之后,测试平台还可对第一执行结果进行自动验证,无需再人工验证测试结果,进一步提高了测试效率。
由此可见,本申请所提供的方案达到了对协议进行测试的目的,从而实现了提高测试效率的技术效果,进而解决了现有技术测试协议的测试效率低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种协议测试系统的示意图;
图2是根据本发明实施例的一种协议测试方法的流程图;
图3是根据本发明实施例的一种可选的测试平台获取请求消息的示意图;
图4是根据本发明实施例的一种可选的游戏内情缘系统的测试用例的示意图;
图5是根据本发明实施例的一种可选的协议测试流程图;
图6是根据本发明实施例的一种可选的协议测试流程图;以及
图7是根据本发明实施例的一种协议测试装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
RPC,Remote Procedure Call,远程过程调用,至通过网络从远程计算机程序上请求服务,而无需了解底层网络技术的协议。
钩子,hook,一种计算机程序设计术语,指通过拦截软件模块间的函数调用、消息传递、事件传递来修改或扩展操作系统、应用程序或其他软件组件的行为的各种技术,其中,处理被拦截的函数调用、事件、消息的代码,称为钩子。
根据本发明实施例,提供了一种协议测试系统的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的协议测试系统的示意图,如图1所示,该系统包括:测试平台10、客户端20以及服务器30。
可选的,客户端用于向服务器发送请求消息,其中,请求消息中携带有待执行参数;测试平台,用于在客户端向服务器发送请求消息的过程中,获取请求消息,并对请求消息中的待执行参数进行修改,生成测试用例以及与测试用例对应的第二执行结果,其中,测试用例被客户端执行,第二执行结果为与待执行参数相适配的执行结果。服务器,用于接收客户端执行测试用例时发送的请求消息,并返回与请求消息对应的第一执行结果;测试平台还用于将第一执行结果以及第二执行结果进行比较,得到测试结果。
可选的,客户端设置有钩子,当客户端向服务器发送请求消息时,钩子获取请求消息,并将请求消息发送至测试平台,测试平台在得到该请求消息之后,获取请求消息中携带的待执行参数,并对待执行参数进行修改,从而生成测试用例,然后将测试用例发送至客户端。客户端执行该测试用例,向服务器发送包含修改后的待执行参数的请求消息。服务器在获取到请求消息之后,返回与请求消息对应的执行结果(即第一执行结果),其中,服务器可以通过预设通信协议将执行结果反馈至客户端,再由客户端中的钩子将执行结果反馈至测试平台;服务器还可以直接将执行结果反馈至测试平台(如图1中的虚线所示)。
需要说明的是,上述测试平台可以和客户端设置在同一个终端上,测试平台还可以与客户端分别设置在不同的终端上。可选的,客户端包括如下至少之一:真实客户端和模拟客户端,在游戏领域,上述客户端为游戏客户端,对应的游戏客户端的类型为真实游戏客户端和模拟游戏客户端,其中,在测试平台与真实客户端进行通信的过程中,真实客户端执行测试用例,测试平台配合客户端进行协议测试和测试结果验证;在测试平台与模拟客户端进行通信的过程中,测试平台可以通过模拟客户端与服务器通信,模拟客户端可以直接调用服务器的接口,并执行测试用例。此时,模拟客户端无需打开真实客户端,以便于多开等批量从左,可用于协议压力测试等测试场景。
此外,还需要说明的是,本实施例所提供的协议测试系统可进行的协议测试包括但不限于功能逻辑测试、数据类型测试、协议压力测试、边界值测试、非法参数测试等测试。
由上可知,本申请采用测试平台进行协议测试的方式,通过测试平台控制客户端向服务器发送基于预设通信协议进行封装的请求消息,并获取服务器基于请求消息反馈的第一执行结果,最后将第一结果与第二执行结果进行比较,得到测试结果,其中,请求消息中携带有待执行参数,待执行参数为客户端执行的测试用例中的参数,第二执行结果是与待执行参数相适配的执行结果。
在上述过程中,测试人员通过测试平台对预设通信协议中的待执行参数进行修改,并基于修改后的待执行参数生成测试用例,进而使客户端执行测试用例,向服务器发送基于预设通信协议进行封装的请求消息,从而完成协议测试,整个过程中,无需修改协议代码,降低了对测试人员的测试能力要求。另外,由于测试人员仅对待执行参数修改,即可生成对应的测试用例,进而实现协议测试,提高了测试效率。最后,在服务器基于请求消息返回第一执行结果之后,测试平台还可对第一执行结果进行自动验证,无需再人工验证测试结果,进一步提高了测试效率。
由此可见,本申请所提供的方案达到了对协议进行测试的目的,从而实现了提高测试效率的技术效果,进而解决了现有技术测试协议的测试效率低的技术问题。
根据本发明实施例,还提供了一种协议测试方法的实施例,需要说明的是,上述实施例中的测试平台为本实施例中的协议测试方法的执行主体,其中,图2是根据本发明实施例的协议测试方法的流程图,如图2所示,该方法包括如下步骤:
步骤S202,控制客户端向服务器发送请求消息,其中,请求消息基于预设通信协议进行封装,请求消息中携带有待执行参数,待执行参数为客户端执行的测试用例中的参数。
步骤S204,获取服务器基于请求消息反馈的第一执行结果。
步骤S206,将第一执行结果以及第二执行结果进行比较,得到测试结果,其中,第二执行结果是与待执行参数相适配的执行结果。
在一种可选的实施例中,在控制客户端向服务器发送请求消息之前,测试平台获取至少一组数据,并生成与每组数据对应的测试用例。其中,至少一组数据中的每组数据为请求消息中的待执行参数。例如,客户端向服务器发送的请求消息为买鞋子的请求,则请求消息中的待执行参数可以包括鞋子数量、鞋子的颜色以及鞋子的价格,待执行参数对应的数据可以为{鞋子:100,颜色:红,价格:100}、{鞋子:1,颜色:绿,价格:100}、{鞋子:1,颜色:红,价格:0},每一组数据可以作为一个测试用例的待执行参数。测试人员可以通过测试平台对请求消息中的待执行参数进行修改,即在生成与每组数据对应的测试用例之后,测试平台获取客户端与服务器之间进行通信的预设通信协议,并基于测试用例对预设通信协议中的待执行参数进行修改,得到请求消息。然后测试平台控制客户端向服务器发送请求消息。
可选的,图3示出了测试平台获取请求消息的示意图,具体的,客户端设置有钩子,当客户端向服务器发送请求消息时(如图3中的步骤S31),钩子将获取请求消息,并将请求消息发送至测试平台(如图3中的步骤S32)。服务器在接收到请求消息之后,将与请求消息对应的执行结果(即第一执行结果)通过请求消息中的预设通信协议返回至客户端(如图3中的步骤S33),客户端中的钩子复制该协议,并将该协议以及服务器返回的消息反馈至测试平台(如图3中的步骤S34)。
需要说明的是,测试平台具有测试前端和测试后端,其中,测试前端用于与测试人员进行交互,例如,测试前端可以获取测试人员输入的待执行参数以及与待执行参数相匹配的第二执行结果,还可以展示服务器反馈的第一执行结果,从而使得测试人员无需阅读代码即可获取请求消息对应的协议名称以及待执行参数,降低了协议测试的难度。测试后端能够获取测试用户输入的待执行参数实现各测试用例的完整可执行脚本,并控制客户端执行生成的可执行脚本。
可选的,图4示出了一种可选的游戏内情缘系统的测试用例,该用例记录了一条完整用例的测试环境和测试流程,测试人员可以在测试平台上选择测试协议,编辑协议参数(即待执行参数),调整协议顺序,构造测试用例,编辑期望的测试结果(即第二执行结果)。
需要说明的是,通过测试平台,测试人员可以方便的构建测试环境,编辑协议名和协议参数,配置期望的测试结果,提高了协议测试的效率,降低了协议测试的难度。
在一种可选的实施例中,测试平台在生成测试用例之后,还将测试用例发送至客户端,以使客户端基于测试用例将携带有待执行参数的请求消息发送至服务器,并获取服务器反馈的第一执行结果,然后基于客户端获取服务器反馈的第一执行结果。
可选的,如图5所示的协议测试流程图,测试平台在获取到请求消息对应的预设通信协议以及待执行参数之后,对待执行参数进行编辑,并确定与待执行参数对应执行结果。然后测试平台启动协议测试(如图5中的步骤S51),测试平台控制客户端发送执行测试用例,并发送与测试用例对应的请求消息至服务器(如图5中的步骤S52),服务器处理并返回与请求消息对应的执行结果(即第一执行结果)(如图5中的步骤S53),客户端在接收到服务器反馈的消息之后,将返回的消息返回至测试平台(如图5中的步骤S54),测试平台的测试后端自动检测第一执行结果是否与预期结果符合。
在另一种可选的实施例中,测试平台在生成测试用例之后,将测试用例发送至客户端,以使客户端基于测试用例将携带有待执行参数的请求消息发送至服务器的测试接口,然后获取服务器的测试接口反馈的第一执行结果。
可选的,如图6所示的协议测试流程图,测试平台在获取到请求消息对应的预设通信协议以及待执行参数之后,对待执行参数进行编辑,并确定与待执行参数对应执行结果。然后测试平台启动协议测试(如图6中的步骤S61),测试平台控制客户端发送执行测试用例,并发送与测试用例对应的请求消息至服务器的测试接口(如图6中的步骤S62),服务器的测试结构可执行与非测试接口相同的逻辑,并返回与请求消息对应的执行结果(即第一执行结果)(如图6中的步骤S63),测试平台的测试后端自动检测第一执行结果是否与预期结果符合。
需要说明的是,通过服务器的测试接口接收请求消息并返回与请求消息对应的执行结果,可以使测试平台获取更多的服务器信息,对服务器协议的验证更详细更具体,可以效率更高的定位测试中所出现的问题。
此外,还需要说明的是,通过上述获取服务器反馈的第一执行结果的内容,测试人员进行用例执行和用例回归时,无需人工干预,使得协议测试回归自动化执行。
另外,由图5和图6可知,测试平台在获取到第一执行结果之后,还将第一执行结果以及第二执行结果进行比较,得到测试结果。具体的,测试平台检测第一执行结果与第二执行结果是否相匹配,其中,在第一执行结果与第二执行结果匹配的情况下,确定测试结果为测试成功;在第一执行结果与第二执行结果不匹配的情况下,确定测试结果为测试失败。
需要说明的是,测试失败的原因可能是预设通信协议出现了异常,在该情况下,测试平台提示测试人员修改测试脚本。测试失败的原因还可能是在测试过程中,预设通信协议进行了迭代,从而使得测试用例失效,在该情况下,测试平台提示测试人员对测试用例进行调整。
另外,本申请所提供的测试平台还可对测试用例进行管理,例如,保存测试用例,测试人员通过测试平台可对测试用例进行分享和评审,提高了测试用例的覆盖率和全面性,为提高项目质量打下了基础。
由上述内容可知,本申请实现了一种测试者可录制、编辑、回放操作的测试平台,测试者无需阅读代码,通过自己执行操作即可获取操作对应的协议以及协议参数。测试者可以在该测试平台上根据获取的协议以及协议参数编辑测试环境、测试用例以及测试结果。此外,该测试平台还可以共享用例供评审、查缺补漏,测试者进行用例回归时,无需进行重复操作,直接重放编辑好的测试用例即可构建测试环境,进行测试验证。
由此可见,本申请所提供的方案降低了协议测试的门槛,使不熟悉代码的测试人员、刚接手该工作的测试人员也能够进行协议测试。另外,本申请所提供的方案提供了一个统一的协议用例管理、评审的测试平台,提高了测试用例的覆盖率和质量。最后,本申请所提供的方案提供用例录制、编辑、回放、回归验证的完整测试链,提高可协议测试、回归测试的效率。
根据本发明实施例,还提供了一种协议测试装置的实施例,其中,图7是根据本发明实施例的协议测试装置的示意图,如图7所示,该装置包括:发送模块701、获取模块703以及比较模块705。
其中,发送模块701,用于控制客户端向服务器发送请求消息,其中,请求消息基于预设通信协议进行封装,请求消息中携带有待执行参数,待执行参数为客户端执行的测试用例中的参数;获取模块703,用于获取服务器基于请求消息反馈的第一执行结果;比较模块705,用于将第一执行结果以及第二执行结果进行比较,得到测试结果,其中,第二执行结果是与待执行参数相适配的执行结果。
此处需要说明的是,上述发送模块701、获取模块703以及比较模块705对应于上述实施例的步骤S202至步骤S206,三个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例所公开的内容。
在一种可选的实施例中,发送模块包括:第一发送模块,用于将测试用例发送至客户端,以使客户端基于测试用例将携带有待执行参数的请求消息发送至服务器,并获取服务器反馈的第一执行结果;获取模块包括:第一获取模块,用于基于客户端获取服务器反馈的第一执行结果。
在一种可选的实施例中,发送模块包括:第二发送模块,用于将测试用例发送至客户端,以使客户端基于测试用例将携带有待执行参数的请求消息发送至服务器的测试接口;获取模块包括:第二获取模块,用于获取服务器的测试接口反馈的第一执行结果。
在一种可选的实施例中,比较模块包括:检测模块、第一确定模块以及第二确定模块。其中,检测模块,用于检测第一执行结果与第二执行结果是否相匹配;第一确定模块,用于在第一执行结果与第二执行结果匹配的情况下,确定测试结果为测试成功;第二确定模块,用于在第一执行结果与第二执行结果不匹配的情况下,确定测试结果为测试失败。
在一种可选的实施例中,协议测试装置还包括:第三获取模块以及生成模块。其中,第三获取模块,用于在控制客户端向服务器发送请求消息之前,获取至少一组数据,其中,至少一组数据中的每组数据为请求消息中的待执行参数;生成模块,用于生成与每组数据对应的测试用例。
在一种可选的实施例中,协议测试装置还包括:第四获取模块以及修改模块。其中,第四获取模块,用于在生成与每组数据对应的测试用例之后,获取客户端与服务器之间进行通信的预设通信协议;修改模块,用于基于测试用例对预设通信协议中的待执行参数进行修改,得到请求消息。
可选的,客户端包括如下至少之一:真实客户端和模拟客户端。
根据本发明实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述的协议测试方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种协议测试方法,其特征在于,包括:
控制客户端向服务器发送请求消息,其中,所述请求消息基于预设通信协议进行封装,所述请求消息中携带有待执行参数,所述待执行参数为所述客户端执行的测试用例中的参数;
获取所述服务器基于所述请求消息反馈的第一执行结果;
将所述第一执行结果以及第二执行结果进行比较,得到测试结果,其中,所述第二执行结果是与所述待执行参数相适配的执行结果。
2.根据权利要求1所述的方法,其特征在于,
所述控制客户端向服务器发送请求消息,包括:将所述测试用例发送至所述客户端,以使所述客户端基于所述测试用例将携带有所述待执行参数的请求消息发送至所述服务器,并获取所述服务器反馈的第一执行结果;
所述获取所述服务器基于所述请求消息反馈的第一执行结果,包括:基于所述客户端获取所述服务器反馈的第一执行结果。
3.根据权利要求1所述的方法,其特征在于,
所述控制客户端向服务器发送请求消息,包括:将所述测试用例发送至所述客户端,以使所述客户端基于所述测试用例将携带有所述待执行参数的请求消息发送至所述服务器的测试接口;
所述获取所述服务器基于所述请求消息反馈的第一执行结果,包括:获取所述服务器的测试接口反馈的第一执行结果。
4.根据权利要求2或3所述的方法,其特征在于,将所述第一执行结果以及第二执行结果进行比较,得到测试结果,包括:
检测所述第一执行结果与所述第二执行结果是否相匹配;
在所述第一执行结果与所述第二执行结果匹配的情况下,确定所述测试结果为测试成功;
在所述第一执行结果与所述第二执行结果不匹配的情况下,确定所述测试结果为测试失败。
5.根据权利要求1所述的方法,其特征在于,在控制客户端向服务器发送请求消息之前,所述方法还包括:
获取至少一组数据,其中,所述至少一组数据中的每组数据为所述请求消息中的待执行参数;
生成与所述每组数据对应的测试用例。
6.根据权利要求5所述的方法,其特征在于,在生成与所述每组数据对应的测试用例之后,所述方法还包括:
获取所述客户端与所述服务器之间进行通信的预设通信协议;
基于所述测试用例对所述预设通信协议中的待执行参数进行修改,得到所述请求消息。
7.根据权利要求1所述的方法,其特征在于,所述客户端包括如下至少之一:真实客户端和模拟客户端。
8.一种协议测试系统,其特征在于,包括:
客户端,用于向服务器发送请求消息,其中,所述请求消息中携带有待执行参数;
测试平台,用于在所述客户端向所述服务器发送所述请求消息的过程中,获取所述请求消息,并对所述请求消息中的待执行参数进行修改,生成测试用例以及与所述测试用例对应的第二执行结果,其中,所述测试用例被所述客户端执行,所述第二执行结果为与所述待执行参数相适配的执行结果;
所述服务器,用于接收所述客户端执行所述测试用例时发送的请求消息,并返回与所述请求消息对应的第一执行结果;
所述测试平台还用于将所述第一执行结果以及第二执行结果进行比较,得到测试结果。
9.一种协议测试装置,其特征在于,包括:
发送模块,用于控制客户端向服务器发送请求消息,其中,所述请求消息基于预设通信协议进行封装,所述请求消息中携带有待执行参数,所述待执行参数为所述客户端执行的测试用例中的参数;
获取模块,用于获取所述服务器基于所述请求消息反馈的第一执行结果;
比较模块,用于将所述第一执行结果以及第二执行结果进行比较,得到测试结果,其中,所述第二执行结果是与所述待执行参数相适配的执行结果。
10.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至7中任意一项所述的协议测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910502438.2A CN110232025A (zh) | 2019-06-11 | 2019-06-11 | 协议测试方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910502438.2A CN110232025A (zh) | 2019-06-11 | 2019-06-11 | 协议测试方法、装置和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110232025A true CN110232025A (zh) | 2019-09-13 |
Family
ID=67859007
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910502438.2A Pending CN110232025A (zh) | 2019-06-11 | 2019-06-11 | 协议测试方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110232025A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111064638A (zh) * | 2019-12-13 | 2020-04-24 | 腾讯科技(深圳)有限公司 | 电子邮件协议服务的测试方法、装置、设备及存储介质 |
CN112667490A (zh) * | 2020-12-30 | 2021-04-16 | 杭州趣链科技有限公司 | 基于钩子函数的性能测试方法与装置 |
CN112925725A (zh) * | 2021-04-09 | 2021-06-08 | 网易(杭州)网络有限公司 | 数据测试方法和装置、可读存储介质、电子设备 |
CN114584500A (zh) * | 2022-02-25 | 2022-06-03 | 网易(杭州)网络有限公司 | 异步通信的测试方法、装置及电子设备 |
CN114726577A (zh) * | 2022-03-02 | 2022-07-08 | 武汉天喻信息产业股份有限公司 | 一种供于测试的通信系统及数据篡改方法 |
CN116232940A (zh) * | 2022-12-30 | 2023-06-06 | 天翼云科技有限公司 | 基于quic协议的性能测试系统、方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103136099A (zh) * | 2011-12-02 | 2013-06-05 | 腾讯科技(深圳)有限公司 | 测试软件的方法、模拟终端、后台服务器和系统 |
WO2014134416A1 (en) * | 2013-03-01 | 2014-09-04 | Sony Corporation | Remotely testing electronic devices using messaging and presence protocol |
CN109634861A (zh) * | 2018-12-11 | 2019-04-16 | 网易(杭州)网络有限公司 | 网络游戏协议的测试方法、装置、处理器及终端 |
-
2019
- 2019-06-11 CN CN201910502438.2A patent/CN110232025A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103136099A (zh) * | 2011-12-02 | 2013-06-05 | 腾讯科技(深圳)有限公司 | 测试软件的方法、模拟终端、后台服务器和系统 |
WO2014134416A1 (en) * | 2013-03-01 | 2014-09-04 | Sony Corporation | Remotely testing electronic devices using messaging and presence protocol |
CN109634861A (zh) * | 2018-12-11 | 2019-04-16 | 网易(杭州)网络有限公司 | 网络游戏协议的测试方法、装置、处理器及终端 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111064638A (zh) * | 2019-12-13 | 2020-04-24 | 腾讯科技(深圳)有限公司 | 电子邮件协议服务的测试方法、装置、设备及存储介质 |
CN111064638B (zh) * | 2019-12-13 | 2022-09-30 | 腾讯科技(深圳)有限公司 | 电子邮件协议服务的测试方法、装置、设备及存储介质 |
CN112667490A (zh) * | 2020-12-30 | 2021-04-16 | 杭州趣链科技有限公司 | 基于钩子函数的性能测试方法与装置 |
CN112925725A (zh) * | 2021-04-09 | 2021-06-08 | 网易(杭州)网络有限公司 | 数据测试方法和装置、可读存储介质、电子设备 |
CN112925725B (zh) * | 2021-04-09 | 2024-03-15 | 网易(杭州)网络有限公司 | 数据测试方法和装置、可读存储介质、电子设备 |
CN114584500A (zh) * | 2022-02-25 | 2022-06-03 | 网易(杭州)网络有限公司 | 异步通信的测试方法、装置及电子设备 |
CN114584500B (zh) * | 2022-02-25 | 2024-03-22 | 网易(杭州)网络有限公司 | 异步通信的测试方法、装置及电子设备 |
CN114726577A (zh) * | 2022-03-02 | 2022-07-08 | 武汉天喻信息产业股份有限公司 | 一种供于测试的通信系统及数据篡改方法 |
CN114726577B (zh) * | 2022-03-02 | 2024-07-09 | 武汉天喻信息产业股份有限公司 | 一种供于测试的通信系统及数据篡改方法 |
CN116232940A (zh) * | 2022-12-30 | 2023-06-06 | 天翼云科技有限公司 | 基于quic协议的性能测试系统、方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110232025A (zh) | 协议测试方法、装置和系统 | |
US6993747B1 (en) | Method and system for web based software object testing | |
CN103678105B (zh) | 一种页面代码的测试方法和装置 | |
EP1214656B1 (en) | Method for web based software object testing | |
CN104462478B (zh) | 实现移动浏览器客户端与网页交互的方法、装置和客户端 | |
CN103929402B (zh) | 敏感操作验证方法、终端设备、服务器和验证系统 | |
CN105389256B (zh) | 一种单元测试方法及系统 | |
US20180276111A1 (en) | Mock services for software infrastructures | |
CN110147320A (zh) | 接口测试方法、装置及电子设备 | |
CN106484622A (zh) | 测试方法、装置及系统 | |
US20120311387A1 (en) | Method and apparatus for load testing online server systems | |
US20130340083A1 (en) | Methods, systems, and computer readable media for automatically generating a fuzzer that implements functional and fuzz testing and testing a network device using the fuzzer | |
CN107977308A (zh) | 接口测试方法及装置 | |
CN105787364B (zh) | 任务的自动化测试方法、装置及系统 | |
CN110493812A (zh) | 配网测试的处理方法、装置、系统、处理器及主控设备 | |
CN110569159A (zh) | 挡板生成方法、装置、设备及计算机存储介质 | |
CN108427638A (zh) | 地域相关网络营销活动测试方法及装置 | |
CN108304426A (zh) | 标识的获取方法及装置 | |
CN109499069A (zh) | 操作结果校验方法、装置、存储介质及电子装置 | |
CN109669859A (zh) | 服务测试方法、装置、计算机设备和存储介质 | |
CN108459850A (zh) | 生成测试脚本的方法、装置及系统 | |
CN107657172A (zh) | 代码处理方法、装置及系统 | |
CN112052179B (zh) | 软件系统的模拟方法、模拟系统及计算机可读介质 | |
CN106998323A (zh) | 应用层网络攻击仿真方法、装置及系统 | |
CN109831360A (zh) | 用于多用户并发web认证的自动化测试方法及测试系统 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190913 |