CN115757084A - 测试方法和测试装置及存储介质 - Google Patents
测试方法和测试装置及存储介质 Download PDFInfo
- Publication number
- CN115757084A CN115757084A CN202211090150.7A CN202211090150A CN115757084A CN 115757084 A CN115757084 A CN 115757084A CN 202211090150 A CN202211090150 A CN 202211090150A CN 115757084 A CN115757084 A CN 115757084A
- Authority
- CN
- China
- Prior art keywords
- request
- service logic
- test
- response result
- interface
- 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
Images
Abstract
本公开提出一种测试方法和测试装置及存储介质,涉及计算机领域。测试方法包括:接收客户端发送的请求;执行本地的所述请求相应的线上业务逻辑得到所述请求的第一响应结果;向部署所述请求相应的测试业务逻辑的服务端发起所述请求的远程调用,指示所述服务端执行所述请求相应的测试业务逻辑得到所述请求的第二响应结果并返回;通过比较所述第一响应结果和所述第二响应结果,确定所述线上业务逻辑和所述测试业务逻辑对所述请求的响应结果差异信息。利用线上真实流量进行新/旧业务逻辑的响应结果差异的测试,测试更加全面,通过测试的新业务逻辑的稳定性更好。
Description
技术领域
本公开涉及计算机领域,特别涉及一种测试方法和测试装置及存储介质。
背景技术
接口可以分为读接口和写接口。读接口能够基于输入的条件参数输出相应的查询结果。读接口往往输入参数简单,但是返回结果复杂。例如,指标类的查询接口,其单次返回结果可能包含数十乃至数百个指标。因此,当这类接口发生了一定程度的修改,对其进行测试验证是必要的。
在一些相关技术中,可以编写测试用例,利用测试数据对新版本接口的业务逻辑进行测试,观察新版本接口针对测试数据的返回结果与旧版本接口针对测试数据的返回结果之间的差异,以判断新版本接口的业务逻辑是否通过测试。
发明内容
经研究发现,基于测试用例的测试方法所能测试的场景有限,测试并不全面。
本公开实施例利用线上真实流量进行新/旧业务逻辑的响应结果差异的测试,测试更加全面,通过测试的新业务逻辑的稳定性更好。
本公开一些实施例提出一种测试方法,包括:
接收客户端发送的请求;
执行本地的所述请求相应的线上业务逻辑得到所述请求的第一响应结果;
向部署所述请求相应的测试业务逻辑的服务端发起所述请求的远程调用,指示所述服务端执行所述请求相应的测试业务逻辑得到所述请求的第二响应结果并返回;
通过比较所述第一响应结果和所述第二响应结果,确定所述线上业务逻辑和所述测试业务逻辑对所述请求的响应结果差异信息。
在一些实施例中,利用字节码增强技术,在所述线上业务逻辑所在的远程过程调用框架中植入代理逻辑,所述代理逻辑用于向部署所述请求相应的测试业务逻辑的服务端发起所述请求的远程调用,指示所述服务端执行所述请求相应的测试业务逻辑得到所述请求的第二响应结果并返回,通过比较所述第一响应结果和所述第二响应结果,确定所述线上业务逻辑和所述测试业务逻辑对所述请求的响应结果差异信息。
在一些实施例中,采用异步方式,向部署所述请求相应的测试业务逻辑的服务端发起所述请求的远程调用。
在一些实施例中,接收客户端发送的接口相关的请求,所述接口被设置相应的测试次数阈值;
在测试次数未达到所述接口的测试次数阈值时,执行向部署所述请求相应的测试业务逻辑的服务端发起所述请求的远程调用以及确定所述线上业务逻辑和所述测试业务逻辑对所述请求的响应结果差异信息的步骤;
在测试次数达到所述接口的测试次数阈值时,停止执行向部署所述请求相应的测试业务逻辑的服务端发起所述请求的远程调用以及确定所述线上业务逻辑和所述测试业务逻辑对所述请求的响应结果差异信息的步骤。
在一些实施例中,所述接口包括读接口。
在一些实施例中,在接收客户端发送的请求之后,解析所述请求获得需要调用的接口、方法和参数;
根据所述需要调用的接口、方法和参数,执行本地的所述请求相应的线上业务逻辑得到所述请求的第一响应结果;
在向部署所述请求相应的测试业务逻辑的服务端发起所述请求的远程调用时传递所述需要调用的接口、方法和参数,指示所述服务端根据所述需要调用的接口、方法和参数执行所述请求相应的测试业务逻辑得到所述请求的第二响应结果并返回。
在一些实施例中,所述线上业务逻辑部署在一个或多个服务端;在部署所述线上业务逻辑的多个服务端中有至少一个服务端在其所述线上业务逻辑所在的远程过程调用框架中植入了所述代理逻辑。
在一些实施例中,所述线上业务逻辑部署在一个或多个服务端;通过负载均衡策略,从部署所述线上业务逻辑的多个服务端中,选择至少一个服务端执行本地的所述请求相应的线上业务逻辑得到所述请求的第一响应结果。
在一些实施例中,还包括:根据所述线上业务逻辑和所述测试业务逻辑对所述请求的响应结果差异信息,确定所述测试业务逻辑是否通过测试。
本公开一些实施例提出一种测试装置,包括:
接收模块,被配置为接收客户端发送的请求;
执行模块,被配置为执行本地的所述请求相应的线上业务逻辑得到所述请求的第一响应结果;
调用模块,被配置为向部署所述请求相应的测试业务逻辑的服务端发起所述请求的远程调用,指示所述服务端执行所述请求相应的测试业务逻辑得到所述请求的第二响应结果并返回;
差异确定模块,被配置为通过比较所述第一响应结果和所述第二响应结果,确定所述线上业务逻辑和所述测试业务逻辑对所述请求的响应结果差异信息。
在一些实施例中,所述调用模块,被配置为利用代理逻辑向部署所述请求相应的测试业务逻辑的服务端发起所述请求的远程调用,指示所述服务端执行所述请求相应的测试业务逻辑得到所述请求的第二响应结果并返回,其中,所述代理逻辑是利用字节码增强技术,在所述线上业务逻辑所在的远程过程调用框架中被植入的。
在一些实施例中,所述调用模块,被配置为采用异步方式,向部署所述请求相应的测试业务逻辑的服务端发起所述请求的远程调用,指示所述服务端执行所述请求相应的测试业务逻辑得到所述请求的第二响应结果并返回。
在一些实施例中,还包括:测试确定模块,被配置为根据所述线上业务逻辑和所述测试业务逻辑对所述请求的响应结果差异信息,确定所述测试业务逻辑是否通过测试。
本公开一些实施例提出一种测试装置,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行测试方法。
本公开一些实施例提出一种非瞬时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现测试方法的步骤。
附图说明
下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍。根据下面参照附图的详细描述,可以更加清楚地理解本公开。
显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示出本公开一些实施例的植入代理逻辑的远程过程调用框架的示意图。
图2示出本公开一些实施例的进行实时差异测试的测试方法的流程示意图。
图3示出本公开一些实施例的负载均衡和实时差异测试的示意图。
图4示出本公开一些实施例的测试装置的结构示意图。
图5示出本公开一些实施例的测试装置的结构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。
除非特别说明,否则,本公开中的“第一”“第二”等描述用来区分不同的对象,并不用来表示大小或时序等含义。
服务端的远程过程调用(Remote Procedure Call,RPC)框架能够使得客户端像调用本地代码一样调用远程服务。本公开实施例在远程过程调用框架中植入代理逻辑,利用代理逻辑实现实时差异测试。
图1示出本公开一些实施例的植入代理逻辑的远程过程调用框架的示意图。
如图1所示,远程过程调用框架包括操作系统(operating system,OS),应用容器引擎(如Docker),Java虚拟机(Java Virtual Machine,JVM),开发框架(如Spring Boot),数据库管理系统(如MySQL),远程字典服务(Remote Dictionary Server,Redis),应用(Application),JSF(Java Server Faces)以及新植入的代理逻辑(设为Agent)。
图2示出本公开一些实施例的进行实时差异测试的测试方法的流程示意图。
如图2所示,该实施例的进行实时差异测试的测试方法包括步骤210-240,根据需要还可以包括步骤250。
在步骤210,部署线上业务逻辑的服务端利用其远程过程调用框架接收客户端发送的请求。
在一些实施例中,本步骤可以接收客户端发送的接口相关的请求,所述接口包括但不限于读接口。如前所述,读接口往往输入参数简单,但是返回结果复杂。当读接口发生了一定程度的修改,对其进行测试是必要的。
所述接口被设置相应的测试次数阈值。在步骤220之后,判断测试次数是否达到所述接口的测试次数阈值,在测试次数未达到所述接口的测试次数阈值时,继续执行步骤230-240,在测试次数达到所述接口的测试次数阈值时,停止执行步骤230-240。从而,控制测试次数,避免造成额外的线上服务负担。
在步骤220,部署线上业务逻辑的服务端执行本地的所述请求相应的线上业务逻辑得到所述请求的第一响应结果。
部署线上业务逻辑的服务端利用其远程过程调用框架,反射调用本地的所述请求相应的线上业务逻辑(步骤220-1),通过执行线上业务逻辑得到所述请求的第一响应结果(步骤220-2)。根据需要,可以将所述请求的第一响应结果返回给客户端,不影响客户端的正常业务。
部署线上业务逻辑的服务端利用其远程过程调用框架,在接收客户端发送的请求之后,解析所述请求获得需要调用的接口、方法和参数;根据所述需要调用的接口、方法和参数,执行本地的所述请求相应的线上业务逻辑得到所述请求的第一响应结果。
在一些实施例中,在远程过程调用框架中Object类型的invoke调用方法中:例如采用request.getInterface()方法解析所述请求获得需要调用的接口className,该接口例如可以是String类型;例如采用request.getMethodName()方法解析所述请求获得需要调用的方法methodName,该方法例如可以是String类型;例如采用request.getArgs()方法解析所述请求获得需要的参数信息args,参数信息例如可以是Object类型;例如采用method.invoke(obj,args)方法,通过obj传递解析得到的接口、方法,通过args传递解析得到的参数,反射调用本地的所述请求相应的线上业务逻辑得到该请求的第一响应结果originResult,该第一响应结果例如可以是Object类型。
在步骤230,部署线上业务逻辑的服务端利用其远程过程调用框架中植入的代理逻辑,例如采用异步方式,向部署所述请求相应的测试业务逻辑的服务端发起所述请求的远程调用(步骤230-1),指示所述服务端执行所述请求相应的测试业务逻辑得到所述请求的第二响应结果并返回(步骤230-2)。
在向部署所述请求相应的测试业务逻辑的服务端发起所述请求的远程调用时传递步骤220中解析获得的所述需要调用的接口、方法和参数,指示所述服务端根据所述需要调用的接口、方法和参数执行所述请求相应的测试业务逻辑得到所述请求的第二响应结果并返回。
其中,可以利用字节码增强技术,在所述线上业务逻辑所在的远程过程调用框架中植入代理逻辑,所述代理逻辑用于向部署所述请求相应的测试业务逻辑的服务端发起所述请求的远程调用,指示所述服务端执行所述请求相应的测试业务逻辑得到所述请求的第二响应结果并返回,通过比较所述第一响应结果和所述第二响应结果,确定所述线上业务逻辑和所述测试业务逻辑对所述请求的响应结果差异信息。
从而,通过字节码增强的代码修改方式,可动态地对线上运行中的程序做修改,在不影响线上业务的情况下植入代理逻辑。
采用异步方式向部署所述请求相应的测试业务逻辑的服务端发起所述请求的远程调用,使得无需等待被调用函数的返回值就让操作继续进行,提高执行效率。
在一些实施例中,在Object类型的invoke调用方法中,在从服务端解码请求与编码响应之间,使用字节码增强工具植入一段代理逻辑,以便在正常的请求结束后执行额外的远程调用测试业务逻辑以及比较差异等操作。代理逻辑例如采用runAsyncInvoke(className,methodName,args,originResult)方法实现,启动异步线程,异步调用时传递解析得到的接口className、方法methodName、参数args、第一响应结果originResult;例如采用runAsyncInvoke中的doRpc(className,methodName,args)方法,传递解析得到的接口className、方法methodName、参数args,远程调用测试业务逻辑得到该请求的第二响应结果remoteResult,第二响应结果例如是Object类型。
在步骤240,部署线上业务逻辑的服务端利用其远程过程调用框架中植入的代理逻辑,通过比较所述第一响应结果和所述第二响应结果,确定所述线上业务逻辑和所述测试业务逻辑对所述请求的响应结果差异信息。
在一些实施例中,代理逻辑runAsyncInvoke中在doRpc方法之后还可以包括compareDiff(originResult,remoteResult)方法,传递第一响应结果originResult、第二响应结果remoteResult,比较第一响应结果originResult与第二响应结果remoteResult的差异。
在步骤250,部署线上业务逻辑的服务端利用其远程过程调用框架中植入的代理逻辑,根据需要将所述线上业务逻辑和所述测试业务逻辑对所述请求的响应结果差异信息提交给管理端,以使得管理端根据所述线上业务逻辑和所述测试业务逻辑对所述请求的响应结果差异信息,确定所述测试业务逻辑是否通过测试。
上述实施例,利用线上真实流量进行新/旧业务逻辑的响应结果差异的测试,测试更加全面,通过测试的新业务逻辑的稳定性更好,在不影响线上业务的情况下进行实时差异测试。
按照上述测试方法,当客户端C1发起请求,部署线上业务逻辑的服务端S1正常执行线上业务逻辑,将第一响应结果originResult返回给客户端C1,同时启动一个异步线程runAsyncInvoke执行异步调用,在runAsyncInvoke方法中,服务端S1将该请求转发到部署测试业务逻辑的服务端S2上,此时,服务端S1同时又是一个客户端C2(即S1=C2),服务端S2接收到客户端C2(即服务端S1)的调用请求后,正常执行测试业务逻辑将第二响应结果remoteResult返回给客户端C2(即服务端S1),此时在服务端S1上同时存在(C1,S1)调用的第一响应结果originResult和(C2,S2)调用的第二响应结果remoteResult,可以比较第一响应结果originResult与第二响应结果remoteResult的差异,以便完成对测试业务逻辑的测试。
其中,部署线上业务逻辑的服务端S1例如可以通过设置别名的方式将客户端的请求转发到部署测试业务逻辑的服务端S2上。服务组成部分包括接口名、方法名、别名,例如:interface#method@alias。使用不同的别名来区分不同的服务集群,比如:interface#method@online表示线上服务集群、interface#method@test表示测试服务集群。在网络可以互联互通的前提下,客户端可以通过设置不同的别名来控制所要访问的服务集群。
在一些实施例中,所述线上业务逻辑部署在一个或多个服务端。在部署所述线上业务逻辑的多个服务端中有至少一个服务端在其所述线上业务逻辑所在的远程过程调用框架中植入了所述代理逻辑。也即,可以在部署所述线上业务逻辑的多个服务端中的部分服务端植入所述代理逻辑,无需在全部服务端植入所述代理逻辑。
在一些实施例中,通过负载均衡策略,从部署所述线上业务逻辑的多个服务端中,选择至少一个服务端执行本地的所述请求相应的线上业务逻辑得到所述请求的第一响应结果。从而满足负载均衡要求。
如图3所示,假设某线上业务逻辑APP1部署在服务端S1-1和服务端S1-2,其中服务端S1-2中植入了代理逻辑Agent,相应的测试业务逻辑APP2部署在服务端S2。针对客户端的请求,根据各个服务端的负载情况可以由服务端S1-1或服务端S1-2响应该请求,均可执行线上业务逻辑APP1能得到第一响应结果,假设线上业务逻辑为int foo(int x,int y){return x+y}。在需要进行实时差异测试时,服务端S1-2在执行本地的线上业务逻辑APP1能得到第一响应结果的同时,通过代理逻辑Agent还异步远程调用服务端S2,服务端S2执行测试业务逻辑并将第二响应结果返回给服务端S1-2,假设测试业务逻辑为int foo(int x,int y){return x×y},服务端S1-2比较第一响应结果与第二响应结果的差异,以便完成对测试业务逻辑的测试。
图4示出本公开一些实施例的测试装置的结构示意图。
如图4所示,该实施例的测试装置400包括:
接收模块410,被配置为接收客户端发送的请求;
执行模块420,被配置为执行本地的所述请求相应的线上业务逻辑得到所述请求的第一响应结果;
调用模块430,被配置为向部署所述请求相应的测试业务逻辑的服务端发起所述请求的远程调用,指示所述服务端执行所述请求相应的测试业务逻辑得到所述请求的第二响应结果并返回;
差异确定模块440,被配置为通过比较所述第一响应结果和所述第二响应结果,确定所述线上业务逻辑和所述测试业务逻辑对所述请求的响应结果差异信息。
在一些实施例中,所述调用模块430,被配置为利用代理逻辑向部署所述请求相应的测试业务逻辑的服务端发起所述请求的远程调用,指示所述服务端执行所述请求相应的测试业务逻辑得到所述请求的第二响应结果并返回,其中,所述代理逻辑是利用字节码增强技术,在所述线上业务逻辑所在的远程过程调用框架中被植入的。
在一些实施例中,所述调用模块430,被配置为采用异步方式,向部署所述请求相应的测试业务逻辑的服务端发起所述请求的远程调用,指示所述服务端执行所述请求相应的测试业务逻辑得到所述请求的第二响应结果并返回。
在一些实施例中,测试装置400还包括:测试确定模块450,被配置为根据所述线上业务逻辑和所述测试业务逻辑对所述请求的响应结果差异信息,确定所述测试业务逻辑是否通过测试。
图5示出本公开一些实施例的测试装置的结构示意图。
如图5所示,该实施例的测试装置500包括:存储器510以及耦接至该存储器510的处理器520,处理器520被配置为基于存储在存储器510中的指令,执行前述任意一些实施例中的测试方法。
例如,接收客户端发送的请求;执行本地的所述请求相应的线上业务逻辑得到所述请求的第一响应结果;向部署所述请求相应的测试业务逻辑的服务端发起所述请求的远程调用,指示所述服务端执行所述请求相应的测试业务逻辑得到所述请求的第二响应结果并返回;通过比较所述第一响应结果和所述第二响应结果,确定所述线上业务逻辑和所述测试业务逻辑对所述请求的响应结果差异信息。具体实现参考前述,这里不再赘述。
其中,存储器510例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)以及其他程序等。
其中,处理器520可以用通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或其它可编程逻辑设备、分立门或晶体管等分立硬件组件方式来实现。
测试装置500还可以包括输入输出接口530、网络接口540、存储接口550等。这些接口530,540,550以及存储器510和处理器520之间例如可以通过总线560连接。其中,输入输出接口530为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口540为各种联网设备提供连接接口。存储接口550为SD卡、U盘等外置存储设备提供连接接口。总线560可以使用多种总线结构中的任意总线结构。例如,总线结构包括但不限于工业标准体系结构(Industry Standard Architecture,ISA)总线、微通道体系结构(Micro ChannelArchitecture,MCA)总线、外围组件互连(Peripheral Component Interconnect,PCI)总线。
本公开一些实施例提出一种非瞬时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现测试方法的步骤。
本领域内的技术人员应当明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机程序代码的非瞬时性计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (15)
1.一种测试方法,其特征在于,包括:
接收客户端发送的请求;
执行本地的所述请求相应的线上业务逻辑得到所述请求的第一响应结果;
向部署所述请求相应的测试业务逻辑的服务端发起所述请求的远程调用,指示所述服务端执行所述请求相应的测试业务逻辑得到所述请求的第二响应结果并返回;
通过比较所述第一响应结果和所述第二响应结果,确定所述线上业务逻辑和所述测试业务逻辑对所述请求的响应结果差异信息。
2.根据权利要求1所述的方法,其特征在于,
利用字节码增强技术,在所述线上业务逻辑所在的远程过程调用框架中植入代理逻辑,所述代理逻辑用于向部署所述请求相应的测试业务逻辑的服务端发起所述请求的远程调用,指示所述服务端执行所述请求相应的测试业务逻辑得到所述请求的第二响应结果并返回,通过比较所述第一响应结果和所述第二响应结果,确定所述线上业务逻辑和所述测试业务逻辑对所述请求的响应结果差异信息。
3.根据权利要求1所述的方法,其特征在于,
采用异步方式,向部署所述请求相应的测试业务逻辑的服务端发起所述请求的远程调用。
4.根据权利要求1所述的方法,其特征在于,
接收客户端发送的接口相关的请求,所述接口被设置相应的测试次数阈值;
在测试次数未达到所述接口的测试次数阈值时,执行向部署所述请求相应的测试业务逻辑的服务端发起所述请求的远程调用以及确定所述线上业务逻辑和所述测试业务逻辑对所述请求的响应结果差异信息的步骤;
在测试次数达到所述接口的测试次数阈值时,停止执行向部署所述请求相应的测试业务逻辑的服务端发起所述请求的远程调用以及确定所述线上业务逻辑和所述测试业务逻辑对所述请求的响应结果差异信息的步骤。
5.根据权利要求4所述的方法,其特征在于,所述接口包括读接口。
6.根据权利要求1所述的方法,其特征在于,
在接收客户端发送的请求之后,解析所述请求获得需要调用的接口、方法和参数;
根据所述需要调用的接口、方法和参数,执行本地的所述请求相应的线上业务逻辑得到所述请求的第一响应结果;
在向部署所述请求相应的测试业务逻辑的服务端发起所述请求的远程调用时传递所述需要调用的接口、方法和参数,指示所述服务端根据所述需要调用的接口、方法和参数执行所述请求相应的测试业务逻辑得到所述请求的第二响应结果并返回。
7.根据权利要求2所述的方法,其特征在于,所述线上业务逻辑部署在一个或多个服务端;
在部署所述线上业务逻辑的多个服务端中有至少一个服务端在其所述线上业务逻辑所在的远程过程调用框架中植入了所述代理逻辑。
8.根据权利要求1所述的方法,其特征在于,所述线上业务逻辑部署在一个或多个服务端;
通过负载均衡策略,从部署所述线上业务逻辑的多个服务端中,选择至少一个服务端执行本地的所述请求相应的线上业务逻辑得到所述请求的第一响应结果。
9.根据权利要求1所述的方法,其特征在于,还包括:
根据所述线上业务逻辑和所述测试业务逻辑对所述请求的响应结果差异信息,确定所述测试业务逻辑是否通过测试。
10.一种测试装置,其特征在于,包括:
接收模块,被配置为接收客户端发送的请求;
执行模块,被配置为执行本地的所述请求相应的线上业务逻辑得到所述请求的第一响应结果;
调用模块,被配置为向部署所述请求相应的测试业务逻辑的服务端发起所述请求的远程调用,指示所述服务端执行所述请求相应的测试业务逻辑得到所述请求的第二响应结果并返回;
差异确定模块,被配置为通过比较所述第一响应结果和所述第二响应结果,确定所述线上业务逻辑和所述测试业务逻辑对所述请求的响应结果差异信息。
11.根据权利要求10所述的装置,其特征在于,
所述调用模块,被配置为利用代理逻辑向部署所述请求相应的测试业务逻辑的服务端发起所述请求的远程调用,指示所述服务端执行所述请求相应的测试业务逻辑得到所述请求的第二响应结果并返回,其中,所述代理逻辑是利用字节码增强技术,在所述线上业务逻辑所在的远程过程调用框架中被植入的。
12.根据权利要求10所述的装置,其特征在于,
所述调用模块,被配置为采用异步方式,向部署所述请求相应的测试业务逻辑的服务端发起所述请求的远程调用,指示所述服务端执行所述请求相应的测试业务逻辑得到所述请求的第二响应结果并返回。
13.根据权利要求10所述的装置,其特征在于,还包括:
测试确定模块,被配置为根据所述线上业务逻辑和所述测试业务逻辑对所述请求的响应结果差异信息,确定所述测试业务逻辑是否通过测试。
14.一种测试装置,包括:
存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行权利要求1-9中任一项所述的测试方法。
15.一种非瞬时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现权利要求1-9中任一项所述的测试方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211090150.7A CN115757084A (zh) | 2022-09-07 | 2022-09-07 | 测试方法和测试装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211090150.7A CN115757084A (zh) | 2022-09-07 | 2022-09-07 | 测试方法和测试装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115757084A true CN115757084A (zh) | 2023-03-07 |
Family
ID=85349640
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211090150.7A Pending CN115757084A (zh) | 2022-09-07 | 2022-09-07 | 测试方法和测试装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115757084A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116893913A (zh) * | 2023-09-08 | 2023-10-17 | 北京趋动智能科技有限公司 | 远程程序执行方法、装置、系统、电子设备及存储介质 |
-
2022
- 2022-09-07 CN CN202211090150.7A patent/CN115757084A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116893913A (zh) * | 2023-09-08 | 2023-10-17 | 北京趋动智能科技有限公司 | 远程程序执行方法、装置、系统、电子设备及存储介质 |
CN116893913B (zh) * | 2023-09-08 | 2024-01-23 | 北京趋动智能科技有限公司 | 远程程序执行方法、装置、系统、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8352907B2 (en) | Software application recreation | |
US7437706B2 (en) | Automating the life cycle of a distributed computing application | |
US7725888B2 (en) | Systems and methods for dynamically linking application software into a running operating system kernel | |
KR101134735B1 (ko) | 소프트웨어 컴포넌트 설계정보를 이용한 소프트웨어 테스트 방법 및 시스템 | |
CN112104709B (zh) | 智能合约的处理方法、装置、介质及电子设备 | |
US20110289481A1 (en) | User interface analysis management | |
CN110750592B (zh) | 数据同步的方法、装置和终端设备 | |
WO2018184361A1 (zh) | 应用程序测试方法、服务器、终端和存储介质 | |
CN110633200A (zh) | 用于测试智能合约的方法和设备 | |
CN110750458A (zh) | 大数据平台测试方法、装置、可读存储介质及电子设备 | |
US20120291013A1 (en) | Systems and Methods for Synchronizing Software Execution Across Data Processing Systems and Platforms | |
US9558105B2 (en) | Transactional boundaries for virtual model generation | |
CN110532182B (zh) | 一种虚拟化平台的自动化测试方法及装置 | |
CN111290958A (zh) | 一种调试智能合约的方法及装置 | |
CN112650676A (zh) | 软件测试方法、装置、设备及存储介质 | |
CN111597120A (zh) | 接口测试装置、方法、电子设备和计算机可读存储介质 | |
CN115757084A (zh) | 测试方法和测试装置及存储介质 | |
CN112559525B (zh) | 数据检查系统、方法、装置和服务器 | |
CN108496157B (zh) | 使用扩展接口提供运行时跟踪的系统和方法 | |
Andersson et al. | XP with Acceptance-Test Driven Development: A rewrite project for a resource optimization system | |
CA2997302C (en) | Application migration | |
CN114024871B (zh) | 一种芯片验证方法、系统、计算机设备及可读存储介质 | |
CN1988479A (zh) | 一种记录系统信息的方法和对象桩 | |
CN114116509A (zh) | 程序分析方法、装置、电子设备和存储介质 | |
CN113220586A (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 |