CN114070763B - 基于改进的rest协议的测试方法、客户端、服务器及介质 - Google Patents

基于改进的rest协议的测试方法、客户端、服务器及介质 Download PDF

Info

Publication number
CN114070763B
CN114070763B CN202010746418.2A CN202010746418A CN114070763B CN 114070763 B CN114070763 B CN 114070763B CN 202010746418 A CN202010746418 A CN 202010746418A CN 114070763 B CN114070763 B CN 114070763B
Authority
CN
China
Prior art keywords
rest
server
client
response
test method
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
CN202010746418.2A
Other languages
English (en)
Other versions
CN114070763A (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.)
Futaihua Industry Shenzhen Co Ltd
Hon Hai Precision Industry Co Ltd
Original Assignee
Futaihua Industry Shenzhen Co Ltd
Hon Hai Precision Industry 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 Futaihua Industry Shenzhen Co Ltd, Hon Hai Precision Industry Co Ltd filed Critical Futaihua Industry Shenzhen Co Ltd
Priority to CN202010746418.2A priority Critical patent/CN114070763B/zh
Priority to US17/387,958 priority patent/US20220035731A1/en
Publication of CN114070763A publication Critical patent/CN114070763A/zh
Application granted granted Critical
Publication of CN114070763B publication Critical patent/CN114070763B/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • 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/3692Test management for test results analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/26Special purpose or proprietary protocols or architectures

Abstract

本发明提供一种基于改进的REST协议的测试方法、客户端、服务器及介质。该方法包括:响应于接收到的测试任务,向所述服务器发送JSON格式的REST控制请求;接收所述服务器根据所述REST控制请求反馈的REST响应;从所述REST响应中获取状态代码,并根据所述状态代码确定响应方式。本发明能够基于改进的REST协议实现客户端与服务器间的测试,容易升级,且支持多种协议,同时降低了系统的复杂性,数据灵活且不易出错。

Description

基于改进的REST协议的测试方法、客户端、服务器及介质
技术领域
本发明涉及测试技术领域,尤其涉及一种基于改进的REST协议的测试方法、客户端、服务器及介质。
背景技术
现有技术方案中,在进行客户端与服务器间的测试时,通常采用RPC协议(RemoteProcedure Call Protocol,远程调用协议)。
而采用RPC协议进行测试,由于系统和编程语言都较为复杂,升级成本较高,且不容易调试,服务器最初也无法向客户端发送信息,且在出现错误警报时不容易回溯,例如,在出现超时状态时,可能是服务器正在获取请求,但是由于执行失败而没有响应,也可能是由于网络错误或其他故障而丢失请求,客户端无法直接确定错误的原因,此时,客户端需要针对每个RPC超时一次又一次地重试,不仅会导致冗余代码,还降低了测试性能。
发明内容
鉴于以上内容,有必要提供一种基于改进的REST协议的测试方法、客户端、服务器及介质,能够基于改进的REST协议实现客户端与服务器间的测试,容易升级,且支持多种协议,同时降低了系统的复杂性,数据灵活且不易出错。
一种基于改进的REST协议的测试方法,应用于客户端,所述客户端与服务器相通信,所述基于改进的REST协议的测试方法包括:
响应于接收到的测试任务,向所述服务器发送JSON格式的REST控制请求;
接收所述服务器根据所述REST控制请求反馈的REST响应;
从所述REST响应中获取状态代码,并根据所述状态代码确定响应方式。
根据本发明优选实施例,所述REST控制请求及所述REST响应以C语言或者C++或者Python语言进行编译。
根据本发明优选实施例,所述根据所述状态代码确定响应方式包括:
确定所述状态代码的首位字符;
确定与所述首位字符对应的响应状态;
当所述响应状态为客户端错误或者服务器错误时,检测所述测试任务的当前错误类型,否则,继续向所述服务器发送所述JSON格式的REST控制请求。
根据本发明优选实施例,所述检测所述测试任务的当前错误类型包括:
获取预先配置的HTTP状态代码列表,所述HTTP状态代码列表中存储着代码与错误类型的对应关系;
将所述状态代码与所述HTTP状态代码列表中的代码进行匹配;
将匹配的代码对应的错误类型确定为所述测试任务的当前错误类型。
根据本发明优选实施例,所述基于改进的REST协议的测试方法还包括:
获取规范的HTTP状态代码及对应的错误类型;
获取自定义的状态代码及指定的错误类型;
根据获取的所有代码及对应的错误类型配置所述HTTP状态代码列表。
根据本发明优选实施例,所述基于改进的REST协议的测试方法还包括:
响应于所述REST响应收敛,停止测试。
一种基于改进的REST协议的测试方法,应用于服务器,所述服务器与客户端相通信,所述基于改进的REST协议的测试方法包括:
响应于所述客户端发送的JSON格式的REST控制请求,从所述REST控制请求中获取呼叫标识;
匹配与所述呼叫标识对应的服务器代码,并执行所述服务器代码,得到状态代码及结果数据;
以所述状态代码及所述结果数据作为REST响应,并将所述REST响应反馈至所述客户端。
一种基于改进的REST协议的测试装置,运行于客户端,所述客户端与服务器相通信,所述基于改进的REST协议的测试装置包括:
发送单元,用于响应于接收到的测试任务,向所述服务器发送JSON格式的REST控制请求;
接收单元,用于接收所述服务器根据所述REST控制请求反馈的REST响应;
响应单元,用于从所述REST响应中获取状态代码,并根据所述状态代码确定响应方式。
根据本发明优选实施例,所述REST控制请求及所述REST响应以C语言或者C++或者Python语言进行编译。
根据本发明优选实施例,所述响应单元具体用于:
确定所述状态代码的首位字符;
确定与所述首位字符对应的响应状态;
当所述响应状态为客户端错误或者服务器错误时,检测所述测试任务的当前错误类型,否则,继续向所述服务器发送所述JSON格式的REST控制请求。
根据本发明优选实施例,所述响应单元检测所述测试任务的当前错误类型包括:
获取预先配置的HTTP状态代码列表,所述HTTP状态代码列表中存储着代码与错误类型的对应关系;
将所述状态代码与所述HTTP状态代码列表中的代码进行匹配;
将匹配的代码对应的错误类型确定为所述测试任务的当前错误类型。
根据本发明优选实施例,所述基于改进的REST协议的测试装置还包括:
获取单元,用于获取规范的HTTP状态代码及对应的错误类型;
所述获取单元,还用于获取自定义的状态代码及指定的错误类型;
配置单元,用于根据获取的所有代码及对应的错误类型配置所述HTTP状态代码列表。
根据本发明优选实施例,所述基于改进的REST协议的测试装置还包括:
测试单元,用于响应于所述REST响应收敛,停止测试。
一种基于改进的REST协议的测试系统,运行于服务器,所述服务器与客户端相通信,所述基于改进的REST协议的测试系统包括:
获取模块,用于响应于所述客户端发送的JSON格式的REST控制请求,从所述REST控制请求中获取呼叫标识;
执行模块,用于匹配与所述呼叫标识对应的服务器代码,并执行所述服务器代码,得到状态代码及结果数据;
反馈模块,用于以所述状态代码及所述结果数据作为REST响应,并将所述REST响应反馈至所述客户端。
一种客户端,所述客户端包括:
存储器,存储至少一个指令;及
处理器,执行所述存储器中存储的指令以实现所述基于改进的REST协议的测试方法。
一种服务器,所述服务器包括:
存储设备,存储至少一个指令;及
处理设备,执行所述存储设备中存储的指令以实现所述基于改进的REST协议的测试方法。
一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被执行以实现所述基于改进的REST协议的测试方法。
由以上技术方案可以看出,本发明能够基于改进的REST协议实现客户端与服务器间的测试,容易升级,且支持多种协议,同时降低了系统的复杂性,数据灵活且不易出错。
附图说明
图1是本发明基于改进的REST协议的测试方法的较佳实施例的流程图。
图2是本发明基于改进的REST协议的测试方法的另一较佳实施例的流程图。
图3是本发明基于改进的REST协议的测试装置的较佳实施例的功能模块图。
图4是本发明基于改进的REST协议的测试系统的较佳实施例的功能模块图。
图5是本发明实现基于改进的REST协议的测试方法的较佳实施例的客户端的结构示意图。
图6是本发明实现基于改进的REST协议的测试方法的较佳实施例的服务器的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
如图1所示,是本发明基于改进的REST协议的测试方法的较佳实施例的流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
所述基于改进的REST协议的测试方法应用于一个或者多个客户端中,所述客户端是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(DigitalSignal Processor,DSP)、嵌入式设备等。
所述客户端可以是任何一种可与用户进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(Personal Digital Assistant,PDA)、游戏机、交互式网络电视(Internet Protocol Television,IPTV)、智能式穿戴式设备等。
所述客户端还可以包括网络设备和/或用户设备。其中,所述网络设备包括,但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量主机或网络服务器构成的云。
所述客户端所处的网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用网络(Virtual Private Network,VPN)等。
在一个实施例中,所述客户端与服务器相通信。
S10,响应于接收到的测试任务,向所述服务器发送JSON(JavaScript ObjectNotation,JS对象简谱)格式的REST(Representational State Transfer,表述性状态传递)控制请求。
在传统的REST协议中,控制请求是基于文本格式的,属于隐式数据类型转换,出错率较高。
因此,本案中的REST控制请求采用了JSON格式,如RFC 7159,由于在发送数据前先进行了数据的检测,能够有效降低出错率。
在本实施例中,在所述控制请求的报文中,包括REST有效负载、呼叫标识及执行测试的相关数据。
并且,所述REST有效负载、所述呼叫标识及所述执行测试的相关数据都采用JSON格式。
S11,接收所述服务器根据所述REST控制请求反馈的REST响应。
其中,所述REST控制请求及所述REST响应以C语言或者C++或者Python语言进行编译。
通过上述实施方式,使所述客户端与所述服务器间的参数均可变,灵活性更高。
S12,从所述REST响应中获取状态代码,并根据所述状态代码确定响应方式。
在本发明的至少一个实施例中,所述根据所述状态代码确定响应方式包括:
确定所述状态代码的首位字符;
确定与所述首位字符对应的响应状态;
当所述响应状态为客户端错误或者服务器错误时,检测所述测试任务的当前错误类型,否则,继续向所述服务器发送所述JSON格式的REST控制请求。
例如:根据配置,当所述首位字符为1时,表示消息;当所述首位字符为2时,表示成功;当所述首位字符为3时,表示重定向;当所述首位字符为4时,表示客户端错误;当所述首位字符为5时,表示服务器错误。
其中,消息代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。这些状态码代表的响应都是信息性的,标示客户应该采取的其他行动;
成功代表请求已成功被服务器接收、理解、并接受;
重定向代表需要客户端采取进一步的操作才能完成请求。通常,这些状态码用来重定向;
客户端错误代表客户端看起来可能发生了错误,妨碍了服务器的处理;
服务器错误代表服务器无法完成明显有效的请求。这类状态码代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。
进一步地,所述检测所述测试任务的当前错误类型包括:
获取预先配置的HTTP状态代码列表,所述HTTP状态代码列表中存储着代码与错误类型的对应关系;
将所述状态代码与所述HTTP状态代码列表中的代码进行匹配;
将匹配的代码对应的错误类型确定为所述测试任务的当前错误类型。
例如:400表示错误的要求,502表示错误的网关等。
通过上述实施方式,能够直接确定错误类型,便于对错误原因进行定位并尽快解决问题,提升了系统的健壮性。
在本发明的至少一个实施例中,所述基于改进的REST协议的测试方法还包括:
获取规范的HTTP状态代码及对应的错误类型;
获取自定义的状态代码及指定的错误类型;
根据获取的所有代码及对应的错误类型配置所述HTTP状态代码列表。
通过上述实施方式,结合了通用的HTTP状态代码以及用户自定义的状态代码配置所述HTTP状态代码列表,使所述HTTP状态代码列表中数据的覆盖更加全面,足以满足测试需求。
在本发明的至少一个实施例中,所述基于改进的REST协议的测试方法还包括:
响应于所述REST响应收敛,停止测试。
通过上述实施方式,能够在测试结果趋向收敛时停止测试,避免造成时间的浪费。
由以上技术方案可以看出,本发明能够响应于接收到的测试任务,向所述服务器发送JSON格式的REST控制请求,并接收所述服务器根据所述REST控制请求反馈的REST响应,进一步从所述REST响应中获取状态代码,并根据所述状态代码确定响应方式,以实现基于改进的REST协议实现客户端与服务器间的测试,容易升级,且支持多种协议,同时降低了系统的复杂性,数据灵活且不易出错。
如图2所示,是本发明基于改进的REST协议的测试方法的另一较佳实施例的流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
所述基于改进的REST协议的测试方法应用于一个或者多个服务器中,所述服务器是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(DigitalSignal Processor,DSP)、嵌入式设备等。
所述服务器可以是任何一种可与用户进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(Personal Digital Assistant,PDA)、游戏机、交互式网络电视(Internet Protocol Television,IPTV)、智能式穿戴式设备等。
所述服务器还可以包括网络设备和/或用户设备。其中,所述网络设备包括,但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量主机或网络服务器构成的云。
所述服务器所处的网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用网络(Virtual Private Network,VPN)等。
在一个实施例中,所述服务器与客户端相通信。
S20,响应于所述客户端发送的JSON格式的REST控制请求,从所述REST控制请求中获取呼叫标识。
在传统的REST协议中,控制请求是基于文本格式的,属于隐式数据类型转换,出错率较高。
因此,本案中的REST控制请求采用了JSON格式,如RFC 7159,由于在发送数据前先进行了数据的检测,能够有效降低出错率。
在本实施例中,在所述控制请求的报文中,包括REST有效负载、呼叫标识及执行测试的相关数据。
并且,所述REST有效负载、所述呼叫标识及所述执行测试的相关数据都采用JSON格式。
S21,匹配与所述呼叫标识对应的服务器代码,并执行所述服务器代码,得到状态代码及结果数据。
S22,以所述状态代码及所述结果数据作为REST响应,并将所述REST响应反馈至所述客户端。
其中,所述REST控制请求及所述REST响应以C语言或者C++或者Python语言进行编译。
通过上述实施方式,使所述客户端与所述服务器间的参数均可变,灵活性更高。
由以上技术方案可以看出,本发明能够响应于所述客户端发送的JSON格式的REST控制请求,从所述REST控制请求中获取呼叫标识,并匹配与所述呼叫标识对应的服务器代码,并执行所述服务器代码,得到状态代码及结果数据,进一步以所述状态代码及所述结果数据作为REST响应,并将所述REST响应反馈至所述客户端,以实现基于改进的REST协议实现客户端与服务器间的测试,容易升级,且支持多种协议,同时降低了系统的复杂性,数据灵活且不易出错。
如图3所示,是本发明基于改进的REST协议的测试装置的较佳实施例的功能模块图。所述基于改进的REST协议的测试装置11包括发送单元110、接收单元111、响应单元112、获取单元113、配置单元114、测试单元115。本发明所称的模块/单元是指一种能够被处理器13所执行,并且能够完成固定功能的一系列计算机程序段,其存储在存储器12中。在本实施例中,关于各模块/单元的功能将在后续的实施例中详述。
响应于接收到的测试任务,发送单元110向服务器发送JSON(JavaScript ObjectNotation,JS对象简谱)格式的REST(Representational State Transfer,表述性状态传递)控制请求。
在传统的REST协议中,控制请求是基于文本格式的,属于隐式数据类型转换,出错率较高。
因此,本案中的REST控制请求采用了JSON格式,如RFC 7159,由于在发送数据前先进行了数据的检测,能够有效降低出错率。
在本实施例中,在所述控制请求的报文中,包括REST有效负载、呼叫标识及执行测试的相关数据。
并且,所述REST有效负载、所述呼叫标识及所述执行测试的相关数据都采用JSON格式。
接收单元111接收所述服务器根据所述REST控制请求反馈的REST响应。
其中,所述REST控制请求及所述REST响应以C语言或者C++或者Python语言进行编译。
通过上述实施方式,使客户端与所述服务器间的参数均可变,灵活性更高。
响应单元112从所述REST响应中获取状态代码,并根据所述状态代码确定响应方式。
在本发明的至少一个实施例中,所述响应单元112根据所述状态代码确定响应方式包括:
确定所述状态代码的首位字符;
确定与所述首位字符对应的响应状态;
当所述响应状态为客户端错误或者服务器错误时,检测所述测试任务的当前错误类型,否则,继续向所述服务器发送所述JSON格式的REST控制请求。
例如:根据配置,当所述首位字符为1时,表示消息;当所述首位字符为2时,表示成功;当所述首位字符为3时,表示重定向;当所述首位字符为4时,表示客户端错误;当所述首位字符为5时,表示服务器错误。
其中,消息代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。这些状态码代表的响应都是信息性的,标示客户应该采取的其他行动;
成功代表请求已成功被服务器接收、理解、并接受;
重定向代表需要客户端采取进一步的操作才能完成请求。通常,这些状态码用来重定向;
客户端错误代表客户端看起来可能发生了错误,妨碍了服务器的处理;
服务器错误代表服务器无法完成明显有效的请求。这类状态码代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。
进一步地,所述响应单元112检测所述测试任务的当前错误类型包括:
获取预先配置的HTTP状态代码列表,所述HTTP状态代码列表中存储着代码与错误类型的对应关系;
将所述状态代码与所述HTTP状态代码列表中的代码进行匹配;
将匹配的代码对应的错误类型确定为所述测试任务的当前错误类型。
例如:400表示错误的要求,502表示错误的网关等。
通过上述实施方式,能够直接确定错误类型,便于对错误原因进行定位并尽快解决问题,提升了系统的健壮性。
在本发明的至少一个实施例中,获取单元113获取规范的HTTP状态代码及对应的错误类型,并获取自定义的状态代码及指定的错误类型;
配置单元114根据获取的所有代码及对应的错误类型配置所述HTTP状态代码列表。
通过上述实施方式,结合了通用的HTTP状态代码以及用户自定义的状态代码配置所述HTTP状态代码列表,使所述HTTP状态代码列表中数据的覆盖更加全面,足以满足测试需求。
在本发明的至少一个实施例中,响应于所述REST响应收敛,测试单元115停止测试。
通过上述实施方式,能够在测试结果趋向收敛时停止测试,避免造成时间的浪费。
由以上技术方案可以看出,本发明能够响应于接收到的测试任务,向所述服务器发送JSON格式的REST控制请求,并接收所述服务器根据所述REST控制请求反馈的REST响应,进一步从所述REST响应中获取状态代码,并根据所述状态代码确定响应方式,以实现基于改进的REST协议实现客户端与服务器间的测试,容易升级,且支持多种协议,同时降低了系统的复杂性,数据灵活且不易出错。
如图4所示,是本发明基于改进的REST协议的测试系统的较佳实施例的功能模块图。所述基于改进的REST协议的测试系统22包括获取模块220、执行模块221、反馈模块222。本发明所称的模块/单元是指一种能够被处理设备23所执行,并且能够完成固定功能的一系列计算机程序段,其存储在存储设备22中。在本实施例中,关于各模块/单元的功能将在后续的实施例中详述。
响应于所述客户端发送的JSON格式的REST控制请求,获取模块220从所述REST控制请求中获取呼叫标识。
在传统的REST协议中,控制请求是基于文本格式的,属于隐式数据类型转换,出错率较高。
因此,本案中的REST控制请求采用了JSON格式,如RFC 7159,由于在发送数据前先进行了数据的检测,能够有效降低出错率。
在本实施例中,在所述控制请求的报文中,包括REST有效负载、呼叫标识及执行测试的相关数据。
并且,所述REST有效负载、所述呼叫标识及所述执行测试的相关数据都采用JSON格式。
执行模块221匹配与所述呼叫标识对应的服务器代码,并执行所述服务器代码,得到状态代码及结果数据。
反馈模块222以所述状态代码及所述结果数据作为REST响应,并将所述REST响应反馈至所述客户端。
其中,所述REST控制请求及所述REST响应以C语言或者C++或者Python语言进行编译。
通过上述实施方式,使所述客户端与所述服务器间的参数均可变,灵活性更高。
由以上技术方案可以看出,本发明能够响应于所述客户端发送的JSON格式的REST控制请求,从所述REST控制请求中获取呼叫标识,并匹配与所述呼叫标识对应的服务器代码,并执行所述服务器代码,得到状态代码及结果数据,进一步以所述状态代码及所述结果数据作为REST响应,并将所述REST响应反馈至所述客户端,以实现基于改进的REST协议实现客户端与服务器间的测试,容易升级,且支持多种协议,同时降低了系统的复杂性,数据灵活且不易出错。
如图5所示,是本发明实现基于改进的REST协议的测试方法的较佳实施例的客户端的结构示意图。
所述客户端1可以包括存储器12、处理器13和总线,还可以包括存储在所述存储器12中并可在所述处理器13上运行的计算机程序,例如基于改进的REST协议的测试程序。
本领域技术人员可以理解,所述示意图仅仅是客户端1的示例,并不构成对客户端1的限定,所述客户端1既可以是总线型结构,也可以是星形结构,所述客户端1还可以包括比图示更多或更少的其他硬件或者软件,或者不同的部件布置,例如所述客户端1还可以包括输入输出设备、网络接入设备等。
需要说明的是,所述客户端1仅为举例,其他现有的或今后可能出现的电子产品如可适应于本发明,也应包含在本发明的保护范围以内,并以引用方式包含于此。
其中,存储器12至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器12在一些实施例中可以是客户端1的内部存储单元,例如该客户端1的移动硬盘。存储器12在另一些实施例中也可以是客户端1的外部存储设备,例如客户端1上配备的插接式移动硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(Secure Digital,SD)卡、闪存卡(Flash Card)等。进一步地,存储器12还可以既包括客户端1的内部存储单元也包括外部存储设备。存储器12不仅可以用于存储安装于客户端1的应用软件及各类数据,例如基于改进的REST协议的测试程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器13在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。处理器13是所述客户端1的控制核心(Control Unit),利用各种接口和线路连接整个客户端1的各个部件,通过运行或执行存储在所述存储器12内的程序或者模块(例如执行基于改进的REST协议的测试程序等),以及调用存储在所述存储器12内的数据,以执行客户端1的各种功能和处理数据。
所述处理器13执行所述客户端1的操作系统以及安装的各类应用程序。所述处理器13执行所述应用程序以实现上述各个基于改进的REST协议的测试方法实施例中的步骤,例如图1所示的步骤S10、S11、S12。
或者,所述处理器13执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能,例如:
响应于接收到的测试任务,向所述服务器发送JSON格式的REST控制请求;
接收所述服务器根据所述REST控制请求反馈的REST响应;
从所述REST响应中获取状态代码,并根据所述状态代码确定响应方式。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器12中,并由所述处理器13执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述客户端1中的执行过程。例如,所述计算机程序可以被分割成发送单元110、接收单元111、响应单元112、获取单元113、配置单元114、测试单元115。
上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、计算机设备,或者网络设备等)或处理器(processor)执行本发明各个实施例所述基于改进的REST协议的测试方法的部分。
所述客户端1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指示相关的硬件设备来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。
其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)。
总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,在图3中仅用一根箭头表示,但并不表示仅有一根总线或一种类型的总线。所述总线被设置为实现所述存储器12以及至少一个处理器13等之间的连接通信。
尽管未示出,所述客户端1还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器13逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述客户端1还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。
进一步地,所述客户端1还可以包括网络接口,可选地,所述网络接口可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该客户端1与其他客户端之间建立通信连接。
可选地,该客户端1还可以包括用户接口,用户接口可以是显示器(Display)、输入单元(比如键盘(Keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在客户端1中处理的信息以及用于显示可视化的用户界面。
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
图5仅示出了具有组件12-13的客户端1,本领域技术人员可以理解的是,图5示出的结构并不构成对所述客户端1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
如图6所示,是本发明实现基于改进的REST协议的测试方法的较佳实施例的服务器的结构示意图。
所述服务器2可以包括存储设备22、处理设备23和总线,还可以包括存储在所述存储设备22中并可在所述处理设备23上运行的计算机程序,例如基于改进的REST协议的测试程序。
本领域技术人员可以理解,所述示意图仅仅是服务器2的示例,并不构成对服务器2的限定,在此不赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

Claims (9)

1.一种基于改进的REST协议的测试方法,其特征在于,应用于客户端,所述客户端与服务器相通信,所述基于改进的REST协议的测试方法包括:
响应于接收到的测试任务,向所述服务器发送JSON格式的REST控制请求;
接收所述服务器根据所述REST控制请求反馈的REST响应,所述REST响应通过所述服务器执行服务器代码后得到,所述服务器代码为所述REST控制请求中的呼叫代码在所述服务器中对应的代码;
从所述REST响应中获取状态代码,并根据所述状态代码确定响应方式,包括:在所述状态代码对应的响应状态为客户端错误或者服务器错误时,检测所述测试任务的当前错误类型,包括:获取预先配置的HTTP状态代码列表,所述HTTP状态代码列表中存储着代码与错误类型的对应关系,将所述状态代码与所述HTTP状态代码列表中的代码进行匹配,将匹配的代码对应的错误类型确定为所述测试任务的当前错误类型。
2.如权利要求1所述的基于改进的REST协议的测试方法,其特征在于,所述REST控制请求及所述REST响应以C语言或者C++或者Python语言进行编译。
3.如权利要求1所述的基于改进的REST协议的测试方法,其特征在于,所述根据所述状态代码确定响应方式还包括:
确定所述状态代码的首位字符;
确定与所述首位字符对应的响应状态;
当所述响应状态不是所述客户端错误以及所述服务器错误时,继续向所述服务器发送所述JSON格式的REST控制请求。
4.如权利要求1所述的基于改进的REST协议的测试方法,其特征在于,所述基于改进的REST协议的测试方法还包括:
获取规范的HTTP状态代码及对应的错误类型;
获取自定义的状态代码及指定的错误类型;
根据获取的所有代码及对应的错误类型配置所述HTTP状态代码列表。
5.如权利要求1所述的基于改进的REST协议的测试方法,其特征在于,所述基于改进的REST协议的测试方法还包括:
响应于所述REST响应收敛,停止测试。
6.一种基于改进的REST协议的测试方法,其特征在于,应用于服务器,所述服务器与客户端相通信,所述基于改进的REST协议的测试方法包括:
响应于所述客户端发送的JSON格式的REST控制请求,从所述REST控制请求中获取呼叫标识;
匹配与所述呼叫标识对应的服务器代码,并执行所述服务器代码,得到状态代码及结果数据;
以所述状态代码及所述结果数据作为REST响应,并将所述REST响应反馈至所述客户端,所述状态代码用于在所述客户端或者所述服务器发生错误时,检测所述客户端接收到的测试任务的当前错误类型。
7.一种客户端,其特征在于,所述客户端包括:
存储器,存储至少一个指令;及
处理器,执行所述存储器中存储的指令以实现如权利要求1至5中任意一项所述的基于改进的REST协议的测试方法。
8.一种服务器,其特征在于,所述服务器包括:
存储设备,存储至少一个指令;及
处理设备,执行所述存储设备中存储的指令以实现如权利要求6所述的基于改进的REST协议的测试方法。
9.一种计算机可读存储介质,其特征在于:所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被执行以实现如权利要求1至5中任意一项所述的基于改进的REST协议的测试方法及/或如权利要求6所述的基于改进的REST协议的测试方法。
CN202010746418.2A 2020-07-29 2020-07-29 基于改进的rest协议的测试方法、客户端、服务器及介质 Active CN114070763B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010746418.2A CN114070763B (zh) 2020-07-29 2020-07-29 基于改进的rest协议的测试方法、客户端、服务器及介质
US17/387,958 US20220035731A1 (en) 2020-07-29 2021-07-28 Test method based on improved rest protocols and electronic device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010746418.2A CN114070763B (zh) 2020-07-29 2020-07-29 基于改进的rest协议的测试方法、客户端、服务器及介质

Publications (2)

Publication Number Publication Date
CN114070763A CN114070763A (zh) 2022-02-18
CN114070763B true CN114070763B (zh) 2023-09-26

Family

ID=80002982

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010746418.2A Active CN114070763B (zh) 2020-07-29 2020-07-29 基于改进的rest协议的测试方法、客户端、服务器及介质

Country Status (2)

Country Link
US (1) US20220035731A1 (zh)
CN (1) CN114070763B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115221041A (zh) * 2022-06-09 2022-10-21 广州汽车集团股份有限公司 多设备的测试方法、装置、电子设备及存储介质
CN117544960B (zh) * 2024-01-09 2024-03-19 中国人民解放军61660部队 一种基于生成的自动化Wi-Fi协议模糊测试方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030081835A (ko) * 2002-04-13 2003-10-22 삼성전자주식회사 무선통신시스템의 패킷 데이터 서비스 방법
JP2005196522A (ja) * 2004-01-08 2005-07-21 Nec Infrontia Corp 混雑状況管理装置、混雑状況管理システム、及び混雑状況管理装置用プログラム
WO2008094540A1 (en) * 2007-01-29 2008-08-07 Mashery, Inc. Methods for analyzing limiting, and enhancing access to an internet api, web service, and data
CN105228121A (zh) * 2014-06-27 2016-01-06 瞻博网络公司 使用rest式接口的订户管理
CN107544908A (zh) * 2017-09-14 2018-01-05 郑州云海信息技术有限公司 一种定位openstack集成测试框架执行报错方法
KR20180077839A (ko) * 2016-12-29 2018-07-09 주식회사 와이즈넛 대용량 비정형 데이터를 처리하는 rest api 서비스 제공 방법
CN110226095A (zh) * 2016-10-20 2019-09-10 Y软股份公司 嵌入式系统的通用自动化测试
CN110798376A (zh) * 2019-10-09 2020-02-14 苏宁云计算有限公司 接口测试方法、装置、计算机设备和存储介质
CN110908890A (zh) * 2018-09-18 2020-03-24 亿阳信通股份有限公司 一种接口的自动测试方法和装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6594697B1 (en) * 1999-05-20 2003-07-15 Microsoft Corporation Client system having error page analysis and replacement capabilities
US20060045019A1 (en) * 2004-09-01 2006-03-02 Patzschke Till I Network testing agent with integrated microkernel operating system
EP1873967B1 (en) * 2006-06-27 2010-03-31 Alcatel Lucent Method and network element for improving error management in managed networks, and computer program product therefor
US8266680B2 (en) * 2009-03-31 2012-09-11 Microsoft Corporation Predictive HTTP authentication mode negotiation
US8972489B2 (en) * 2011-11-15 2015-03-03 Google Inc. Providing a client interface for a server-based web application programming interface
US9942299B2 (en) * 2013-03-15 2018-04-10 Yottaa Inc. System and method for managing multiple variants of an HTTP object
US10827035B2 (en) * 2013-09-04 2020-11-03 Oracle International Corporation Data uniqued by canonical URL for rest application
US20150120729A1 (en) * 2013-10-25 2015-04-30 Nitro Mobile Solutions, LLC Web-based representational state transfer api server
US9600547B2 (en) * 2014-05-30 2017-03-21 International Business Machines Corporation System and method of consuming and integrating with rest-based cloud and enterprise services
US10652361B2 (en) * 2017-08-09 2020-05-12 Open Text Corporation Systems and methods for building and providing polymorphic REST services for heterogeneous repositories

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030081835A (ko) * 2002-04-13 2003-10-22 삼성전자주식회사 무선통신시스템의 패킷 데이터 서비스 방법
JP2005196522A (ja) * 2004-01-08 2005-07-21 Nec Infrontia Corp 混雑状況管理装置、混雑状況管理システム、及び混雑状況管理装置用プログラム
WO2008094540A1 (en) * 2007-01-29 2008-08-07 Mashery, Inc. Methods for analyzing limiting, and enhancing access to an internet api, web service, and data
CN105228121A (zh) * 2014-06-27 2016-01-06 瞻博网络公司 使用rest式接口的订户管理
CN110226095A (zh) * 2016-10-20 2019-09-10 Y软股份公司 嵌入式系统的通用自动化测试
KR20180077839A (ko) * 2016-12-29 2018-07-09 주식회사 와이즈넛 대용량 비정형 데이터를 처리하는 rest api 서비스 제공 방법
CN107544908A (zh) * 2017-09-14 2018-01-05 郑州云海信息技术有限公司 一种定位openstack集成测试框架执行报错方法
CN110908890A (zh) * 2018-09-18 2020-03-24 亿阳信通股份有限公司 一种接口的自动测试方法和装置
CN110798376A (zh) * 2019-10-09 2020-02-14 苏宁云计算有限公司 接口测试方法、装置、计算机设备和存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
An analytical solution to wellbore stability using Mogi-Coulomb failure criterion;Aditya Singh;K.Seshagiri Rao;Ramanathan Ayothiraman;;Journal of Rock Mechanics and Geotechnical Engineering(第06期);全文 *
双撑杆索穹顶施工成形和静力性能试验研究(英文);Ai-lin ZHANG;Chao SUN;Zi-qin JIANG;;Journal of Zhejiang University-Science A(Applied Physics & Engineering)(第03期);全文 *

Also Published As

Publication number Publication date
CN114070763A (zh) 2022-02-18
US20220035731A1 (en) 2022-02-03

Similar Documents

Publication Publication Date Title
CN108566290B (zh) 服务配置管理方法、系统、存储介质和服务器
CN109766082B (zh) 应用程序页面跳转的方法和装置
CN114070763B (zh) 基于改进的rest协议的测试方法、客户端、服务器及介质
US20190158626A1 (en) Method, apparatus and computer readable storage medium for processing service
US20190372804A1 (en) Method and apparatus for operating smart network interface card
CN112015663B (zh) 测试数据录制方法、装置、设备及介质
CN110825731B (zh) 数据存储方法、装置、电子设备及存储介质
CN108933695B (zh) 用于处理信息的方法和装置
CN113468049B (zh) 基于可配置化接口的测试方法、装置、设备及介质
US11457108B2 (en) Cloud integration to desktop-based emergency service applications
CN108900627B (zh) 一种网络请求方法、终端装置及存储介质
CN114201197A (zh) 固件升级方法、装置、电子设备及可读存储介质
CN113571162B (zh) 一种多用户协同操作医学影像的实现方法、装置及系统
CN110896362A (zh) 一种故障检测方法和装置
CN114116400A (zh) 基于日志打印的应用异常处理方法、装置、设备及介质
CN115951923B (zh) 订阅事件管理方法、显示系统、设备和存储介质
CN109688232B (zh) 一种镜像回溯方法、镜像回溯系统及代理服务器
CN112003723A (zh) Expander芯片的固件批量升级实现方法和系统
TWI755005B (zh) 基於改進的rest協議的測試方法、用戶端、伺服器及介質
CN115640084A (zh) 一种客户端的系统消息发送方法及装置
CN114553870B (zh) 基于分布式集群的数据处理方法及装置
CN111045823A (zh) 上下文数据的负载分发方法、装置、设备及存储介质
CN113839973B (zh) 通信连接方法、装置、设备及存储介质
CN114185502B (zh) 基于产线环境的日志打印方法、装置、设备及介质
CN111708684B (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