CN106970873B - 线上mock测试方法、装置及系统 - Google Patents

线上mock测试方法、装置及系统 Download PDF

Info

Publication number
CN106970873B
CN106970873B CN201710015723.2A CN201710015723A CN106970873B CN 106970873 B CN106970873 B CN 106970873B CN 201710015723 A CN201710015723 A CN 201710015723A CN 106970873 B CN106970873 B CN 106970873B
Authority
CN
China
Prior art keywords
mock
request
server
application server
response
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
CN201710015723.2A
Other languages
English (en)
Other versions
CN106970873A (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.)
Ant Fortune Shanghai Financial Information Service Co ltd
Original Assignee
Advanced New Technologies 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 Advanced New Technologies Co Ltd filed Critical Advanced New Technologies Co Ltd
Priority to CN201710015723.2A priority Critical patent/CN106970873B/zh
Publication of CN106970873A publication Critical patent/CN106970873A/zh
Application granted granted Critical
Publication of CN106970873B publication Critical patent/CN106970873B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请实施例提供了一种线上mock测试方法、装置及系统,该系统包括待测应用服务器,待测应用服务器包括应用服务端和预先动态注入至待测应用服务器内的mock服务端。应用服务端用于当接收到携带有用例标识的请求时,向mock服务端提供请求;在收到mock服务端提供的mock响应时,将mock响应作为请求的响应返回;mock服务端用于根据用例标识从内置的mock对象集合中匹配对应的mock对象,基于mock对象模拟处理请求,并将处理后得到的mock响应提供给应用服务端。本申请实施例可降低mock测试成本,提高mock测试效率。

Description

线上mock测试方法、装置及系统
技术领域
本申请涉及系统自动化测试技术领域,尤其是涉及一种线上mock测试方法、装置及系统。
背景技术
在系统的线下测试或线上演练过程中,需要关注的对象和服务往往会依赖很多内部方法和或外部接口服务,mock测试是以可控的方式模拟这些内部方法和或外部接口服务的依赖,以便验证待测对象在可能存在的各种状态下是否可提供稳定可靠的服务。
目前针对内部方法的mock测试一般是通过mockito、powermock、jmockit等框架来实现。但是这些框架是通过测试用例来驱动的,无法通过rpc(Remote Procedure CallProtocol,远程过程调用协议)远程调用模式来驱动mock测试。而目前针对外部接口服务的mock测试一般需要一个外部服务器,并在其上部署mock服务逻辑,因此,这种方式需要占用额外的外部服务器。
为了解决上述问题,目前通过直接修改待测应用系统的系统代码的方式可以实现线上mock测试。然而这样一来,不管是实施线上mock测试,还是在线上mock测试后的系统还原,都需要修改待测应用系统的系统代码,这对待测应用系统的入侵较大,会严重影响待测应用系统的正常运行。
发明内容
本申请实施例的目的在于提供一种线上mock测试方法、装置及系统,以实现在不影响待测应用系统正常运行的情况下,利用待测应用系统进行线上mock测试,达到降低mock测试成本的目的。
为达到上述目的,一方面,本申请实施例提供了一种线上mock测试系统,包括待测应用服务器,所述待测应用服务器包括应用服务端和预先动态注入至所述待测应用服务器内的mock服务端,其中:
应用服务端,用于当接收到携带有用例标识的请求时,向所述mock服务端提供所述请求;在收到所述mock服务端提供的mock响应时,将所述mock响应作为所述请求的响应返回;
mock服务端,用于根据所述用例标识从内置的mock对象集合中匹配对应的mock对象,基于所述mock对象模拟处理所述请求,并将处理后得到的mock响应提供给所述应用服务端。
另一方面,本申请实施例还提供了一种线上mock测试方法,包括以下步骤:
当接收到携带有用例标识的请求时,向所述mock服务端提供所述请求;
在收到所述mock服务端提供的mock响应时,将所述mock响应作为所述请求的响应返回。
再一方面,本申请实施例还提供了一种应用服务端,包括:
请求转发模块,用于当接收到携带有用例标识的请求时,向所述mock服务端提供所述请求;
响应返回模块,用于在收到所述mock服务端提供的mock响应时,将所述mock响应作为所述请求的响应返回。
再一方面,本申请实施例还提供了另一种线上mock测试方法,包括以下步骤:
接收应用服务端提供的携带有用例标识的请求;
根据所述用例标识从内置的mock对象集合中匹配对应的mock对象;
基于所述mock对象模拟处理所述请求,并将处理后得到的mock响应提供给所述应用服务端。
再一方面,本申请实施例还提供了一种mock服务端,包括:
请求接收模块,用于接收应用服务端提供的携带有用例标识的请求;
对象匹配模块,用于根据所述用例标识从内置的mock对象集合中匹配对应的mock对象;
业务模拟模块,用于基于所述mock对象模拟处理所述请求,并将处理后得到的mock响应提供给所述应用服务端。
本申请实例中,由于mock服务端是通过动态注入的方式预存于待测应用服务器中,因此,本申请实例不需要额外的服务器来部署mock服务端,也不需要修改待测应用系统的代码;从而实现了在不影响待测应用系统正常运行同时,利用待测应用系统进行线上mock测试,降低了mock测试成本,提高了mock测试效率。此外,本申请实例中,通过用例标识可以用来区分收到的请求是mock请求还是业务请求,从而实现了线上mock测试和正常业务的隔离;并且通过用例标识还可以用来区分各个mock请求,因而本申请实例可以有效支持多并发场景的mock测试。
附图说明
此处所说明的附图用来提供对本申请实施例的进一步理解,构成本申请实施例的一部分,并不构成对本申请实施例的限定。在附图中:
图1为本申请一实施例线上mock测试系统的结构框图;
图2为本申请一实施例的应用服务端的结构框图;
图3为本申请一实施例的mock服务端的结构框图;
图4为本申请一实施例的线上mock测试系统中,应用服务端和mock服务端的交互流程图;
图5为本申请一实施例的线上mock测试方法的流程图;
图6为本申请另一实施例的线上mock测试方法的流程图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本申请实施例做进一步详细说明。在此,本申请实施例的示意性实施例及其说明用于解释本申请实施例,但并不作为对本申请实施例的限定。
参考图1所示,本申请实施例的线上mock测试系统包括待测应用服务器1,所述待测应用服务器1包括应用服务端11和预先动态注入至所述待测应用服务器1内的mock服务端12,其中:
应用服务端11,用于当接收到携带有用例标识的请求时,向所述mock服务端11提供所述请求;在接收所述mock服务端12提供的mock响应时,将所述mock响应作为所述请求的响应返回;
mock服务端12,用于根据所述用例标识从内置的mock对象集合中匹配对应的mock对象,基于所述mock对象模拟处理所述请求,并将处理后得到的mock响应提供给所述应用服务端11。
本申请一个实施例中,可预先通过部署于所述待测应用服务器1内的一个动态注入代理模块(agent程序),将所述mock服务端12注入至所述待测应用服务器1中。所述动态注入代理模块可用于接收mock服务端注入指令。例如待测应用系统是运行在linux系统上,可以在linux系统上传指定的jar包(agent程序),通过java–jar agent.jar来启动动态注入代理模块。当然,在本申请实施例中,上述采用java–jar agent.jar来启动态注入代理模块只是一个举例说明。在本申请其他实施例中,在待测应用系统中部署的动态注入代理模块,也可以是基于其他语言实现的脚本程序(比如shell等)。此外,在本申请另一实施例中,在条件允许的情况下,还可以考虑通过paas(Platform-as-a-Service,平台即服务)平台来自动部署动态注入代理模块。
本申请一个实施例中,所述mock服务端12可预先通过预设平台发送至所述动态注入代理模块。例如在动态注入代理模块部署至待测应用系统中后,可通过mock平台向动态注入代理模块发送mock服务端注入指令;这种情况下,动态注入代理模块和mock平台之间比如可以采用socket等协议通信;此外,还可以通过本地IDE(Integrated DevelopmentEnvironment,集成开发环境)平台远程连接动态注入代理模块;这种情况下,动态注入代理模块和IDE平台之间可以采用RMI(Remote Method Invocation,远程方法调用)等协议通信。本申请的一个示例性实施例中,所述IDE平台比如可以是Eclipse或Intellij idea等。
本申请一个实施例中,可利用一些工具类生成mock服务端注入指令。比如如果希望模拟某个外部依赖接口的响应时间超过5秒,可以先在本地IDE中编辑其java代码得到对应的java字节码或java类文件等。其中,java类文件可利用java的动态编辑接口或者javac命令得到;而java字节码则可通过其他框架(比如ASM bytecode插件等)得到。
本申请一个实施例中,动态注入代理模块在接收到mock服务端注入指令后,可从mock服务端注入指令中的信息(比如待注入的字节码或待替换的类class)中提取到mock服务端12,然后可通过java instrumentation接口把mock服务端12动态注入到待测应用服务器1中。此外,不管是针对内部方法的mock对象,还是针对外部接口服务的mock对象,本申请实施例均可以通过动态注入代理模块实现动态注入;当然,在完成mock测试后,同样通过向动态注入代理模块发送还原指令,还可以实现在待测应用系统正常运行的过程中,删除mock服务端12,从而还原待测应用系统。因此,本申请实施例也方便了mock测试的统一管理。
本申请一个实施例中,mock服务端12可以包括mock对象集合,所述mock对象集合是用例标识与mock对象之间的对应关系的集合,所述mock对象集合中的mock对象可以是内部业务逻辑和/或外部业务逻辑,且其数量可根据具体需要确定。其中,用例标识与mock对象之间的对应关系可以如下表1所示:
表1
用例标识 mock对象
001 X1
002 X2
由此,mock服务端12可根据用例标识与mock对象的对应关系,为所述用例标识所对应的mock请求匹配对应的mock对象,以进行业务模拟。
本申请实施例中,所述的动态注入是指在待测应用系统正常运行的过程中,向所述待测应用服务器1注入所述mock服务端12,且无需待测应用服务器1重启即可生效。
结合图2所示,所述线上mock测试系统的应用服务端11可以包括:
请求转发模块111,可以用于当接收到携带有用例标识的请求时,向所述mock服务端提供所述请求;
响应返回模块112,可以用于在接收所述mock服务端提供的mock响应时,将所述mock响应作为所述请求的响应返回。
结合图3所示,所述线上mock测试系统的mock服务端12可以包括:
请求接收模块121,用于接收应用服务端提供的携带有用例标识的请求;
对象匹配模块122,用于根据所述用例标识从内置的mock对象集合中匹配对应的mock对象;
业务模拟模块123,用于基于所述mock对象模拟处理所述请求,并将处理后得到的mock响应提供给所述应用服务端。
下面结合图4描述应用服务端11和mock服务端12的交互流程:
步骤1、应用服务端11接收请求发送方发送的请求。所述请求发送方可以为应用服务端11的上游系统或者客户端等。
本申请实施例中,所述请求发送方可通过上下文透传的方式,将请求发送给应用服务端11。例如在本申请的一个示例性实施例中,可通过SOFA(Service Oriented FabricArchitecture)开发框架下的Tracer组件实现,即发送的请求可为透传的Tracer上下文,所述Tracer上下文中包含用例标识)。
步骤2、所述应用服务端11判断所述请求中是否携带有用例标识。如果请求中携带有用例标识,则说明该请求为mock请求,于是执行步骤3a。
本申请一个实施例中,mock请求中的用例标识可预先通过埋点的方式埋入所述mock请求中。所述的埋点例如可以通过工具类实现,这样就不用针对mock逻辑实现编写相应的代码,从而节省了这部分代码的开发成本和维护成本。
本申请一个实施例中,对于应用服务端11而言,用例标识可以用来区分收到的请求是mock请求还是业务请求,从而实现了线上mock测试和正常业务的隔离。
本申请一个实施例中,对于mock服务端12而言,用例标识还可以用来区分各个mock请求,以便于mock服务端12可根据各个用例标识为对应的mock请求选择对应的mock对象,从而可以有效支持多并发场景的mock测试。
步骤3a、所述应用服务端11将携带有用例标识的请求传送给mock服务端12。
步骤4a、所述mock服务端12在接收到所述应用服务端11提供的携带有用例标识的mock请求后,根据所述用例标识从内置的mock对象集合中匹配对应的mock对象;然后基于所述mock对象模拟处理所述mock请求,得到mock响应。
步骤5a、所述mock服务端12将所述mock响应提供给所述应用服务端11。
步骤6a、所述应用服务端11在接收到所述mock服务端12提供的所述mock响应后,将其作为所述mock请求的响应返回给请求发送方。
本申请实施例中,在步骤2之后,还可以包括如下步骤:
步骤3b、当所述应用服务端11接收到的是未携带有用例标识的请求时,则表明该请求为正常的业务请求。于是,所述应用服务端11可以根据预设的业务逻辑处理所述业务请求,得到业务结果。
步骤4b、所述应用服务端11将所述业务结果封装成业务相应返回给请求发送方。
本申请实例中,由于mock服务端是通过动态注入的方式预存于待测应用服务器中,因此,本申请实例不需要额外的服务器来部署mock服务端,也不需要修改待测应用系统的代码;从而实现了在不影响待测应用系统正常运行同时,利用待测应用系统实现线上mock测试,且mock测试成本低。此外,本申请实例中,通过用例标识可以用来区分收到的请求是mock请求还是业务请求,从而实现了线上mock测试和正常业务的隔离;并且通过用例标识还可以用来区分各个mock请求,因而本申请实例可以有效支持多并发场景的mock测试。
参考图5所示,本申请实施例的线上mock测试方法可以包括以下步骤:
步骤S501、当接收到携带有用例标识的请求时,向所述mock服务端提供所述请求。
步骤S502、在收到所述mock服务端提供的mock响应时,将所述mock响应作为所述请求的响应返回。
本申请实施例的线上mock测试方法中的各个步骤的具体细节请参见图4所示的应用服务端11和mock服务端12的交互流程,在此不再赘述。
本申请实例中,由于mock服务端是通过动态注入的方式预存于待测应用服务器中,因此,本申请实例不需要额外的服务器来部署mock服务端,也不需要修改待测应用系统的代码;从而实现了在不影响待测应用系统正常运行同时,利用待测应用系统进行线上mock测试,降低了mock测试成本,提高了mock测试效率。此外,本申请实例中,通过用例标识可以用来区分收到的请求是mock请求还是业务请求,从而实现了线上mock测试和正常业务的隔离;并且通过用例标识还可以用来区分各个mock请求,因而本申请实例可以有效支持多并发场景的mock测试。
参考图6所示,本申请实施例的线上mock测试方法可以包括以下步骤:
步骤S601、接收应用服务端提供的携带有用例标识的请求;
步骤S602、根据所述用例标识从内置的mock对象集合中匹配对应的mock对象;
步骤S603、基于所述mock对象模拟处理所述请求,并将处理后得到的mock响应提供给所述应用服务端。
本申请实施例的线上mock测试方法中的各个步骤的具体细节请参见图4所示的应用服务端11和mock服务端12的交互流程,在此不再赘述。
本申请实例中,由于mock服务端是通过动态注入的方式预存于待测应用服务器中,因此,本申请实例不需要额外的服务器来部署mock服务端,也不需要修改待测应用系统的代码;从而实现了在不影响待测应用系统正常运行同时,利用待测应用系统进行线上mock测试,降低了mock测试成本,提高了mock测试效率。此外,本申请实例中,通过用例标识可以用来区分收到的请求是mock请求还是业务请求,从而实现了线上mock测试和正常业务的隔离;并且通过用例标识还可以用来区分各个mock请求,因而本申请实例可以有效支持多并发场景的mock测试。
虽然以上方法实施例描述的过程流程包括以特定顺序出现的多个操作,但是,应当清楚了解,这些过程可以包括更多或更少的操作,这些操作可以顺序执行或并行执行(例如使用并行处理器或多线程环境)。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述的具体实施例,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请实施例的具体实施例而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (13)

1.一种线上mock测试系统,其特征在于,包括待测应用服务器,所述待测应用服务器包括应用服务端、预先动态注入至所述待测应用服务器内的mock服务端、以及预先部署至所述待测应用服务器内的动态注入代理模块,其中:
应用服务端,用于接收请求;当所述请求携带有用例标识时,向所述mock服务端提供所述请求;在收到所述mock服务端提供的mock响应时,将所述mock响应作为所述请求的响应返回;当所述请求未携带用例标识时,根据预设的业务逻辑处理所述请求,得到业务结果;将所述业务结果作为所述请求的响应返回;
mock服务端,用于根据所述用例标识从内置的mock对象集合中匹配对应的mock对象,基于所述mock对象模拟处理所述请求,并将处理后得到的mock响应提供给所述应用服务端;
所述动态注入代理模块,用于在接收到注入指令后,将所述mock服务端注入至所述待测应用服务器中,以及在接收到还原指令后,删除所述mock服务端。
2.根据权利要求1所述的线上mock测试系统,其特征在于,所述请求是通过上下文透传方式传输至所述应用服务端的。
3.根据权利要求1所述的线上mock测试系统,其特征在于,所述用例标识预先通过埋点的方式埋入所述请求中。
4.根据权利要求1所述的线上mock测试系统,其特征在于,所述mock服务端预先通过预设平台发送至所述动态注入代理模块。
5.根据权利要求4所述的线上mock测试系统,其特征在于,所述预设平台包括:
集成开发环境IDE平台,或者mock平台。
6.一种线上mock测试方法,其特征在于,应用于应用服务端,包括以下步骤:
接收请求;
当所述请求携带有用例标识时,向mock服务端提供所述请求;在收到所述mock服务端提供的mock响应时,将所述mock响应作为所述请求的响应返回;其中,所述mock服务端是预先动态注入至待测应用服务器内的,所述待测应用服务器包括所述应用服务端和所述mock服务端;
当所述请求未携带用例标识时,根据预设的业务逻辑处理所述请求,得到业务结果;将所述业务结果作为所述请求的响应返回。
7.根据权利要求6所述的线上mock测试方法,其特征在于,所述请求是通过上下文透传方式传输至所述应用服务端的。
8.根据权利要求6所述的线上mock测试方法,其特征在于,所述用例标识预先通过埋点的方式埋入所述请求中。
9.一种应用服务端,其特征在于,包括:
接收模块,用于接收请求;
请求转发模块,用于当所述请求携带有用例标识时,向mock服务端提供所述请求;其中,所述mock服务端是预先动态注入至待测应用服务器内的,所述待测应用服务器包括所述应用服务端和所述mock服务端;
第一响应返回模块,用于在收到所述mock服务端提供的mock响应时,将所述mock响应作为所述请求的响应返回;
处理模块,用于当所述请求未携带用例标识时,根据预设的业务逻辑处理所述请求,得到业务结果;
第二响应返回模块,用于将所述业务结果作为所述请求的响应返回。
10.一种线上mock测试方法,其特征在于,应用于mock服务端,所述mock服务端以动态注入的方式设置于待测应用服务器,所述方法包括以下步骤:
接收应用服务端提供的携带有用例标识的请求;
根据所述用例标识从内置的mock对象集合中匹配对应的mock对象;
基于所述mock对象模拟处理所述请求,并将处理后得到的mock响应提供给所述应用服务端。
11.根据权利要求10所述的线上mock测试方法,其特征在于,所述请求是通过上下文透传方式传输至所述应用服务端的。
12.根据权利要求10所述的线上mock测试方法,其特征在于,所述用例标识预先通过埋点的方式埋入所述请求中。
13.一种mock服务端,其特征在于,所述mock服务端以动态注入的方式设置于待测应用服务器,所述mock服务端包括:
请求接收模块,用于接收应用服务端提供的携带有用例标识的请求;
对象匹配模块,用于根据所述用例标识从内置的mock对象集合中匹配对应的mock对象;
业务模拟模块,用于基于所述mock对象模拟处理所述请求,并将处理后得到的mock响应提供给所述应用服务端。
CN201710015723.2A 2017-01-10 2017-01-10 线上mock测试方法、装置及系统 Active CN106970873B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710015723.2A CN106970873B (zh) 2017-01-10 2017-01-10 线上mock测试方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710015723.2A CN106970873B (zh) 2017-01-10 2017-01-10 线上mock测试方法、装置及系统

Publications (2)

Publication Number Publication Date
CN106970873A CN106970873A (zh) 2017-07-21
CN106970873B true CN106970873B (zh) 2021-07-09

Family

ID=59334467

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710015723.2A Active CN106970873B (zh) 2017-01-10 2017-01-10 线上mock测试方法、装置及系统

Country Status (1)

Country Link
CN (1) CN106970873B (zh)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107395420B (zh) * 2017-07-26 2020-11-24 携程计算机技术(上海)有限公司 服务端性能测试方法、系统、电子装置及存储介质
CN107733866A (zh) * 2017-09-12 2018-02-23 阿里巴巴集团控股有限公司 Rpc请求、rpc请求处理方法、装置以及设备
CN107832218B (zh) * 2017-11-10 2019-03-12 平安科技(深圳)有限公司 动态页面中的埋点处理方法、装置和计算机设备
CN107977316B (zh) * 2017-12-21 2021-08-31 创新先进技术有限公司 一种模拟远程过程调用的方法、客户端及系统
CN108345535B (zh) * 2017-12-26 2022-03-04 创新先进技术有限公司 mock测试方法、装置及设备
CN110032454B (zh) * 2018-01-12 2024-08-20 北京京东尚科信息技术有限公司 远程调用方法、系统和相关设备及计算机可读存储介质
CN108170612B (zh) * 2018-01-23 2021-01-15 百度在线网络技术(北京)有限公司 一种自动化测试方法、装置及服务器
CN108427644A (zh) * 2018-03-27 2018-08-21 深圳市买买提信息科技有限公司 服务测试方法、服务测试系统及服务测试装置
CN108600255B (zh) * 2018-05-07 2022-02-01 平安普惠企业管理有限公司 Mock服务管理方法、装置、计算机设备以及存储介质
CN110851468A (zh) * 2018-08-01 2020-02-28 北京京东尚科信息技术有限公司 对客户端的测试请求做出模拟响应的方法和装置
CN109101430B (zh) * 2018-08-24 2022-08-09 创新先进技术有限公司 测试方法、装置和设备
CN109359149B (zh) * 2018-10-08 2021-03-05 网宿科技股份有限公司 一种模拟测试方法及相关装置
CN109344075A (zh) * 2018-10-19 2019-02-15 网宿科技股份有限公司 配置方法、测试方法、配置服务器及服务节点设备
CN111382062B (zh) * 2018-12-30 2023-09-15 贝壳技术有限公司 房产交易系统和外部机构业务系统的联调测试方法及装置
CN111625442B (zh) * 2019-02-28 2024-03-26 顺丰科技有限公司 一种mock测试的方法和装置
CN111722995B (zh) * 2019-03-18 2023-08-15 杭州淘票票影视文化有限公司 一种数据处理方法及装置
CN110191013A (zh) * 2019-04-19 2019-08-30 深圳壹账通智能科技有限公司 电子装置、多资方接口的Mock测试方法及存储介质
CN110362472A (zh) * 2019-05-31 2019-10-22 口碑(上海)信息技术有限公司 Mock测试方法、装置及设备
CN111198824B (zh) * 2019-07-17 2022-03-25 广州市有车以后信息科技有限公司 一种基于中间人代理技术的mock测试装置
CN110532184B (zh) * 2019-08-29 2023-06-30 深圳前海环融联易信息科技服务有限公司 多场景模拟响应的方法、装置、计算机设备及存储介质
CN111367792A (zh) * 2020-02-24 2020-07-03 天津满运软件科技有限公司 一种测试方法、装置、存储介质及电子设备
CN113535538B (zh) * 2020-04-21 2023-06-16 网联清算有限公司 应用全链路自动化测试方法、装置、电子设备和存储介质
CN111752837B (zh) * 2020-06-24 2024-01-12 北京百度网讯科技有限公司 视图库系统测试方法、装置、设备以及存储介质
CN111782535B (zh) * 2020-06-30 2024-05-17 京东科技控股股份有限公司 测试方法及装置
CN113760701A (zh) * 2020-08-14 2021-12-07 北京沃东天骏信息技术有限公司 测试处理方法及装置
CN112052172B (zh) * 2020-09-04 2024-01-30 云账户技术(天津)有限公司 第三方通道的快速测试方法、装置和电子设备
CN113760707A (zh) * 2020-09-23 2021-12-07 北京沃东天骏信息技术有限公司 接口测试方法、装置、设备及计算机可读存储介质
CN112306864A (zh) * 2020-10-19 2021-02-02 北京健康之家科技有限公司 基于微服务的Mock测试方法和系统、存储介质、计算设备
CN113536178B (zh) * 2021-06-04 2024-04-12 贝壳找房(北京)科技有限公司 页面数据生成方法、装置、电子介质及存储介质
CN114490336A (zh) * 2021-12-28 2022-05-13 阿里云计算有限公司 一种联调测试方法、接入系统、前端及存储介质
CN114448857B (zh) * 2022-01-29 2024-06-18 北京字节跳动网络技术有限公司 Mock服务处理方法、装置、存储介质和系统
CN114928556B (zh) * 2022-03-22 2024-04-30 中国人寿保险股份有限公司 接口服务的测试方法及相关设备
CN116016271A (zh) * 2023-01-04 2023-04-25 厦门友微科技有限公司 一种基于微服务网关mock测试方法、装置及存储介质
CN116303062B (zh) * 2023-03-27 2023-12-19 广州钛动科技股份有限公司 服务接口的测试方法、装置、终端设备和可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104899142A (zh) * 2015-06-10 2015-09-09 北京嘀嘀无限科技发展有限公司 一种远程mock测试方法及装置
CN105138448A (zh) * 2014-06-05 2015-12-09 北京畅游天下网络技术有限公司 一种在前端测试页面的方法和装置
CN105335281A (zh) * 2014-07-30 2016-02-17 阿里巴巴集团控股有限公司 一种自动mock外部依赖的方法及装置
CN106294106A (zh) * 2015-05-27 2017-01-04 航天信息股份有限公司 Web应用系统的测试方法及装置
CN106294113A (zh) * 2015-06-03 2017-01-04 阿里巴巴集团控股有限公司 一种基于可编程式测试服务的创建方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9396091B2 (en) * 2014-09-29 2016-07-19 Sap Se End-to end, lifecycle aware, API management

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105138448A (zh) * 2014-06-05 2015-12-09 北京畅游天下网络技术有限公司 一种在前端测试页面的方法和装置
CN105335281A (zh) * 2014-07-30 2016-02-17 阿里巴巴集团控股有限公司 一种自动mock外部依赖的方法及装置
CN106294106A (zh) * 2015-05-27 2017-01-04 航天信息股份有限公司 Web应用系统的测试方法及装置
CN106294113A (zh) * 2015-06-03 2017-01-04 阿里巴巴集团控股有限公司 一种基于可编程式测试服务的创建方法及装置
CN104899142A (zh) * 2015-06-10 2015-09-09 北京嘀嘀无限科技发展有限公司 一种远程mock测试方法及装置

Also Published As

Publication number Publication date
CN106970873A (zh) 2017-07-21

Similar Documents

Publication Publication Date Title
CN106970873B (zh) 线上mock测试方法、装置及系统
CN108345535B (zh) mock测试方法、装置及设备
CN103177210B (zh) 一种在Android中植入动态污点分析模块的方法
CN106909498B (zh) 一种Java程序注入故障的方法和系统
CN109542506B (zh) 一种可灵活配置接口和快速交付服务的系统
CN111399840B (zh) 一种模块开发方法及装置
CN107203465B (zh) 系统接口测试方法及装置
CN108268289B (zh) web应用的参数配置方法、装置及系统
CN107357726A (zh) 一种应用程序兼容性测试方法和装置
CN108400902B (zh) 一种灰度测试的方法、装置及设备
CN107479868B (zh) 一种界面加载方法、装置及设备
CN109241026A (zh) 数据管理的方法、装置及系统
CN112597013A (zh) 一种在线开发以及调试方法及装置
CN111159040A (zh) 一种测试数据生成方法、装置、设备及存储介质
CN107733866A (zh) Rpc请求、rpc请求处理方法、装置以及设备
CN109284222B (zh) 软件单元、数据处理系统中的项目测试方法、装置及设备
CN110046052A (zh) 一种服务调用方法及装置
CN111796864A (zh) 一种数据校验的方法及装置
CN110471828B (zh) 一种操作系统测试方法、装置及其设备
CN107451050B (zh) 函数获取方法和装置、服务器
CN111399926A (zh) 下载启动程序的方法和装置
CN114238934A (zh) 一种设备信息获取方法、装置、设备及介质
CN109144575A (zh) 跨操作系统运行应用的装置、方法、电子设备和存储器
CN107391223B (zh) 一种文件处理方法及装置
CN112328213B (zh) 一种在线软件开发过程的隔离方法、设备及介质

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20201016

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20201016

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: Greater Cayman, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220415

Address after: Room 602, No. 618 Wai Road, Huangpu District, Shanghai

Patentee after: Ant fortune (Shanghai) Financial Information Service Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Innovative advanced technology Co.,Ltd.