CN114356774A - 目标服务的测试方法、装置、设备及存储介质 - Google Patents
目标服务的测试方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114356774A CN114356774A CN202210015787.3A CN202210015787A CN114356774A CN 114356774 A CN114356774 A CN 114356774A CN 202210015787 A CN202210015787 A CN 202210015787A CN 114356774 A CN114356774 A CN 114356774A
- Authority
- CN
- China
- Prior art keywords
- calling
- target service
- entity
- parameter
- test
- 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
- 238000010998 test method Methods 0.000 title description 8
- 238000012360 testing method Methods 0.000 claims abstract description 169
- 238000000034 method Methods 0.000 claims abstract description 69
- 238000012795 verification Methods 0.000 claims description 25
- 230000004044 response Effects 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012546 transfer Methods 0.000 claims description 7
- 238000010276 construction Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 239000003795 chemical substances by application Substances 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 6
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 5
- 244000046052 Phaseolus vulgaris Species 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请提供的一种目标服务的测试方法、装置、设备及存储介质,首先接收源终端发送的测试请求,测试请求用于请求对分布式系统中的目标服务进行测试,测试请求中包括目标服务的调用参数;随后,根据调用参数,构建目标服务的调用实体,调用实体用于调用目标服务的待调用接口传输调用参数;然后,基于调用实体向服务端发送目标服务的调用请求。本申请提供的目标服务的测试方法,由于可以根据测试请求中包含的目标服务的调用参数,构建用于调用目标服务的待调用接口并传输调用参数的调用实体,从而可以直接对微服务进行本地测试,进而提高了对微服务系统的测试效率。
Description
技术领域
本发明涉及软件测试技术领域,尤其涉及一种目标服务的测试方法、装置、设备及存储介质。
背景技术
近几年,随着微服务的兴起,各互联网公司普遍采用微服务技术作为大型系统架构的解决方案。微服务的灵活性和高可用性使得业务部署更便捷,但引入微服务也提高了对系统架构设计、测试等方面的要求。其中,分布式环境下的本地测试是保证微服务系统正常运行的关键。
现有技术中,主要通过集成测试的方法来对微服务系统中各微服务之间的协作关系进行本地测试。例如,3个微服务之间存在微服务A调用微服务B、微服务B调用微服务C的调用关系。若微服务B需要上线,则需通过集成测试的方法检验从微服务B开始,到微服务C的调用是否正常。
然而,现有的微服务系统的测试方法中,只能测试多个微服务之间的协作关系是否正常,当多个微服务中的某个微服务出现问题时,无法直接该微服务进行本地测试,从而导致对微服务系统的测试效率低下。
发明内容
本申请提供一种目标服务的测试方法、装置、设备及存储介质,以解决现有技术中无法直接对微服务进行本地测试的技术问题。
第一方面,本申请提供一种目标服务的测试方法,应用于代理终端,所述方法包括:
接收源终端发送的测试请求,所述测试请求用于请求对分布式系统中的目标服务进行测试,所述测试请求中包括所述目标服务的调用参数;
根据所述调用参数,构建所述目标服务的调用实体,所述调用实体用于调用所述目标服务的待调用接口传输所述调用参数;
基于所述调用实体向服务端发送所述目标服务的调用请求。
一种可选的实施方式中,所述构建所述目标服务的调用实体,包括:
根据所述调用参数,确定所述目标服务的中间实体,所述中间实体用于获取所述目标服务对应的网络地址;
将所述中间实体转换为所述目标服务的调用实体。
一种可选的实施方式中,所述构建所述目标服务的调用实体,包括:
根据预设的校验规则对所述调用参数进行校验,确定所述调用参数对应的校验结果;
若所述调用参数对应的校验结果为成功,则构建所述目标服务的调用实体。
一种可选的实施方式中,在所述确定所述调用参数对应的校验结果之后,所述方法还包括:
若所述调用参数对应的校验结果为失败,则向所述源终端发送提示信息,所述提示信息用于指示所述调用参数对应的校验结果为失败的原因。
一种可选的实施方式中,在所述基于所述调用实体向服务端发送所述目标服务的调用请求之后,所述方法还包括:
接收服务端发送的所述目标服务的调用响应;
根据所述目标服务的调用响应,确定所述目标服务的测试结果,所述测试结果用于指示所述待调用接口是否调用成功及所述目标服务是否测试正常;
将所述目标服务的测试结果发送给源终端。
一种可选的实施方式中,所述调用参数包括:组别信息、版本信息、接口信息、路径信息。
一种可选的实施方式中,所述测试请求是基于超文本传输协议生成的。
第二方面,本申请提供一种目标服务的测试方法,应用于服务端,所述方法包括:
接收代理终端发送的目标服务的调用请求,所述调用请求是通过调用实体发送的,所述调用实体用于调用所述目标服务的待调用接口传输调用参数;
向所述代理终端发送所述目标服务的调用响应。
第三方面,本申请提供一种目标服务的测试装置,应用于代理终端,所述装置包括:
接收模块,用于接收源终端发送的测试请求,所述测试请求用于请求对分布式系统中的目标服务进行测试,所述测试请求中包括所述目标服务的调用参数;
构建模块,用于根据所述调用参数,构建所述目标服务的调用实体,所述调用实体用于调用所述目标服务的待调用接口传输所述调用参数;
发送模块,用于基于所述调用实体向服务端发送所述目标服务的调用请求。
一种可选的实施方式中,所述构建模块,具体用于根据所述调用参数,确定所述目标服务的中间实体,所述中间实体用于获取所述目标服务对应的网络地址;将所述中间实体转换为所述目标服务的调用实体。
一种可选的实施方式中,所述构建模块,具体用于根据预设的校验规则对所述调用参数进行校验,确定所述调用参数对应的校验结果;若所述调用参数对应的校验结果为成功,则构建所述目标服务的调用实体。
一种可选的实施方式中,所述构建模块,还用于若所述调用参数对应的校验结果为失败,则向所述源终端发送提示信息,所述提示信息用于指示所述调用参数对应的校验结果为失败的原因。
一种可选的实施方式中,所述发送模块,还用于接收服务端发送的所述目标服务的调用响应;根据所述目标服务的调用响应,确定所述目标服务的测试结果,所述测试结果用于指示所述待调用接口是否调用成功及所述目标服务是否测试正常;将所述目标服务的测试结果发送给源终端。
一种可选的实施方式中,所述调用参数包括:组别信息、版本信息、接口信息、路径信息。
一种可选的实施方式中,所述测试请求是基于超文本传输协议生成的。
第四方面,本申请提供一种目标服务的测试装置,应用于服务端,所述装置包括:
接收模块,用于接收代理终端发送的目标服务的调用请求,所述调用请求是通过调用实体发送的,所述调用实体用于调用所述目标服务的待调用接口传输调用参数;
发送模块,用于向所述代理终端发送所述目标服务的调用响应。
第五方面,本申请还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面任意一项所述的方法。
第六方面,本申请还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第二方面任意一项所述的方法。
第七方面,本发明还提供一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如第一方面任意一项所述的方法。
第八方面,本发明还提供一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如第二方面任意一项所述的方法。
第九方面,本申请还提供一种电子设备,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如第一方面任意一项所述的方法。
第十方面,本申请还提供一种电子设备,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如第二方面任意一项所述的方法。
本申请提供的一种目标服务的测试方法、装置、设备及存储介质,首先接收源终端发送的测试请求,测试请求用于请求对分布式系统中的目标服务进行测试,测试请求中包括目标服务的调用参数;随后,根据调用参数,构建目标服务的调用实体,调用实体用于调用目标服务的待调用接口传输调用参数;然后,基于调用实体向服务端发送目标服务的调用请求。本申请提供的目标服务的测试方法,由于可以根据测试请求中包含的目标服务的调用参数,构建用于调用目标服务的待调用接口并传输调用参数的调用实体,从而可以直接对微服务进行本地测试,进而提高了对微服务系统的测试效率。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例提供的一种目标服务的测试方法的应用场景示意图;
图2为本申请实施例提供的一种目标服务的测试方法的流程示意图;
图3为本申请实施例提供的一种目标服务的调用逻辑示意图;
图4为本申请实施例提供的另一种目标服务的测试方法的流程示意图;
图5为本申请实施例提供的一种目标服务的测试装置的结构示意图;
图6为本申请实施例提供的另一种目标服务的测试装置的结构示意图;
图7为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
微服务是面向服务的架构(Service-Oriented Architecture,SOA)的一种变体,提倡将单一应用程序划分成一组细粒度的服务,是一种松耦合的能够被独立开发和部署的无状态化服务。每种服务只做一件事,各服务之间互相协调、互相配合,从而为用户提供最终价值。
近几年,随着微服务的兴起,各互联网公司普遍采用微服务技术作为大型系统架构的解决方案。微服务的灵活性和高可用性使得业务部署更便捷,从而可以缩短交付周期。但是,引入微服务也提高了对系统架构设计、测试等方面的要求。其中,分布式环境下的本地测试是保证微服务系统正常运行的关键。
现有技术中,主要通过集成测试的方法来对微服务系统中各微服务之间的协作关系进行本地测试。例如,3个微服务之间存在微服务A调用微服务B、微服务B调用微服务C的调用关系。若微服务B需要上线,则需通过集成测试的方法检验从微服务B开始,到微服务C的调用是否正常。
然而,现有的微服务系统的测试方法中,只能测试多个微服务之间的协作关系,当多个微服务中的某个微服务出现问题时,无法直接该微服务进行本地测试,从而导致对微服务系统的测试效率低下。
为解决上述技术问题,本申请实施例提供一种目标服务的测试方法、装置、设备及存储介质。在本申请实施例中,通过构建调用实体的方式,调用目标服务的待调用接口并传输调用参数,从而可以直接对微服务进行本地测试,进而提高了对微服务系统的测试效率。
下面对于本申请涉及的目标服务的测试方法的应用场景进行说明。
图1为本申请实施例提供的一种目标服务的测试方法的应用场景示意图。如图1所示,包含源终端101、代理终端102及服务端103,服务端103包含应用A、应用B。其中,应用A对应服务A1、服务A2、服务A3;应用B对应服务B1、服务B2、服务B3。当需要对分布式系统中的目标服务A1进行测试时,源终端101可以将测试请求发送给代理终端102。代理终端102可以根据测试请求构建调用实体,并基于调用实体向服务端103发送目标服务A1的调用请求。服务端103可以根据接收到的调用请求,调用目标服务A1的待调用接口并传输调用参数,从而对目标服务A1进行测试,并将目标服务A1的调用响应发送给代理终端102。代理终端102可以根据调用响应确定目标服务A1的测试结果,并将目标服务A1的测试结果发送给源终端101。
应理解,源终端101可以包含一个终端设备,也可以包含多个终端设备。当源终端101包含一个终端设备时,该终端设备既可以向代理终端102发送目标服务的测试请求,也可以接收代理终端102发送的目标服务的测试结果。当源终端101包含多个终端设备时,可以是其中一部分终端设备用于向代理终端102发送目标服务的测试请求,另一部分终端设备用于接收代理终端102发送的目标服务的测试结果。
其中,上述源终端或代理终端包含的终端设备可以为手机(mobile phone)、平板电脑(pad)、带无线收发功能的电脑、虚拟现实(virtual reality,VR)终端设备、增强现实(augmented reality,AR)终端设备、无人驾驶(self driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、智慧家庭(smart home)中的无线终端等。本申请实施例中,用于实现终端的功能的装置可以是终端,也可以是能够支持终端实现该功能的装置,例如芯片系统,该装置可以被安装在终端中。本申请实施例中,芯片系统可以由芯片构成,也可以包括芯片和其它分立器件。
上述服务端包含的服务器可以是但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算的由大量计算机或网络服务器构成的云。
应理解,本申请技术方案的应用场景可以是图1中的目标服务的测试场景,但不限于此,还可以应用于其它需要对目标服务进行测试的场景中。
可以理解,上述目标服务的测试方法可以通过本申请实施例提供的目标服务的测试装置实现,目标服务的测试装置可以是某个设备的部分或全部,例如源终端设备、代理终端设备或服务器。
下面以集成或安装有相关执行代码的代理终端为例,以具体的实施例对本申请实施例的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图2为本申请实施例提供的一种目标服务的测试方法的流程示意图,本实施例涉及的是对目标服务进行测试过程。如图2所示,该方法包括:
S201、代理终端接收源终端发送的测试请求。
在本申请实施例中,代理终端可以接收源终端发送的测试请求,然后根据测试请求生成调用实体,根据调用实体对目标服务进行测试。
其中,测试请求用于请求对分布式系统中的目标服务进行测试。目标服务既可以是任意一个微服务,也可以是分布式系统中的其它服务,本申请实施例对此不做限制。测试请求中包括目标服务的调用参数,本申请实施例对于调用参数的具体内容也不做限制。在一些实施例中,目标服务的调用参数可以包括目标服务的组别信息、版本信息、接口信息、路径信息等。
其中,组别信息和版本信息可以根据目标服务所处的分布式系统的环境进行确定,分布式系统的环境可以包括开发(DEV)环境、测试(TEST)环境、生产(PROD)环境、联调(INT)环境等。示例性地,处于生产环境的目标服务A的版本(version)信息可以为“1.0.0”,组别(group)信息可以为“PROD”;处于联调环境的目标服务B的版本(version)信息可以为“1.0.0-int”,组别(group)信息可以为“INT”。接口信息可以根据目标服务的待调用接口进行确定。在一些实施例中,接口信息可以包括目标服务的待调用接口的全限定名、待调用接口的方法名、待调用接口的方法的参数值等。路径信息可以根据目标服务的待调用接口的方法进行确定。在一些实施例中,路径信息可以为待调用接口的方法对应的参数的类完整路径。
需要说明的是,服务器可以通过调用某个目标服务的接口对该目标服务进行测试。每个接口中包含至少一个方法,每个方法需要具体的参数值才能实现。因此,需要指定待调用接口中的方法的名称,并提供该方法对应的参数值及参数值的类完整路径,才能调用待调用接口,进而对目标服务进行测试。
本申请实施例对于测试请求的生成方式不做限制。在一些实施例中,测试请求可以基于通讯协议生成。示例性地,上述测试请求可以是基于超文本传输协议(Hyper TextTransfer Protocol,Http)生成的。例如,代理终端可以接收基于Http协议生成的Json格式的测试请求报文。
S202、代理终端根据调用参数,构建目标服务的调用实体。
在本步骤中,当接收源终端发送的测试请求后,代理终端可以根据调用参数,构建目标服务的调用实体。
其中,调用实体用于调用目标服务的待调用接口传输调用参数。本申请实施例对于调用实体的类型不做限制。在一些实施例中,上述调用实体可以包括泛化调用实体。本申请实施例对于代理终端如何构建目标服务的调用实体也不做限制。在一些实施例中,代理终端可以根据调用参数,确定目标服务的中间实体,再将中间实体转换为目标服务的调用实体。
本申请实施例对于代理终端如何确定目标服务的中间实体不做限制。在一些实施例中,代理终端可以根据通过测试请求解析到的调用参数,确定目标服务的中间实体。示例性地,代理终端可以根据目标服务的组别及版本号、待调用接口的全限定名等信息创建中间实体(例如HSFApiConsumerBean实体Bean)。
需要说明的是,中间实体可以用于获取目标服务对应的网络地址。本申请实施例对于中间实体如何获取目标服务对应的网络地址不做限制。在一些实施例中,中间实体可以通过地址配置中心获取目标服务对应的网络地址。示例性地,中间实体可以通过配置中心(ConfigServer)获取目标服务对应的互联网协议地址(Internet Protocol Address,IP)和端口号等网络地址。
本申请实施例对于如何将中间实体转换为目标服务的调用实体不做限制。在一些实施例中,代理终端可以通过转换工具,将中间实体转换为目标服务的调用实体。示例性地,代理终端可以通过转换工具(fastjson工具),将中间实体(例如HSFApiConsumerBean实体Bean)强制转换为目标服务的调用实体(例如GenericService实体Bean)。
在另一些实施例中,在构建目标服务的调用实体之前,代理终端还可以根据预设的校验规则,对调用参数进行校验,并确定调用参数对应的校验结果。在一些实施例中,预设的校验规则可以根据实际情况具体设置。示例性地,可以校验设置为“非空”必填的调用参数的信息是否存在,目标服务的组别、版本号信息是否对应当前分布式项目的配置等。
进一步地,当所有调用参数对应的校验结果均为成功后,代理终端可以构建目标服务的调用实体。否则,代理终端可以向源终端发送提示信息,提示信息用于指示调用参数对应的校验结果为失败的原因。例如,可以提示方法名或参数类路径不能为空、组别或版本号与实际项目不符等。
S203、代理终端基于调用实体向服务端发送目标服务的调用请求。
在本步骤中,当构建目标服务的调用实体后,代理终端可以用调用实体向服务端发送目标服务的调用请求。
在一些实施例中,在代理终端向服务端发送目标服务的调用请求之后,代理终端还可以接收服务端发送的目标服务的调用响应,然后根据目标服务的调用响应确定目标服务的测试结果,再将目标服务的测试结果发送给源终端。
其中,测试结果用于指示待调用接口是否调用成功及目标服务是否测试正常。可以理解,当待调用接口调用成功时,服务端对目标服务的测试结果可以分为测试正常和测试异常。当待调用接口调用失败时,服务端无法对目标服务进行测试,调用失败的原因包括因提供了错误的参数导致没有找到目标服务,或由于网络问题导致的调用超时等。
在另一些实施例中,源终端还可以将测试请求发送给代理终端,并接收代理终端发送的目标服务的测试结果。服务端还可以接收代理终端发送的目标服务的调用请求,并将目标服务的调用响应发送给代理终端。
在另一些实施例中,还可以通过开源框架(例如SpringBoot框架)及开源组件(例如Druid、Jdbc、Redis等),搭建分布式服务测试系统;并结合泛化调用技术,以实现本申请实施例中对分布式系统中的目标服务的测试方法。其中,SpringBoot框架的设计目的是为了简化新Spring应用的初始搭建及开发过程。SpringBoot框架具有能够创建独立Spring应用;无需部署Web存档(War)文件,直接嵌入Web容器(例如Tomcat、Jetty等);提供固化的“Start”依赖,简化构建配置;当条件满足时自动地装配Spring或第三方类库;提供运维特性,如指标信息、健康检查及外部化配置;绝无代码生成,并不需要Xml配置等特性。泛接口调用方式主要用于源终端或代理终端没有应用程序接口(Application ProgrammingInterface,API)及模型类元的情况。
通常,在测试或使用目标服务的过程中,服务消费者(consumer)端需要明确目标服务对应的接口定义、方法定义、入参返参类型等信息,服务提供者(provider)端需要暴露出目标服务对应的接口和方法,两端才能正常通信调用。在本申请实施例中,通过泛化调用技术,在只明确目标服务对应的接口全限定名、方法名、入参和返参的情况下,服务消费者端就可以调用服务提供者端的目标服务,而不需要详细的接口定义等其它信息,降低了服务消费者端和服务提供者端的通信调用具有很高的耦合性。其中,在测试目标服务时,服务消费者(consumer)端使用泛型接口(例如,GenericService等)及泛型方法(例如,$invoker等),通过“$invoke”方法将入参传入服务提供者(provider)端进行反射调用。图3为本申请实施例提供的一种目标服务的调用逻辑示意图。如图3所示,在服务调用方,需要通过第一过滤器301(例如,GenericImplFilter等)将代理终端发出的包含调用参数的对象序列化为字节序列,然后将该字节序列作为远程过程调用(Remote Procedure Call,Rpc)报文传递到服务提供方。传递到服务提供方后,服务端不能直接使用Rpc报文。服务端需要首先通过第二过滤器302(例如,GenericFilter等)将报文反序列化,包括从Rpc报文中提取调用参数、判断调用类型为泛化调用等,然后才能执行测试目标服务等操作。服务端向代理终端发送调用响应时,也需要经过反序列化、序列化步骤,才能将调用响应对应的参数传递给代理终端。
需要说明的是,目标服务的接口均为基于Hession协议实现的,由于通讯协议不一致,因此难以在本地对目标服务的接口发起直接调用。在本申请实施例中,基于超文本传输协议(Hyper Text Transfer Protocol,Http)和泛化调用技术,通过泛化调用目标服务的待调用接口,实现了对分布式系统中的远程目标服务的测试。解决了分布式环境下接口测试不方便的问题,提高了服务测试的全面性及开发人员的开发和测试效率。
本申请提供的一种目标服务的测试方法,首先接收源终端发送的测试请求,测试请求用于请求对分布式系统中的目标服务进行测试,测试请求中包括目标服务的调用参数;随后,根据调用参数,构建目标服务的调用实体,调用实体用于调用目标服务的待调用接口传输调用参数;然后,基于调用实体向服务端发送目标服务的调用请求。本申请提供的目标服务的测试方法,由于可以根据测试请求中包含的目标服务的调用参数,构建用于调用目标服务的待调用接口并传输调用参数的调用实体,从而可以直接对微服务进行本地测试,进而提高了对微服务系统的测试效率。
在上述实施例的基础上,下面对代理终端如何构建目标服务的调用实体进行说明。图4为本申请实施例提供的另一种目标服务的测试方法的流程示意图,如图4所示,该方法包括:
S401、源终端向代理终端发送测试请求。
S402、代理终端根据预设的校验规则对调用参数进行校验,判断调用参数对应的校验结果是否为成功。
若是,则执行步骤S404;否则,执行步骤S403。
S403、代理终端向源终端发送提示信息,提示信息用于指示调用参数对应的校验结果为失败的原因。
S404、代理终端根据调用参数,确定目标服务的中间实体。
S405、代理终端将中间实体转换为目标服务的调用实体。
S406、代理终端基于调用实体向服务端发送目标服务的调用请求。
S407、服务端向代理终端发送目标服务的调用响应。
S408、代理终端根据目标服务的调用响应,确定目标服务的测试结果。
S409、代理终端向源终端发送目标服务的测试结果。
S401-S409的技术名词、技术效果、技术特征,以及可选实施方式,可参照图2所示的S201-S203理解,对于重复的内容,在此不再累述。
本申请提供的一种目标服务的测试方法,首先接收源终端发送的测试请求,测试请求用于请求对分布式系统中的目标服务进行测试,测试请求中包括目标服务的调用参数;随后,根据调用参数,构建目标服务的调用实体,调用实体用于调用目标服务的待调用接口传输调用参数;然后,基于调用实体向服务端发送目标服务的调用请求。本申请提供的目标服务的测试方法,由于可以根据测试请求中包含的目标服务的调用参数,构建用于调用目标服务的待调用接口并传输调用参数的调用实体,从而可以直接对微服务进行本地测试,进而提高了对微服务系统的测试效率。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图5为本申请实施例提供的一种目标服务的测试装置的结构示意图。该目标服务的测试装置可以通过软件、硬件或者两者的结合实现,可例如上述实施例中的代理终端,以执行上述实施例中以代理终端为主体的目标服务的测试方法。如图5所示,该目标服务的测试装置500包括:
接收模块501,用于接收源终端发送的测试请求,测试请求用于请求对分布式系统中的目标服务进行测试,测试请求中包括目标服务的调用参数;
构建模块502,用于根据调用参数,构建目标服务的调用实体,调用实体用于调用目标服务的待调用接口传输调用参数;
发送模块503,用于基于调用实体向服务端发送目标服务的调用请求。
一种可选的实施方式中,构建模块502,具体用于根据调用参数,确定目标服务的中间实体,中间实体用于获取目标服务对应的网络地址;将中间实体转换为目标服务的调用实体。
一种可选的实施方式中,构建模块502,具体用于根据预设的校验规则对调用参数进行校验,确定调用参数对应的校验结果;若调用参数对应的校验结果为成功,则构建目标服务的调用实体。
一种可选的实施方式中,构建模块502,还用于若调用参数对应的校验结果为失败,则向源终端发送提示信息,提示信息用于指示调用参数对应的校验结果为失败的原因。
一种可选的实施方式中,发送模块503,还用于接收服务端发送的目标服务的调用响应;根据目标服务的调用响应,确定目标服务的测试结果,测试结果用于指示待调用接口是否调用成功及目标服务是否测试正常;将目标服务的测试结果发送给源终端。
一种可选的实施方式中,调用参数包括:组别信息、版本信息、接口信息、路径信息。
一种可选的实施方式中,测试请求是基于超文本传输协议生成的。
需要说明的,图5所示实施例提供的目标服务的测试装置,可用于执行上述实施例所提供的以代理终端为主体的目标服务的测试方法,具体实现方式和技术效果类似,这里不再进行赘述。
图6为本申请实施例提供的另一种目标服务的测试装置的结构示意图。该目标服务的测试装置可以通过软件、硬件或者两者的结合实现,可例如上述实施例中的服务端,以执行上述实施例中以服务端为主体的目标服务的测试方法。如图6所示,该目标服务的测试装置600包括:
接收模块601,用于接收代理终端发送的目标服务的调用请求,调用请求是通过调用实体发送的,调用实体用于调用目标服务的待调用接口传输调用参数;
发送模块602,用于将目标服务的调用响应发送给代理终端。
需要说明的,图6所示实施例提供的目标服务的测试装置,可用于执行上述实施例所提供的以服务端为主体的目标服务的测试方法,具体实现方式和技术效果类似,这里不再进行赘述。
图7为本申请实施例提供的一种电子设备的结构示意图。如图7所示,该电子设备700可以包括:至少一个处理器701和存储器702。图7示出的是以一个处理器为例的电子设备。
存储器702,用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。
存储器702可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器701用于执行存储器702存储的计算机执行指令,以实现上述目标服务的测试方法;
其中,处理器701可能是一个中央处理器(Central Processing Unit,CPU),或者是特定集成电路(Application Specific Integrated Circuit,ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路。
可选地,在具体实现上,如果通信接口、存储器702和处理器701独立实现,则通信接口、存储器702和处理器701可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component Interconnect,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等,但并不表示仅有一根总线或一种类型的总线。
可选地,在具体实现上,如果通信接口、存储器702和处理器701集成在一块芯片上实现,则通信接口、存储器702和处理器701可以通过内部接口完成通信。
本申请实施例还提供了一种芯片,包括处理器和接口。其中接口用于输入输出处理器所处理的数据或指令。处理器用于执行以上方法实施例中提供的方法。该芯片可以应用于目标服务的测试装置中。
本申请实施例还提供一种程序,该程序在被处理器执行时用于执行以上方法实施例提供的目标服务的测试方法。
本申请实施例还提供一种程序产品,例如计算机可读存储介质,该程序产品中存储有指令,当其在计算机上运行时,使得计算机执行上述方法实施例提供的目标服务的测试方法。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、磁盘或者光盘等各种可以存储程序代码的介质。具体地,该计算机可读存储介质中存储有程序信息,程序信息用于上述目标服务的测试方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如,同轴电缆、光纤、数字用户线(DSL))或无线(例如,红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如,固态硬盘(Solid State Disk,SSD))等。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (12)
1.一种目标服务的测试方法,其特征在于,应用于代理终端,所述方法包括:
接收源终端发送的测试请求,所述测试请求用于请求对分布式系统中的目标服务进行测试,所述测试请求中包括所述目标服务的调用参数;
根据所述调用参数,构建所述目标服务的调用实体,所述调用实体用于调用所述目标服务的待调用接口传输所述调用参数;
基于所述调用实体向服务端发送所述目标服务的调用请求。
2.根据权利要求1所述的方法,其特征在于,所述构建所述目标服务的调用实体,包括:
根据所述调用参数,确定所述目标服务的中间实体,所述中间实体用于获取所述目标服务对应的网络地址;
将所述中间实体转换为所述目标服务的调用实体。
3.根据权利要求1所述的方法,其特征在于,所述构建所述目标服务的调用实体,包括:
根据预设的校验规则对所述调用参数进行校验,确定所述调用参数对应的校验结果;
若所述调用参数对应的校验结果为成功,则构建所述目标服务的调用实体。
4.根据权利要求3所述的方法,其特征在于,在所述确定所述调用参数对应的校验结果之后,所述方法还包括:
若所述调用参数对应的校验结果为失败,则向所述源终端发送提示信息,所述提示信息用于指示所述调用参数对应的校验结果为失败的原因。
5.根据权利要求1所述的方法,其特征在于,在所述基于所述调用实体向服务端发送所述目标服务的调用请求之后,所述方法还包括:
接收服务端发送的所述目标服务的调用响应;
根据所述目标服务的调用响应,确定所述目标服务的测试结果,所述测试结果用于指示所述待调用接口是否调用成功及所述目标服务是否测试正常;
将所述目标服务的测试结果发送给源终端。
6.根据权利要求1所述的方法,其特征在于,所述调用参数包括:组别信息、版本信息、接口信息、路径信息。
7.根据权利要求1所述的方法,其特征在于,所述测试请求是基于超文本传输协议生成的。
8.一种目标服务的测试方法,其特征在于,应用于服务端,所述方法包括:
接收代理终端发送的目标服务的调用请求,所述调用请求是通过调用实体发送的,所述调用实体用于调用所述目标服务的待调用接口传输调用参数;
向所述代理终端发送所述目标服务的调用响应。
9.一种目标服务的测试装置,其特征在于,应用于代理终端,所述装置包括:
接收模块,用于接收源终端发送的测试请求,所述测试请求用于请求对分布式系统中的目标服务进行测试,所述测试请求中包括所述目标服务的调用参数;
构建模块,用于根据所述调用参数,构建所述目标服务的调用实体,所述调用实体用于调用所述目标服务的待调用接口传输所述调用参数;
发送模块,用于基于所述调用实体向服务端发送所述目标服务的调用请求。
10.一种目标服务的测试装置,其特征在于,应用于服务端,所述装置包括:
接收模块,用于接收代理终端发送的目标服务的调用请求,所述调用请求是通过调用实体发送的,所述调用实体用于调用所述目标服务的待调用接口传输调用参数;
发送模块,用于向所述代理终端发送所述目标服务的调用响应。
11.一种计算机存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至7任意一项所述的方法。
12.一种电子设备,其特征在于,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1至7任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210015787.3A CN114356774A (zh) | 2022-01-07 | 2022-01-07 | 目标服务的测试方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210015787.3A CN114356774A (zh) | 2022-01-07 | 2022-01-07 | 目标服务的测试方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114356774A true CN114356774A (zh) | 2022-04-15 |
Family
ID=81107337
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210015787.3A Pending CN114356774A (zh) | 2022-01-07 | 2022-01-07 | 目标服务的测试方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114356774A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115633073A (zh) * | 2022-09-02 | 2023-01-20 | 易保网络技术(上海)有限公司 | 微服务调用方法、电子设备、系统及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190166035A1 (en) * | 2017-11-27 | 2019-05-30 | Jpmorgan Chase Bank, N.A. | Script accelerate |
CN110032511A (zh) * | 2019-03-19 | 2019-07-19 | 深圳市买买提信息科技有限公司 | 一种接口测试方法及接口测试设备 |
CN112732499A (zh) * | 2020-12-30 | 2021-04-30 | 广州品唯软件有限公司 | 一种基于微服务架构的测试方法、装置及计算机系统 |
CN113377668A (zh) * | 2021-06-29 | 2021-09-10 | 南京苏宁软件技术有限公司 | 服务接口的自动化测试方法、装置和计算机设备 |
CN113760697A (zh) * | 2020-07-15 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 接口测试的方法、装置、电子设备和存储介质 |
-
2022
- 2022-01-07 CN CN202210015787.3A patent/CN114356774A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190166035A1 (en) * | 2017-11-27 | 2019-05-30 | Jpmorgan Chase Bank, N.A. | Script accelerate |
CN110032511A (zh) * | 2019-03-19 | 2019-07-19 | 深圳市买买提信息科技有限公司 | 一种接口测试方法及接口测试设备 |
CN113760697A (zh) * | 2020-07-15 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 接口测试的方法、装置、电子设备和存储介质 |
CN112732499A (zh) * | 2020-12-30 | 2021-04-30 | 广州品唯软件有限公司 | 一种基于微服务架构的测试方法、装置及计算机系统 |
CN113377668A (zh) * | 2021-06-29 | 2021-09-10 | 南京苏宁软件技术有限公司 | 服务接口的自动化测试方法、装置和计算机设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115633073A (zh) * | 2022-09-02 | 2023-01-20 | 易保网络技术(上海)有限公司 | 微服务调用方法、电子设备、系统及可读存储介质 |
CN115633073B (zh) * | 2022-09-02 | 2023-11-14 | 易保网络技术(上海)有限公司 | 微服务调用方法、电子设备、系统及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109710340B (zh) | 软件工具调用方法及装置、软件工具封装方法及装置 | |
CN110009321B (zh) | 一种基于区块链智能合约的转账方法及系统 | |
CN110289983B (zh) | 负载均衡应用创建方法、装置、计算机设备及存储介质 | |
CN107241315B (zh) | 银行网关接口的接入方法、装置及计算机可读存储介质 | |
CN104821954A (zh) | 一种跨平台远程过程调用方法 | |
CN107222524B (zh) | 一种开放式应用服务集成框架 | |
CN113806037A (zh) | 服务的调用方法、装置、存储介质及电子设备 | |
CN112491948A (zh) | 非侵入式的单体应用微服务化方法、装置及计算机设备 | |
CN111818158A (zh) | 网关控制方法、装置、电子设备及存储介质 | |
CN112988409B (zh) | 一种接口调用方法、装置、计算机设备及存储介质 | |
CN112835782A (zh) | 接口的接入测试方法和系统 | |
CN111786939A (zh) | 物联网管理平台测试的方法、装置和系统 | |
CN113127108A (zh) | 业务请求的处理方法及装置、存储介质以及电子设备 | |
CN107273226B (zh) | 在安卓系统中集成组件及调用被集成组件的方法和装置 | |
CN114356774A (zh) | 目标服务的测试方法、装置、设备及存储介质 | |
CN114579194A (zh) | 一种基于Spring远程调用的异常处理方法和系统 | |
CN111752820A (zh) | gRPC接口的压力测试方法、计算机设备和存储介质 | |
CN112015384A (zh) | 一种接口映射方法和装置 | |
CN115883310A (zh) | 服务部署方法、服务部署系统、电子设备及存储介质 | |
CN113315681A (zh) | 一种基于智能家庭网关插件的自动化测试方法及系统 | |
CN112732547B (zh) | 业务测试方法、装置、存储介质及电子设备 | |
CN112835615A (zh) | 软件开发工具包的插件化处理方法、装置及电子设备 | |
CN111752601A (zh) | 一种数据配置方法、装置、系统、电子设备及其存储介质 | |
CN111597020A (zh) | 一种应用程序编程接口api调试方法以及调试终端 | |
CN115454878A (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 |