买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】接口测试的方法、装置和系统_网易(杭州)网络有限公司_201710543989.4 

申请/专利权人:网易(杭州)网络有限公司

申请日:2017-07-05

公开(公告)日:2020-11-24

公开(公告)号:CN107294808B

主分类号:H04L12/26(20060101)

分类号:H04L12/26(20060101);G06F11/36(20060101)

优先权:

专利状态码:有效-授权

法律状态:2020.11.24#授权;2017.11.24#实质审查的生效;2017.10.24#公开

摘要:本发明实施例提供一种接口测试的方法、装置和系统。该方法包括:在接收到用户输入的参数修改请求后,根据参数修改请求确定待修改的参数,以及修改后的参数的接收方;所述接收方包括客户端或者服务端,待修改的参数包括从客户端获取的接口请求中的接口参数,或者,从服务端获取的接口响应中的接口返回参数;根据所述参数修改请求修改待修改的参数,并将修改后的参数发送给接收方。本发明的方法,降低了接口测试对测试人员的代码能力要求和测试难度,提高了测试效率,也避免了现有技术中因反复修改代码逻辑对项目带来的安全隐患。

主权项:1.一种接口测试的方法,其特征在于,应用于中转服务器,包括:在接收到用户输入的参数修改请求后,根据所述参数修改请求确定待修改的参数,以及修改后的参数的接收方;其中,所述接收方包括客户端或者服务端,所述待修改的参数包括从所述客户端获取的接口请求中的接口参数,或者,从所述服务端获取的接口响应中的接口返回参数;根据所述参数修改请求修改所述待修改的参数,并将修改后的参数发送给所述接收方;其中,若所述待修改的参数的标识为所述接口响应中的接口返回参数的标识;则所述根据所述参数修改请求确定待修改的参数,以及修改后的参数的接收方,具体包括:根据所述待修改的参数的标识确定所述待修改的参数为所述接口响应中的接口返回参数,以及,确定所述修改后的接口返回参数的接收方为所述客户端;将所述修改后的参数以及所述接收方的表现发送给显示端;所述接收方的表现包括:所述客户端的表现;其中,所述参数修改请求中携带所述待修改的参数的标识和所述待修改的参数对应的修改值;若所述待修改的参数的标识为所述接口请求中的接口参数的标识;则所述根据所述参数修改请求确定待修改的参数,以及修改后的参数的接收方,具体包括:根据所述待修改的参数的标识确定所述待修改的参数为所述接口参数,以及,确定所述修改后的接口参数的接收方为所述服务端;根据所述参数修改请求修改所述待修改的参数,并将修改后的参数发送给所述接收方,具体包括:对从所述客户端获取的接口请求进行解析,得到所述接口参数;根据所述待修改的参数的修改值,修改所述接口参数,并将修改后的接口参数携带在新的接口请求中发送给所述服务端;接收所述服务端发送的接口响应。

全文数据:接口测试的方法、装置和系统技术领域[0001]本发明实施例涉及通信技术,尤其涉及一种接口测试的方法、装置和系统。背景技术[0002]在大型软件项目中,细微的缺陷也可能给项目带来致命的冲击。常规流程中,测试人员往往只关注用户端软件功能正常,然而功能测试并不能覆盖正式运营环境中的各种复杂情况,对客户端和服务端之间的接口进行测试是软件项目中数据交互至关重要的环节。常用的接口分为超文本传输协议HyperTextTransferProtocol,简称HTTP和传输控制协议TransmissionControlProtocol,简称TCP两大类。针对TCP接口进行测试时,虽然采用第三方抓包工具可以截获TCP接口的二进制流数据,但是截获的数据通常需要解密,且用户不能人为修改传输参数,从而难以实现在不同的接口参数下,服务端和客户端双边表现是否正常且稳定的测试目标。针对该问题,现有技术提出了两种测试方法:[0003]a采用脚本替代客户端连接服务端,通过修改脚本的局部代码逻辑来模拟客户端的各种接口请求。修改脚本并运行后,即可通过判断服务端的表现来完成对该接口对应的接口请求参数的校验,多次重复操作即可覆盖接口请求参数测试的各种情况。该方法旨在通过接口测试确定服务端的稳定性[0004]b手动修改服务端的局部代码逻辑,通过指定服务端发送给客户端的接口返回参数来模拟服务端接口的各种返回。多次修改服务端的接口返回参数然后检查客户端的表现,即可覆盖接口返回参数测试的各种情况。方法旨在通过接口测试的另一方法确定客户端的稳定性[0005]但是,上述两种方法中,修改局部代码逻辑需有代码权限,对测试人员的代码能力具有一定的要求,测试适用范围小,且难度较大;并且,反复修改代码逻辑,可能会对项目带入新的安全隐患。发明内容[0006]本发明实施例提供一种接口测试的方法、装置和系统,以解决现有技术在进行接口测试时,均需要修改局部代码逻辑,对测试人员的代码能力具有一定的要求,测试适用范围小,且难度较大;并且,反复修改代码逻辑,可能会对项目带入新的安全隐患的技术问题。[0007]第一方面,本发明实施例提供一种接口测试的方法,包括:[0008]在接收到用户输入的参数修改请求后,根据所述参数修改请求确定待修改的参数,以及修改后的参数的接收方;其中,所述接收方包括所述客户端或者服务端,所述待修改的参数包括从所述客户端获取的接口请求中的接口参数,或者,从所述服务端获取的接口响应中的接口返回参数;[0009]根据所述参数修改请求修改所述待修改的参数,并将修改后的参数发送给所述接收方。[0010]第二方面,本发明实施例提供一种接口测试的装置,包括:传输模块、确定模块和修改模块;[0011]确定模块,用于在所述传输模块接收到用户输入的参数修改请求后,根据所述参数修改请求确定待修改的参数,以及修改后的参数的接收方;其中,所述接收方包括所述客户端或者服务端,所述待修改的参数包括所述传输模块从所述客户端获取的接口请求中的接口参数,或者,所述传输模块从所述服务端获取的接口响应中的接口返回参数;[0012]修改模块,用于根据所述参数修改请求修改所述待修改的参数;[0013]传输模块,用于将修改后的参数发送给所述接收方。[0014]第三方面,本发明实施例提供一种接口测试系统,包括:客户端、服务端、中转服务器和显示端;[0015]所述中转服务器,用于执行前述第一方面所提供的方法。[0016]本发明实施例提供的接口测试的方法、装置和系统,用户仅需要通过GUI界面输入参数修改请求即可,即只需要告知中转服务器修改什么类型的参数,以及将该类型的参数修改为什么值,中转服务器就可以基于用户输入的参数修改请求,辅助完成客户端和服务端之间的接口测试,从而实现客户端和服务端双边稳定性的判定。本方案无需用户修改客户端或者服务端的局部代码逻辑,降低了接口测试对测试人员的代码能力要求和测试难度,提高了接口测试的人员适用范围,也避免了现有技术中因反复修改代码逻辑对项目带来的安全隐患。另一方面,由上述技术方案的描述可知,本发明实施例中无需采用脚本模拟客户端和服务端通信,而是采用实际的客户端,用户不仅可以通过中转服务器发送给显示端的接口响应获知服务端的表现,还可以通过实际的客户端获知客户端在接收到服务端的接口响应时的表现,因此,本发明实施例可以通过一种测试方式实现接口测试中对客户端和服务端双边稳定性的检测,大大提高了测试效率。附图说明[0017]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。[0018]图1为本发明实施例提供的接口测试系统的结构示意图;[0019]图2为本发明提供的接口测试的方法实施例一的流程示意图;[0020]图3为本发明提供的接口测试的方法实施例二的信令流程图;[0021]图4为本发明提供的接口测试的方法实施例三的信令流程图;[0022]图5为本发明提供的接口测试的方法实施例四的流程示意图;[0023]图6为本发明提供的接口测试的装置实施例一的结构示意图;[0024]图7为本发明提供的接口测试的装置实施例二的结构示意图。具体实施方式[0025]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。[0026]本发明实施例提供的接口测试的方法,可以适用于图1所示的接口测试系统。如图1所示,该接口测试系统包括客户端丨1、中转服务器12、服务端13、GUI界面或者显示端)14。其中,所述客户端可以为面向用户的应用软件,服务端为该应用软件的处理后台。可选的,上述客户端、服务端、中转服务器、GUI界面可以分别设置在不同的硬件设备上,例如,客户端可以集成在手机上,服务端可以集成在计算机上,中转服务器可以集成在另一个计算机上,GUI界面可以集成在一个显示端上;可选的,还可以是客户端和服务端集成在一个设备上,中转服务器和GUI界面可以集成在另一个设备上。本发明实施例对客户端、服务端、中转服务器和GUI界面所集成的硬件设备并不做限定,需要说明的是,凡是集成了本发明实施例中的客户端、服务端、中转服务器和GUI界面的设备,均属于本发明的保护范围。[0027]进一步地,上述中转服务器可以包括任务调度模块31、数据解析模块32、数据传输模块33、脚本录制模块34、自动化测试模块35和异常处理模块36。该中转服务器可以执行下述方法实施例,具体参见下述方法实施例的描述。[0028]其中,任务调度模块主要负责协调各用户通过GUI界面提交的任务,该任务可以是下述实施例中的参数修改请求,还可以是下述实施例中的自动化测试指令。该任务调度模块采用Celery来进行任务管理。例如,当用户一次性提交多个参数修改请求时,任务调度模块会自动有序收集任务队列,即对多个参数修改请求进行排序。中转服务器执行完一个参数修改请求,任务调度模块将自动激活下一个参数修改请求。通过任务调度处理,可保证中转服务器有序的执行任务,有效的减少在多任务处理方面的压力。[0029]在客户端和服务端通过TCP接口进行通信时,客户端和服务端之间通信的数据都是经过加密处理的,数据解析模块主要负责捕获它们之间通信的二进制数据流。可选的,该二进制数据流包含了客户端发送给服务端的接口请求和其他数据。可选的,该二进制数据流也可以包含服务端发送给客户端的接口响应和其他数据。当数据解析模块捕获到二进制数据流之后,基于客户端和服务端的通信协议(即客户端与服务端之间数据交互约定遵循的规则),将二进制流数据解析为中转服务器可识别处理的数据格式。由于加密的数据流结构较复杂,可选的,上述数据解析模块可以只关注数据流中的接口请求或者接口响应,只将接口请求或者接口响应对应的字节提取出来解析,其可以大大降低数据解析的难度。[0030]数据传输模块主要负责将数据解析模块得到的数据,按照用户通过GUI界面输入的参数修改请求修改后,将数据发送至客户端或者服务端。中转服务器在执行一个参数修改请求时,数据传输模块会按照该参数修改请求中的指定的参数修改值来修改所得到的数据,数据修改完成后,数据传输模块对其再次进行经加密处理后例如加密成客户端或者服务端可识别的格式),即可继续发送至客户端或者服务端。通过该模块可便捷的实现接口数据的增、删、改、查,从而实现指向性的修改测试。[0031]脚本录制模块和自动化测试模块密不可分,这两个模块主要涉及下述实施例中的自动化测试流程。脚本录制模块主要负责将客户端向服务端发送的接口请求按照发送时刻记录,每个录制的执行脚本可对应一个或者多个预期测试结果,该测试结果即服务端的接口响应。自动化测试模块则是将录制的执行脚本中的接口请求,按照该执行脚本中每个接口请求的发送时间间隔,向服务端发送接口请求,数据发送完之后中转服务器检查服务端发送的接口响应是否符合预期的接口响应,并给出服务端表现是否稳定的结论。[0032]异常处理模块主要负责捕获异常并及时上报。本系统内采用集成即时通信报警机器人的方式,当某模块运行异常时即可发送预设的报警提示给用户。异常处理模块可以自动跳过因用户提交任务信息有误而引起的异常,保证系统在发生此类异常时,用户提交的其他任务能照常执行。[0033]在执行下述实施例之前,中转服务器需要检测与客户端、服务端之间的连接是否正常,即;首先启动中转服务器,中转服务器检查自身与服务端连接是否正常;然后客户端连接中转服务器,中转服务器检查客户端是否能通过中转服务器与服务端之间正常通信。当确认客户端和服务端可以通过中转服务器正常通信后,执行下述方法实施例。[0034]现有技术中,在进行接口测试时往往需要用户修改模拟客户端的脚本中的局部代码逻辑,或者修改服务端的局部代码逻辑,对测试人员的代码能力具有一定的要求,测试适用范围小,且难度较大;并且,反复修改代码逻辑,可能会对项目带入新的安全隐患。进一步地,现有技术中通过接口测试来获知客户端和服务端的双边稳定性,往往需要采用两种不同的测试方法,测试效率较低。[0035]本发明实施例提供的接口测试的方法,旨在解决现有技术的如上技术问题。可选的,本发明实施例提供的接口测试的方法,可以用于客户端和服务端之间的TCP接口的测试。[0036]下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。[0037]图2为本发明提供的接口测试的方法实施例一的流程示意图。本实施例涉及的是通过在客户端和服务端之间设置中转服务器,用户仅需要向中转服务器输入参数修改请求,即可进行接口测试的具体过程。可选的,本发明实施例的执行主体可以为中转服务器,还可以为其他的处理设备。下述实施例以中转服务器为例来对整个技术方案进行说明。如图2所示,该方法包括如下步骤:[0038]S101;中转服务器在接收到用户输入的参数修改请求后,根据所述参数修改请求确定所述中转服务器待修改的参数,以及修改后的参数的接收方。[0039]其中,所述接收方包括所述客户端或者服务端,所述待修改的参数包括所述中转服务器从所述客户端获取的接口请求中的接口参数,或者,所述中转服务器从所述服务端获取的接口响应中的接口返回参数。[0040]具体的,结合上述图1所示的接口测试系统,用户可以通过GUI界面输入参数修改请求,然后该GUI界面会将该参数修改请求发送给中转服务器。可选的,用户还可以通过语音输入参数修改请求,例如,GUI界面上显示了语音控件,用户通过点击语音控件然后就可以将参数修改请求以语音的方式输入,本发明实施例对用户输入参数修改请求的方式不做限定。[0041]当中转服务器接口到参数修改请求后,根据该参数修改请求中的内容可以确定中转服务器待修改的参数,即确定中转服务器要修改哪一些参数,以及将这些参数修改为什么样的参数值。可选的,中转服务器还可以根据该参数修改请求获知修改后的参数的接收方,即中转服务器确定修改后的参数应该发送给上述接口测试系统中的哪一个对象。可选的,该参数修改请求中可以包括待修改的参数的标识和待修改的参数对应的修改值。可选的,上述修改后的参数的接收方可以包括客户端或者服务端,上述待修改的参数可以包括中转服务器从客户端获取的接口请求中的接口参数,或者,中转服务器从服务端获取的接口响应中的接口返回参数。[0042]S102:中转服务器根据所述参数修改请求修改所述待修改的参数,并将修改后的参数发送给所述接收方。[0043]具体的,当中转服务器确定了待修改的参数以及修改后的参数的接收方之后,中转服务器会根据上述参数修改请求的内容修改待修改的参数,并将修改后的参数发送给上述所确定的接收方。_[0044]可选的,中转服务器还可以将上述修改后的参数发送给显示端,从而使得显示端能够向用户显示该修改后的参数。可选的,该修改后的参数可以是修改后的接口请求中的接口参数,还可以是修改后的接口响应中的接口返回参数。[0045]可选的,中转服务器还可以将接收方的表现发送给显示端进行显示,该接收方的表现可以包括服务端的接口响应、客户端的表现中的至少一个。例如,若服务端的接口响应针对的是修改后的接口参数进行响应的,则中转服务器就会将接收到的接口响应发送给显示端,从而使得用户可以通过GUI界面获知服务端的表现是否稳定。再例如,若服务端的接口响应针对的是原始的接口请求中的接口参数进行响应的,中转服务器也会将从服务端接收的接口响应发送给显示端进行显示。再例如,若中转服务器对服务端的接口响应中的接口返回参数进行修改,则中转服务器会将修改后的接口返回参数发送给客户端和显示端,客户端针对修改后的接口返回参数会有相应的表现,中转服务器也会将客户端的表现发送给显示端进行显示,其中,所述客户端的表现可以是客户端对接收到不同的接口响应时,所执行的相应的功能表现、处理接口响应的时长、稳定性等等性能指标与参数,客户端的表现可以直接从客户端获取或间接从日志中获取等多种方式实现,此处不做限制。从而使得用户不仅可以通过客户端获知客户端的表现是否稳定,还可以通过GUI界面获知客户端的表现是否稳定。[0046]由上述描述可知,本发明实施例中,用户仅需要通过GUI界面输入参数修改请求即可,即只需要告知中转服务器修改什么类型的参数,以及将该类型的参数修改为什么值,中转服务器就可以基于用户输入的参数修改请求,辅助完成客户端和服务端之间的接口测试,从而实现客户端和服务端双边稳定性的判定。本方案无需用户修改客户端或者服务端的局部代码逻辑,降低了接口测试对测试人员的代码能力要求和测试难度,提高了接口测试的人员适用范围,也避免了现有技术中因反复修改代码逻辑对项目带来的安全隐患。另一方面,由上述技术方案的描述可知,本发明实施例中无需采用脚本模拟客户端和服务端通信,而是采用实际的客户端,用户不仅可以通过中转服务器发送给显示端的接收方的表现,获知服务端的表现是否稳定,还可以通过实际的客户端或者显示端显示的接收方的表现获知客户端在接收到服务端的接口响应时的表现是否稳定。因此,本发明实施例可以通过一种测试方式实现接口测试中对客户端和服务端双边稳定性的检测,大大提高了测试效率。[0047]图3为本发明提供的接口测试的方法实施例二的信令流程图。本实施例涉及的是待修改的参数为接口请求中的接口参数时,客户端和服务端通过中转服务器实现客户端和服务端的接口测试的具体过程。如图3所示,该方法包括如下步骤:[0048]S201:客户端向中转服务器发送接口请求,该接口请求中携带接口参数。[0049]可选的,接口参数可以为客户端传输消息的长度、传输消息的类型等。[0050]S202:中转服务器接收该接口请求,对从所述客户端获取的接口请求进行解析,得到所述接口参数。[0051]该步骤中,由于中转服务器预知客户端和服务端之间的通信协议,因此,中转服务器根据该通信协议解析客户端发送的接口请求,将其转换为自己可识别的处理格式,得到接口请求中的接口参数。可选的,该步骤可以是上述接口测试系统中的数据解析模块执行的。[0052]S203:中转服务器接收用户通过GUI界面输入的参数修改请求,根据参数修改请求中的待修改的参数的标识确定中转服务器待修改的参数为上述接口参数,以及,确定修改后的接口参数的接收方为服务端。[0053]具体的,用户可以通过GUI界面输入参数修改请求,然后该GUI界面将参数修改请求发送给中转服务器。该参数修改请求中携带待修改的参数的标识和待修改的参数对应的修改值,因此,中转服务器可以根据该参数修改请求获知待修改的参数为接口请求中的接口参数,以及确定修改后的接口参数的接收方为服务端,即中转服务器获知应该对接口请求中的接口参数进行修改,并且获知对这些接口参数做出怎样的修改,以及,知道将修改后的接口参数发送给服务端。[0054]另外,如上述所描述的,中转服务器均是先监听客户端的接口请求,当监听到需要修改的目标接口请求时才会执行参数修改。[0055]S204:中转服务器根据所述待修改的参数的修改值,修改所述接口参数,并将修改后的接口参数携带在新的接口请求中发送给所述服务端。[0056]该步骤中,之所以对客户端发送给服务端的接口请求中的接口参数进行修改,实际上是为了检测服务端在不同的接口参数下服务端的表现,从而确定服务端是否稳定。可选的,该服务端的表现可以包括:服务端崩溃、服务端发送正常的接口响应、服务端发送异常的接口响应即接口响应中的接口返回参数异常)中的任一个。[0057]可选的,该步骤可以是上述接口测试系统中的数据传输模块执行的。[0058]S205:服务端接收中转服务器发送的新的接口请求,并针对该新的接口请求,向中转服务器发送接口响应。[0059]该接口响应中携带接口返回参数。[0060]S206:中转服务器接收所述服务端发送的接口响应。[0061]可选的,当中转服务器接收到服务端的接口响应后,中转服务器可以将该接口响应发送给显示端进行显示,即在显示端的⑶I界面上显示,从而使得用户可以获知服务端的接口响应中的接口返回参数,进而确定服务端的表现是否稳定。[0062]可选的,当中转服务器接收到服务端的接口响应后,中转服务器还可以将接收到的接口响应发送给客户端,然后用户通过检测客户端的表现,获知客户端的稳定性。可选的,中转服务器还会将客户端的表现发送给显示端。即本实施例的方法无需采用脚本模拟客户端和服务端通信,而是采用实际的客户端,用户不仅可以通过中转服务器发送给显示端的接口响应获知服务端的表现,还可以通过实际的客户端或者显示端获知客户端在接收到服务端的接口响应时的表现,因此,本发明实施例可以通过一种测试方式实现接口测试中对客户端和服务端双边稳定性的检测,大大提高了测试效率。[0063]需要说明的是,当用户在GUI界面上输入多个参数修改请求时,中转服务器会对多个参数修改请求进行排序,确定每个参数修改请求的执行顺序,然后按照每个参数修改请求的执行顺序,执行参数修改请求对应的进程,该进程即就是本发明实施例中的S201至S206的过程,或者,也可以是下述实施例中的S301至S306的过程。中转服务器会对多个参数修改请求进行排序的操作可以是上述接口测试系统的任务调度模块执行的。通过该任务调度处理,可保证中转服务器有序的执行任务,有效的减少在多任务处理方面的压力[0064]本发明实施例提供的接口测试的方法,当中转服务器接收到客户端发送的接口请求时,中转服务器根据用户输入的参数修改请求,确定待修改的参数为接口请求中的接口参数,以及确定出修改后的接口参数的接收方为服务端,因此,中转服务器通过该参数修改请求修改接口参数,并将修改后的接口参数发送给服务端,从而接收服务端针对修改后的接口参数发送的接口响应,可选的,中转服务器可以将该接口响应发送给显示端进行显示,使得用户可以通过显示端的GUI界面直观的获知服务端的表现,还可以将接口响应发送给实际的客户端或者还可以将客户端针对该接口响应做出的表现法发送给显示端,用户可以通过实际的客户端或者显示端的GUI界面检查客户端的表现,确定客户端的稳定性。即,本实施例的方法无需采用脚本模拟客户端和服务端通信,而是采用实际的客户端,用户不仅可以通过中转服务器发送给显示端的接口响应获知服务端的表现,还可以通过实际的客户端获知客户端在接收到服务端的接口响应时的表现,因此,本发明实施例可以通过一种测试方式实现接口测试中对客户端和服务端双边稳定性的检测,大大提高了测试效率。进一步地,本发明实施例无需用户修改客户端或者服务端的局部代码逻辑,用户仅需要通过GUI界面输入参数修改请求即可,即只需要告知中转服务器修改什么类型的参数,以及将该类型的参数修改为什么值,中转服务器就可以基于用户输入的参数修改请求,辅助完成客户端和服务端之间的接口测试,其降低了接口测试对测试人员的代码能力要求和测试难度,提高了接口测试的人员适用范围,也避免了现有技术中因反复修改代码逻辑对项目带来的安全隐患。[0065]图4为本发明提供的接口测试的方法实施例三的信令流程图。本实施例涉及的是待修改的参数为接口响应中的接口返回参数时,客户端和服务端通过中转服务器实现客户端和服务端的接口测试的具体过程。如图4所示,该方法包括如下步骤:[0066]S301:客户端向中转服务器发送接口请求,该接口请求中携带接口参数。[0067]S302:中转服务器接收该接口请求,对从所述客户端获取的接口请求进行解析,得到所述接口参数。[0068]上述S301和S302的具体过程可以参见上述S201和S202所述,在此不再赘述。[0069]可选的,该S302可以为可选的步骤,中转服务器在执行下述S303之后,可以确定不修改接口请求中的接口参数,因此,中转服务器可以无需执行解析动作,以节省中转服务器的处理开销。[0070]S303:中转服务器接收用户通过GUI界面输入的参数修改请求,根据参数修改请求中的待修改的参数的标识确定中转服务器待修改的参数为接口响应中的接口返回参数,以及,确定修改后的接口返回参数的接收方为客户端。[0071]具体的,用户可以通过GUI界面输入参数修改请求,然后该GUI界面可以将参数修改请求发送给中转服务器。该参数修改请求中携带待修改的参数的标识和待修改的参数对应的修改值,因此,中转服务器可以根据该参数修改请求获知待修改的参数为接口响应中的接口返回参数,以及确定修改后的接口返回参数的接收方为客户端,即中转服务器获知应该对接口响应中的接口返回参数进行修改,并且获知对这些接口返回参数做出怎样的修改,以及,知道将修改后的接口返回参数发送给客户端。[0072]S304:中转服务器将从所述客户端获取的接口请求,发送给所述服务端。[0073]S305:中转服务器接收所述服务端发送的接口响应,并根据所述待修改的参数的修改值,修改所述接口响应中的接口返回参数。[0074]具体的,当中转服务器接收到服务端发送的接口响应后,对该接口响应进行解析,得到接口响应中的接口返回参数,然后中转服务器根据上述S203所确定的结果对接口响应中的接口返回参数进行修改,得到修改后的接口返回参数。可选的,当中转服务器接收到服务端发送的接口响应后,还可以将该接口响应发送给显示端,使得用户可以通过显示端获知服务端的表现。[0075]该步骤中,之所以对服务端发送给客户端的接口响应中的接口返回参数进行修改,实际上是为了检测客户端在不同的接口返回参数下客户端的表现,从而确定客户端是否稳定。[0076]另外,如上述所描述的,中转服务器均是先监听客户端的接口请求和服务端的接口响应,当监听到需要修改的目标接口响应时才会执行参数修改。[0077]S306:中转服务器将修改后的接口返回参数携带在新的接口响应中发送给所述客户端。[0078]该步骤中,中转服务器可以将修改后的返回参数携带在新的接口响应中发送给客户端,可选的,中转服务器还可以将修改后的接口返回参数发送给显示端进行显示,可选的,中转服务器也会将客户端针对该修改后的接口返回参数做出的表现发送给显示端,从而使得用户可以通过实际的客户端或者显示端的GUI界面获知客户端的表现。[0079]可选的,当中转服务器识别出当前的参数修改请求异常时,中转服务器可以忽略当前的参数修改请求,执行下一条参数修改请求。该过程可以有上述接口测试系统中的异常处理模块来执行。该异常处理模块主要负责捕获异常并及时上报给用户。上述中转服务器内采用集成即时通信报警机器人的方式,当某模块运行异常时,也可以及时发送至指定的报警提示给用户。[0080]本发明实施例提供的接口测试的方法,当中转服务器接收到客户端发送的接口请求时,中转服务器根据用户输入的参数修改请求,确定待修改的参数为接口响应中的接口返回参数,以及确定出修改后的接口返回参数的接收方为客户端,因此,中转服务器将该接口请求发送给客户端,并在接收到服务端发送的接口响应后,修改接口响应中的接口返回参数,并将该修改后的接口返回参数发送给客户端和或显示端,可选的,中转服务器也会将客户端针对该修改后的接口返回参数做出的表现发送给显示端,从而使得用户可以通过实际的客户端或者显示端的GUI界面获知客户端的表现是否稳定,以及通过显示端的⑶I界面获知服务端的表现。即,本实施例的方法无需采用脚本模拟客户端和服务端通信,而是采用实际的客户端,用户不仅可以通过中转服务器发送给显示端的接口响应获知服务端的表现,还可以通过实际的客户端获知客户端在接收到服务端的接口响应时的表现,因此,本发明实施例可以通过一种测试方式实现接口测试中对客户端和服务端双边稳定性的检测,大大提高了测试效率。进一步地,本发明实施例无需用户修改客户端或者服务端的局部代码逻辑,用户仅需要通过GUI界面输入参数修改请求即可,即只需要告知中转服务器修改什么类型的参数,以及将该类型的参数修改为什么值,中转服务器就可以基于用户输入的参数修改请求,辅助完成客户端和服务端之间的接口测试,其降低了接口测试对测试人员的代码能力要求,提高了接口测试的人员适用范围和测试难度,也避免了现有技术中因反复修改代码逻辑对项目带来的安全隐患。[0081]图5为本发明提供的接口测试的方法实施例四的流程示意图。本实施例涉及的是针对上述图3所示实施例的自动化实现过程,g卩本实施例中,用户无需通过GUI界面输入参数修改请求,用户只需要通过GUI界面输入自动化测试指令,中转服务器即可完成接口测试。如图5所示,该方法包括如下步骤:[0082]S401:中转服务器根据预设的至少一个执行脚本中的接口请求的发送时间,向服务端发送接口请求;其中,所述执行脚本中包括至少一个客户端发送的接口请求。[0083]可选的,在S401之前,中转服务器会根据预设的接口请求关注规则,从客户端和服务端的通信数据中,获取至少一个执行脚本。该接口请求关注规则表征的是中转服务器所应关注的接口请求的标识,或者所应关注的接口请求的特征等。[0084]客户端和服务端在正常通信时,中转服务器只监听客户端发送给服务端的至少一个接口请求,不做接口参数的修改。但是,中转服务器可以根据预设的接口请求关注规则预知自己要根据监听到接口请求,录制哪一些执行脚本。在录制执行脚本时,中转服务器将客户端向服务端发送的接口请求按照发送时刻记录,一个预定义时长内的多个接口请求可以构成一个执行脚本。每一个执行脚本可以对应一个或者多个第一接口响应,一个执行脚本包括至少一个接口请求。例如,假设中转服务器根据预设的接口请求关注规则获知自己应该关注的接口请求5的变化。假设,客户端向服务端发送的第一个5s内的接口请求包括接口请求1、接口请求2、接口请求3、接口请求4和接口请求5该接口请求5中的接口参数A的值假设为X,第二个5s内的接口请求包括接口请求1、接口请求2、接口请求3、接口请求4和接口请求6该接口请求6中的接口参数也是接口参数A,该A的值假设为Y,即可以看作接口参数A由X变为Y。也就是说,中转服务器录制的每一个执行脚本中,中转服务器所关注的接口请求的接口参数的值在不同的执行脚本中,该接口参数的值不同。以上述接口请求5和接口请求6为例,这两个接口请求属于不同的执行脚本,其实际上就反映了同一个接口参数的不同的值。因此,中转服务器所录制的至少一个执行脚本,当中转服务器将每一个执行脚本中的接口请求发送给服务端时,相当于测试在不同的接口参数下,服务端的表现。因此,其也可以实现接口测试的目的。[0085]因此,中转服务器可以根据预先录制后的至少一个执行脚本中的接口请求的发送时间,向服务端发送接口请求。[0086]S402:中转服务器接收所述服务端发送的接口响应,并判断所述接收响应是否与预设的第一接口响应相同,得到判断结果;其中,所述第一接口响应为所述接口请求对应的预设响应。[0087]S403:中转服务器将所述判断结果发送给显示端。[0088]具体的,由于中转服务器中每一个执行脚本可以对应一个或者多个第一接口响应。因此,当中转服务器接收到服务端的接口响应后,判断该接口响应是否与预设的第一接口响应相同。若相同,则判断结果为服务端表现正常,若不同,则判断结果为服务端表现异常。用户可以通过中转服务器发送给显示端的判断结果直观的获知服务端的表现,从而确定服务端的稳定性,实现接口测试的目的。[0089]由上述描述可知,本实施例提供的接口测试的方法,通过自动化的实现过程,大大减少了重复的接口测试工作,并且,用户无需在GUI界面上输入参数修改请求,提高了测试效率。[0090]图6为本发明提供的接口测试的装置实施例一的结构示意图。该接口测试的装置可以集成在中转服务器上,其可以通过软件、硬件或者软硬件结合的方式实现。如图6所示,该装置包括:传输模块21、确定模块22和修改模块23;[0091]确定模块22,用于在所述传输模块21接收到用户输入的参数修改请求后,根据所述参数修改请求确定待修改的参数,以及修改后的参数的接收方;其中,所述接收方包括所述客户端或者服务端,所述待修改的参数包括所述传输模块21从所述客户端获取的接口请求中的接口参数,或者,所述传输模块21从所述服务端获取的接口响应中的接口返回参数;[0092]修改模块23,用于根据所述参数修改请求修改所述待修改的参数;[0093]传输模块21,用于将修改后的参数发送给所述接收方。[0094]可选的,所述传输模块21,还用于将所述修改后的参数以及所述接收方的表现发送给显示端;所述接收方的表现包括:所述服务端的接口响应、所述客户端的表现中的至少一个。[0095]可选的,所述参数修改请求中携带所述待修改的参数的标识和所述待修改的参数对应的修改值。[0096]可选的,本发明实施例中的传输模块21和修改模块23可以为上述图1所示的接口测试系统中的数据传输模块。可选的,上述确定模块22可以为对应上述图1所示的接口测试系统中的数据解析模块。[0097]本发明实施例提供的接口测试的装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。[0098]作为本发明的一种可能的实施方式,若所述待修改的参数的标识为所述接口请求中的接口参数的标识;所述确定模块22,具体用于根据所述待修改的参数的标识确定所述待修改的参数为所述接口参数,以及,确定所述修改后的接口参数的接收方为所述服务端。相应地,在图6所示实施例的基础上,参见图7所示,上述接口测试的装置还可以包括:解析模块24;[0099]所述解析模块24,用于对从所述客户端获取的接口请求进行解析,得到所述接口参数;[0100]所述修改模块23,具体用于根据所述待修改的参数的修改值,修改所述接口参数;[0101]所述传输模块21,具体用于将修改后的接口参数携带在新的接口请求中发送给所述服务端;以及,接收所述服务端发送的接口响应。[0102]可选的,所述传输模块21还可以用于将所述接口响应和所述修改后的接口参数发送给所述显示端进行显示,以及,将所述接口响应发送给所述客户端。[0103]可选的,该解析模块24和确定模块22可以相当于上述接口测试系统中的数据解析模块。[0104]作为本发明的另一种可能的实施方式,若所述待修改的参数的标识为所述接口响应中的接口返回参数的标识;所述确定模块22,具体用于根据所述待修改的参数的标识确定所述待修改的参数为所述接口响应中的接口返回参数,以及,确定所述修改后的接口返回参数的接收方为所述客户端。[0105]相应地,所述传输模块21,还用于将从所述客户端获取的接口请求,发送给所述服务端;以及,接收所述服务端发送的接口响应;[0106]所述修改模块23,具体用于根据所述待修改的参数的修改值,修改所述接口返回参数;[0107]所述传输模块21,还用于将修改后的接口返回参数携带在新的接口响应中发送给所述客户端。[0108]可选的,所述传输模块21,还可以用于将修改后的接口返回参数发送给显示端进行显示。[0109]可选的,继续参见上述图7,所述装置还包括:调度模块25;[0110]所述调度模块25,用于在所述传输模块21接收到用户输入的多个参数修改请求时,对多个参数修改请求进行排序,确定每个参数修改请求的执行顺序;以及,按照每个参数修改请求的执行顺序,执行所述参数修改请求对应的进程。[0111]可选的,继续参见上述图7,所述装置还包括:异常处理模块26;[0112]所述异常处理模块26,用于当识别出当前的参数修改请求异常时,忽略当前的参数修改请求,执行下一条参数修改请求。[0113]可选的,上述调度模块25可以对应上述图1所示的接口测试系统中的任务调度模块,异常处理模块26可以对应上述图1所示的接口测试系统中的异常处理模块。[01M]本发明实施例提供的接口测试的装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。[0115]在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。[0116]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。[0117]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。[0118]上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备可以是个人计算机,服务器,或者网络设备等或处理器英文:processor执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器英文:Read-OnlyMemory,简称:R0M、随机存取存储器(英文:Rand〇mAccessMemory,简称:RAM、磁碟或者光盘等各种可以存储程序代码的介质。[0119]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

权利要求:1.一种接口测试的方法,其特征在于,包括:在接收到用户输入的参数修改请求后,根据所述参数修改请求确定待修改的参数,以及修改后的参数的接收方;其中,所述接收方包括所述客户端或者服务端,所述待修改的参数包括从所述客户端获取的接口请求中的接口参数,或者,从所述服务端获取的接口响应中的接口返回参数;根据所述参数修改请求修改所述待修改的参数,并将修改后的参数发送给所述接收方。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:将所述修改后的参数以及所述接收方的表现发送给显示端;所述接收方的表现包括:所述服务端的接口响应、所述客户端的表现中的至少一个。3.根据权利要求1所述的方法,其特征在于,所述参数修改请求中携带所述待修改的参数的标识和所述待修改的参数对应的修改值。4.根据权利要求3所述的方法,其特征在于,若所述待修改的参数的标识为所述接口请求中的接口参数的标识;则所述根据所述参数修改请求确定待修改的参数,以及修改后的参数的接收方,具体包括:根据所述待修改的参数的标识确定所述待修改的参数为所述接口参数,以及,确定所述修改后的接口参数的接收方为所述服务端。5.根据权利要求4所述的方法,其特征在于,根据所述参数修改请求修改所述待修改的参数,并将修改后的参数发送给所述接收方,具体包括:对从所述客户端获取的接口请求进行解析,得到所述接口参数;根据所述待修改的参数的修改值,修改所述接口参数,并将修改后的接口参数携带在新的接口请求中发送给所述服务端;接收所述服务端发送的接口响应。6.根据权利要求3所述的方法,其特征在于,若所述待修改的参数的标识为所述接口响应中的接口返回参数的标识;则所述根据所述参数修改请求确定待修改的参数,以及修改后的参数的接收方,具体包括:根据所述待修改的参数的标识确定所述待修改的参数为所述接口响应中的接口返回参数,以及,确定所述修改后的接口返回参数的接收方为所述客户端。7.根据权利要求6所述的方法,其特征在于,根据所述参数修改请求修改所述待修改的参数,并将修改后的参数发送给所述接收方,具体包括:将从所述客户端获取的接口请求,发送给所述服务端;接收所述服务端发送的接口响应,并根据所述待修改的参数的修改值,修改所述接口响应中的接口返回参数;将修改后的接口返回参数携带在新的接口响应中发送给所述客户端。8.根据权利要求1-7任一项所述的方法,其特征在于,所述方法还包括:若接收到用户输入的多个参数修改请求,对多个参数修改请求进行排序,确定每个参数修改请求的执行顺序;按照每个参数修改请求的执行顺序,执行所述参数修改请求对应的进程。9.根据权利要求8所述的方法,其特征在于,所述方法还包括:当识别出当前的参数修改请求异常时,忽略当前的参数修改请求,执行下一条参数修改请求。10.—种接口测试的装置,其特征在于,包括:传输模块、确定模块和修改模块;确定模块,用于在所述传输模块接收到用户输入的参数修改请求后,根据所述参数修改请求确定待修改的参数,以及修改后的参数的接收方;其中,所述接收方包括所述客户端或者服务端,所述待修改的参数包括所述传输模块从所述客户端获取的接口请求中的接口参数,或者,所述传输模块从所述服务端获取的接口响应中的接口返回参数;修改模块,用于根据所述参数修改请求修改所述待修改的参数;传输模块,用于将修改后的参数发送给所述接收方。11.根据权利要求10所述的装置,其特征在于,所述传输模块,还用于将所述修改后的参数以及所述接收方的表现发送给显示端;所述接收方的表现包括:所述服务端的接口响应、所述客户端的表现中的至少一个。12.根据权利要求10所述的装置,其特征在于,所述参数修改请求中携带所述待修改的参数的标识和所述待修改的参数对应的修改值。13.根据权利要求12所述的装置,其特征在于,若所述待修改的参数的标识为所述接口请求中的接口参数的标识;所述确定模块,具体用于根据所述待修改的参数的标识确定所述待修改的参数为所述接口参数,以及,确定所述修改后的接口参数的接收方为所述服务端。14.根据权利要求13所述的装置,其特征在于,所述装置还包括:解析模块;所述解析模块,用于对从所述客户端获取的接口请求进行解析,得到所述接口参数;所述修改模块,具体用于根据所述待修改的参数的修改值,修改所述接口参数;所述传输模块,具体用于将修改后的接口参数携带在新的接口请求中发送给所述服务端;以及,接收所述服务端发送的接口响应。15.根据权利要求12所述的装置,其特征在于,若所述待修改的参数的标识为所述接口响应中的接口返回参数的标识;所述确定模块,具体用于根据所述待修改的参数的标识确定所述待修改的参数为所述接口响应中的接口返回参数,以及,确定所述修改后的接口返回参数的接收方为所述客户端。16.根据权利要求15所述的装置,其特征在于,所述传输模块,还用于将从所述客户端获取的接口请求,发送给所述服务端;以及,接收所述服务端发送的接口响应;所述修改模块,具体用于根据所述待修改的参数的修改值,修改所述接口响应中的接口返回参数;所述传输模块,还用于将修改后的接口返回参数携带在新的接口响应中发送给所述客户端。17.根据权利要求11-16任一项所述的装置,其特征在于,所述装置还包括:调度模块;所述调度模块,用于在所述传输模块接收到用户输入的多个参数修改请求时,对多个参数修改请求进行排序,确定每个参数修改请求的执行顺序;以及,按照每个参数修改请求的执行顺序,执行所述参数修改请求对应的进程。18.根据权利要求17所述的装置,其特征在于,所述装置还包括:异常处理模块;所述异常处理模块,用于当识别出当前的参数修改请求异常时,忽略当前的参数修改请求,执行下一条参数修改请求。19.一种接口测试系统,其特征在于,包括:客户端、服务端、中转服务器和显示端;所述中转服务器,用于执行前述权利要求1至权利要求9任一项所述的方法。

百度查询: 网易(杭州)网络有限公司 接口测试的方法、装置和系统

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。