CN112306864A - 基于微服务的Mock测试方法和系统、存储介质、计算设备 - Google Patents

基于微服务的Mock测试方法和系统、存储介质、计算设备 Download PDF

Info

Publication number
CN112306864A
CN112306864A CN202011116641.5A CN202011116641A CN112306864A CN 112306864 A CN112306864 A CN 112306864A CN 202011116641 A CN202011116641 A CN 202011116641A CN 112306864 A CN112306864 A CN 112306864A
Authority
CN
China
Prior art keywords
service
mock
request
microservice
calling request
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
Application number
CN202011116641.5A
Other languages
English (en)
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.)
Beijing Absolute Health Ltd
Original Assignee
Beijing Absolute Health 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 Beijing Absolute Health Ltd filed Critical Beijing Absolute Health Ltd
Priority to CN202011116641.5A priority Critical patent/CN112306864A/zh
Publication of CN112306864A publication Critical patent/CN112306864A/zh
Pending legal-status Critical Current

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Abstract

本发明公开了一种基于微服务的Mock测试方法和系统、存储介质、计算设备,该方法包括:接收针对微服务的第一服务调用请求;判断第一服务调用请求中是否携带有预设的Mock标识;若第一服务调用请求中携带有Mock标识,则将第一服务调用请求转发至预先搭建的Mock测试平台,通过Mock测试平台基于第一服务调用请求进行Mock测试。基于本发明提供的方法,只针对携带有预设的Mock标识的服务调用请求,才会将其转发至Mock测试平台进行Mock测试,无需测试人员修改后端代码即可有效提升微服务环境中Mock测试平台中Mock接口的使用效率,从而有效提升整体Mock测试效率。

Description

基于微服务的Mock测试方法和系统、存储介质、计算设备
技术领域
本发明涉及测试技术领域,尤其是一种基于微服务的Mock测试方法和系统、存储介质、计算设备。
背景技术
Mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。在Mock测试中,一个接口往往需要依赖于其他接口的返回值。
伴随着微服务化的进程,单体服务越来越小,服务之间的远程调用错综复杂,服务依赖关系变得十分复杂。进行服务调用的Mock测试时,通常是对需要被远程服务调用的方法设置Mock注解,用于标记在该类中包含有远程调用的方法,设置用于拦截所有远程调用AOP方法的拦截类,根据被调用的AOP方法是否允许被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测试平台;
所述Mock测试平台,适于基于所述第二服务调用请求进行Mock测试。
可选地,所述请求处理模块,还适于:获取所述微服务的服务调用链,识别所述服务调用链上的至少一个目标微服务;
基于所述微服务和所述目标微服务之前的调用关系和/或多个所述目标微服务之间的调用关系获取第二服务调用请求。
可选地,所述系统还包括:搭建模块,适于搭建Mock测试平台;
获取预设的Mock生效规则以及Mock数据,将所述Mock生效规则以及Mock数据存储至数据库。
可选地,所述请求处理模块,还适于:当所述第一服务调用请求中未携带有所述Mock标识时,将所述第一服务调用请求转发至所述微服务的服务端。
根据本发明的又一个方面,还提供了一种计算机可读存储介质所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行上述任一项所述的基于微服务的Mock测试方法。
根据本发明的又一个方面,还提供了一种计算设备,所述计算设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行上述任一项所述的基于微服务的Mock测试方法。
本发明提供了一种基于微服务的Mock测试方法和系统、存储介质、计算设备,在本发明提供的方法中接收到针对微服务的服务调用请求后,先判断其是否携带有预设的Mock标识,只有在判断出其携带有Mock标识之后才会将其转发至Mock测试平台进行Mock测试。基于本发明提供的方法,只针对携带有预设的Mock标识的服务调用请求,才会将其转发至Mock测试平台进行Mock测试,无需测试人员修改后端代码即可有效提升微服务环境中Mock测试平台中Mock接口的使用效率,从而有效提升整体Mock测试效率。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
构成说明书的一部分的附图描述了本发明的实施例,并且连同描述一起用于解释本发明的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:
图1示出了本发明一实施例提供的基于微服务的Mock测试方法流程示意图;
图2示出了本发明实施例的Mock生效规则获取界面示意图;
图3示出了本发明另一实施例提供的基于微服务的Mock测试方法流程示意图;
图4示出了本发明又一实施例提供的基于微服务的Mock测试系统结构示意图;
图5示出了本发明又一实施例提供的基于微服务的Mock测试方法流程示意图;
图6示出了本发明一实施例提供的基于微服务的Mock测试系统结构示意图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本发明实施例可以应用于计算机系统/服务器,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
计算机系统/服务器可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
图1示出了本发明实施例提供的基于微服务的Mock测试方法流程示意图,参见图1可知,本发明实施例提供的基于微服务的Mock测试方法至少可以包括以下步骤S102~步骤S106。
步骤S102,接收针对微服务的第一服务调用请求。
微服务是一种用于构建应用的架构方案。微服务架构有别于更为传统的单体式方案,可将应用拆分成多个核心功能。每个功能都被称为一项服务,可以单独构建和部署,各项服务都运行在自已的进程中,服务之间可采用轻量级的HTTP通信机制(通常是采用HTTP的RESTful API)进行通信。这些服务都是围绕具体业务进行构建的,并且可以独立部署到生产环境上。这些服务可以用不同的编程语言编写,并且可以使用不同的数据存储技术。对这些微服务我们只需要使用一个非常轻量级的集中式管理来进行协调。
在一个业务处理流程中,需要进行至少一次服务调用,上述步骤S102的微服务可以是在任一业务系统中的任意一项服务,如物品下单中的订单服务,商品服务,购物车服务,账户服务,支付服务等等,具体可根据不同的业务环境以及业务类型进行设置,本发明对此不做限定。
步骤S104,判断第一服务调用请求中是否携带有预设的Mock标识;
在本实施例中,Mock标识是用于确定需要对第一服务调用请求进行Mock测试的标识,该Mock标识可以根据不同的环境进行设置,如在“x-mock”这一http header作为Mock标识。
本发明实施例提及的第一服务调用请求是正常的针对服务的请求地址,服务调用请求中的Mock标识可以由调用方进行添加。举例来讲,传统的服务调用请求可以为url/api/user:服务A->服务B,那么本实施例提供的服务调用请求可以为url/api/user加上x-mock,服务A->Mock测试平台。
步骤S106,若第一服务调用请求中携带有Mock标识,则将第一服务调用请求转发至预先搭建的Mock测试平台,通过Mock测试平台基于第一服务调用请求进行Mock测试。
如果识别出第一服务调用请求中携带有Mock标识,那么可以将该第一服务调用请求转发至预先搭建的Mock测试平台,由Mock测试平台执行Mock测试。
从另一方面来讲,若第一服务调用请求中未携带有Mock标识,则执行步骤S108将第一服务调用请求转发至微服务的服务端,即微服务的真实服务端。也就是说,如果第一服务调用请求中未携带有Mock标识,那么就会将该第一服务调用请求转发至真正的服务端。
基于本发明实施例提供的方法,在识别出第一服务调用请求中携带有预设的Mock标识后,才会将第一服务调用请求自动转发至Mock测试平台进行Mock测试,从而简化了微服务中的Mock操作,提高Mock测试接口的使用效率。
Mock测试平台是单独搭建的用于模拟不同输入/数据/场景,进行Mock测试的平台,在本发明可选实施例中,上述步骤S102之前,还可以搭建Mock测试平台;获取预设的Mock生效规则以及Mock数据,将Mock生效规则以及Mock数据存储至数据库。Mock测试平台可以设置有可被调用的Mock接口,通过该Mock接口可接收服务调用请求以进行相应的Mock测试。
其中,Mock生效规则是在Mock测试平台配置的使Mock生效的相关规则,假如要使http request中含有code=1时mock规则生效,则根据jsonPath的语法配置的规则为$.code=1。图2示出了Mock生效规则的获取界面示意图,Mock生效规则基于搭建的Mock测试平台进行获取,如创建Mock生效规则设置界面,以基于该设置界面获取Mock生效规则,如code字段、msg字段以及data字段、id字段、user字段等相关数据,各个数据可以采用导入的方式,也可以直接输入。实际应用中,Mock生效规则可以根据不同的应用场景进行设置,本发明对此不做限定。
对于Mock数据来讲,在业务上面,Mock数据主要可以包括基于服务调用请求进行Mock测试时的返回数据,其主要是提前编译的json数据,如下所示:
Figure BDA0002730509470000081
在获取到Mock生效规则以及Mock数据之后,即可将其存储至数据库中,并记录Mock数据以及Mock生效规则的存储地址(如url地址),以便于后期获取Mock数据或是Mock生效规则时,可以基于各自所对应的存储地址获取对应的数据。其中,存储Mock数据以及Mock生效规则的数据库可以是Mock测试平台用于数据存储的数据库,数据库类型可根据不同需求进行设置,本发明对此不做限定。
在本发明可选实施例中,上述步骤S106通过Mock测试平台处理第一服务调用请求时,可以先通过Mock测试平台解析第一服务调用请求中携带的请求参数,并基于请求参数组合生成服务请求文件;再判断服务请求文件是否符合预设的Mock生效规则;最后,若服务请求文件符合预设的Mock生效规则,则通过Mock测试平台进行Mock测试,并返回第一服务调用请求的Mock数据。另外,若服务请求文件不符合预设的Mock生效规则,则将第一服务调用请求转发至微服务的服务端。
前文介绍,搭建Mock测试平台时,会同时获取到Mock生效规则存入数据库中,因此,在Mock服务平台处理第一服务调用请求时,先解析出第一服务调用请求中携带的请求参数,如header,请求头;query param,是指请求的参数,一般是指URL中“?”之后的参数;form-data,表单数据;json-body,是指请求体中的数据等等。解析获取到请求参数之后,就可以将其组合生成服务请求文件,其中,服务请求文件可以为json文件。在本发明实施例中,http中header、query param、form-data为key-value形式,json-body也可以转化为key-value形式。将所有key-value形式的参数组合一起,就可以形成一个json文件。
进一步地,生成服务请求文件之后,可以通过URL查询所配置的Mock生效规则,判断服务请求文件是否符合Mock生效规则。上述实施例提及,Mock生效规则可以是根据jsonPath的语法配置的规则为$.code=1,那么,可以判断服务请求文件是否符合code=1的规则,若符合,则进行Mock测试并返回相应的Mock数据,若不符合,将服务调用请求转发至真实的微服务。
实际应用中,处于微服务环境下,单个服务无法满足业务流程需求,此时服务需要通过远程调用,单个接口的Mock已经不能满足现在调用链式的服务体系。在本发明可选实施例中,如图3所示,在步骤S102接收针对微服务的第一服务调用请求之后,还可以包括步骤S110~S116。
步骤S110,获取微服务的服务调用链,识别服务调用链上的至少一个第二服务调用请求。可选地,可以获取微服务的服务调用链,识别服务调用链上的至少一个目标微服务;基于微服务和目标微服务之前的调用关系和/或多个目标微服务之间的调用关系获取至少一个第二服务调用请求。
举例来讲,假设一个http请求调用服务A,服务A又调用服务B,属于微服务A的服务调用链,服务B作为服务调用链上目标微服务,此时可以根据服务A和服务B的调用关系获取第二服务调用请求。
另外,假设服务B又调用服务C,此时,服务B也属于目标服务,服务B和服务C作为相邻的两个目标微服务的调用关系获取第二服务调用请求。
步骤S112,通过服务网格判断第二服务调用请求中是否携带Mock标识。其中,服务网格可以为Istio,以进行网络请求转发实现服务调用链中指定节点的Mock测试。Istio提供一种简单的方式来为已部署的服务建立网络,该网络具有负载均衡、服务间认证、监控等功能,通过对微服务构造服务网格,可以对服务的流量进行控制。
步骤S114,若第二服务调用请求中携带Mock标识,则将第二服务调用请求转发至Mock测试平台,通过Mock测试平台基于第二服务调用请求进行Mock测试。
本发明实施例中,通过服务网格判断在第二服务调用请求是否携带预设的Mock标识,例如可以判断第二服务调用请求中是否携带x-mock这一http header作为Mock标识,当第二服务请求中携带Mock标识时,可以将对应的第二服务请求转发至Mock测试平台。
可选地,可以预先在服务网格中配置逻辑规则,使得服务网格在接收到任一第二服务调用请求后,可直接将携带有Mock标识的第二服务调用请求转发至Mock测试平台,通过Mock测试平台进行Mock测试。如上所述,当Mock测试平台接收到携带有Mock标识的第二服务调用请求后,还会解析携带有Mock标识的第二服务调用请求中携带的请求参数,并基于请求参数组合生成服务请求文件;再判断服务请求文件是否符合预设的Mock生效规则;最后,若服务请求文件符合预设的Mock生效规则,则通过Mock测试平台进行Mock测试,并返回第二服务调用请求的Mock数据。另外,若服务请求文件不符合预设的Mock生效规则,则执行步骤S116,将第二服务调用请求转发至第二服务调用请求所请求的微服务的服务端,即第二服务调用请求所请求的真实服务端。
基于本发明实施例提供的方法,通过识别出微服务的服务调用链中的第二服务调用请求,并利用服务网格的路由功能具有Mock标识服务调动请求自动转发至Mock平台进行Mock测试,实现服务调用链路中指定调用请求的Mock测试,简化微服务中的Mock测试操作,提高了Mock测试接口的使用效率。
基于同一发明构思,本发明实施例还提供了一种基于微服务的Mock测试系统,如图4所示,该系统可以包括:
请求处理模块410,适于接收针对微服务的第一服务调用请求;判断第一服务调用请求中是否携带有预设的Mock标识;当第一服务调用请求中携带有Mock标识,则将第一服务调用请求转发至预先搭建的Mock测试平台420;
Mock测试平台420,适于基于第一服务调用请求进行Mock测试。
在本发明一可选实施例中,Mock测试平台420,还适于解析第一服务调用请求中携带的请求参数,并基于请求参数组合生成服务请求文件;
判断服务请求文件是否符合预设的Mock生效规则;
当服务请求文件符合预设的Mock生效规则时,通过Mock测试平台420进行Mock测试,并返回第一服务调用请求的Mock数据。
在本发明一可选实施例中,Mock测试平台420,还可以适于当判断服务请求文件不符合预设的Mock生效规则时,将第一服务调用请求转发至微服务的服务端。
在本发明一可选实施例中,请求处理模块410,还可以适于获取微服务的服务调用链上的至少一个第二服务调用请求;
通过服务网格判断第二服务调用请求中是否携带Mock标识;当第二服务调用请求中携带Mock标识时,将第二服务调用请求转发至Mock测试平台420;
Mock测试平台420,适于基于第二服务调用请求进行Mock测试。
在本发明一可选实施例中,请求处理模块410,还可以适于:获取微服务的服务调用链,识别服务调用链上的至少一个目标微服务;
基于微服务和目标微服务之前的调用关系和/或多个目标微服务之间的调用关系获取第二服务调用请求。
在本发明一可选实施例中,如图5所示,上述系统还可以包括:
搭建模块430,适于搭建Mock测试平台420;
获取预设的Mock生效规则以及Mock数据,将Mock生效规则以及Mock数据存储至数据库。
在本发明一可选实施例中,请求处理模块410还可以适于:当第一服务调用请求中未携带有Mock标识时,将第一服务调用请求转发至微服务的服务端。
图6示出了本发明实施例提供的基于微服务的Mock测试方法流程示意图结构示意图,参见图6可知,本发明实施例提供的方法中,以接收http请求调用微服务A为例,其中,微服务A的服务调用链可以包括:微服务A->微服务B->微服务C,该服务调用链中包含的服务调用请求可以包括:1)微服务A调用微服务B的服务调用请求;2)微服务B调用微服务C的服务调用请求,本发明实施例提供的基于微服务的Mock测试方法可以包括:
S1,接收针对微服务A的服务A调用请求;
S2,判断服务A调用请求中是否携带有标识“x-mock”,若是,则将服务A调用请求转发至Mock测试平台itest,通过Mock测试平台中的模拟服务A(即图中mock A)进行Mock测试;若否,则将服务A调用请求转发至真正的服务A;
S3,识别微服务A的服务调用链,即,微服务A调用微服务B的服务B调用请求;
S4,通过服务网格istio判断服务B调用请求是否携带标识“x-mock”,若是,则将服务B调用请求转发至Mock测试平台itest,通过Mock测试平台中的mock B进行Mock测试;若否,则将服务B调用请求转发至真正的微服务B;
S5,识别微服务B的服务调用链,即,微服务B调用微服务C的服务C调用请求;
S6,通过服务网格istio判断服务C调用请求是否携带标识“x-mock”,若是,则将服务C调用请求转发至Mock测试平台itest;若否,则将服务C调用请求转发至真正的微服务C。
在本发明实施例中,Mock测试平台接收到服务A调用请求、服务B调用请求、服务C调用请求中任一调用请求后,均会解析服务请求中的请求参数,并基于请求参数组合生成服务请求文件;再判断服务请求文件是否符合“code=1”的Mock生效规则;若符合,则通过Mock测试平台进行Mock测试,并返回Mock数据。若不符合,在将服务请求转发至于服务请求对应的真实的服务平台。
基于本发明实施例提供的Mock测试方法,在服务调用链路中,通过简单配置Mock标识,同时结合服务网格istio具备路由功能,从而可以在微服务环境中错综复杂的服务调用请求中有效识别出可执行Mock测试的调用请求,并转发至Mock测试平台,从而在复杂的调用关系中提供多个接口,简化了在微服务中的Mock操作,提高了Mock测试接口的使用效率。
本发明可选实施例还提供了一种计算机可读存储介质,计算机可读存储介质用于存储程序代码,程序代码用于执行上述任一实施例所述的基于微服务的Mock测试方法。
本发明可选实施例还提供了一种计算设备,计算设备包括处理器以及存储器:存储器用于存储程序代码,并将程序代码传输给处理器;处理器用于根据程序代码中的指令执行上述任一实施例所述的基于微服务的Mock测试方法。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
可能以许多方式来实现本发明的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和系统。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
本发明实施例还包括在下列编号条款中规定的这些和其他方面:
1、一种基于微服务的Mock测试方法,包括:
接收针对微服务的第一服务调用请求;
判断所述第一服务调用请求中是否携带有预设的Mock标识;
若所述第一服务调用请求中携带有所述Mock标识,则将所述第一服务调用请求转发至预先搭建的Mock测试平台,通过所述Mock测试平台基于所述第一服务调用请求进行Mock测试。
2、根据条款1所述的方法,所述通过所述Mock测试平台基于所述第一服务调用请求进行Mock测试,包括:
通过所述Mock测试平台解析所述第一服务调用请求中携带的请求参数,并基于所述请求参数组合生成服务请求文件;
判断所述服务请求文件是否符合预设的Mock生效规则;
若判断所述服务请求文件符合预设的Mock生效规则,则通过所述Mock测试平台进行Mock测试,并返回所述第一服务调用请求的Mock数据。
3、根据条款2所述的方法,所述判断所述服务请求文件是否符合预设的Mock生效规则之后,还包括:
若判断所述服务请求文件不符合预设的Mock生效规则,则将所述第一服务调用请求转发至所述微服务的服务端。
4、根据条款1所述的方法,所述接收针对微服务的第一服务调用请求之后,还包括:
获取所述微服务的服务调用链上的至少一个第二服务调用请求;
通过服务网格判断所述第二服务调用请求中是否携带所述Mock标识;
若第二服务调用请求中携带所述Mock标识,则将所述第二服务调用请求转发至所述Mock测试平台,通过所述Mock测试平台基于所述第二服务调用请求进行Mock测试。
5、根据条款4所述的方法,所述获取所述微服务的服务调用链上的至少一个第二服务调用请求,包括:
获取所述微服务的服务调用链,识别所述服务调用链上的至少一个目标微服务;
基于所述微服务和所述目标微服务之前的调用关系和/或多个所述目标微服务之间的调用关系获取至少一个第二服务调用请求。
6、根据条款1-5任一项所述的方法,所述接收针对微服务的第一服务调用请求之前,还包括:
搭建Mock测试平台;
获取预设的Mock生效规则以及Mock数据,将所述Mock生效规则以及Mock数据存储至数据库。
7、根据条款1-5任一项所述的方法,所述判断所述第一服务调用请求中是否携带有预设Mock标识之后,还包括:
若所述第一服务调用请求中未携带有所述Mock标识,则将所述第一服务调用请求转发至所述微服务的服务端。
8、一种基于微服务的Mock测试系统,包括:
请求处理模块,适于接收针对微服务的第一服务调用请求;判断所述第一服务调用请求中是否携带有预设的Mock标识;当所述第一服务调用请求中携带有所述Mock标识,则将所述第一服务调用请求转发至预先搭建的Mock测试平台;
Mock测试平台,适于基于所述第一服务调用请求进行Mock测试。
9、根据条款8所述的系统,
所述Mock测试平台,还适于解析所述第一服务调用请求中携带的请求参数,并基于所述请求参数组合生成服务请求文件;
判断所述服务请求文件是否符合预设的Mock生效规则;
当所述服务请求文件符合预设的Mock生效规则时,通过所述Mock测试平台进行Mock测试,并返回所述第一服务调用请求的Mock数据。
10、根据条款9所述的系统,
所述Mock测试平台,还适于当判断所述服务请求文件不符合预设的Mock生效规则时,将所述第一服务调用请求转发至所述微服务的服务端。
11、根据条款8所述的系统,
所述请求处理模块,还适于获取所述微服务的服务调用链上的至少一个第二服务调用请求;
通过服务网格判断所述第二服务调用请求中是否携带所述Mock标识;当第二服务调用请求中携带所述Mock标识时,将所述第二服务调用请求转发至所述Mock测试平台;
所述Mock测试平台,适于基于所述第二服务调用请求进行Mock测试。
12、根据条款11所述的系统,
所述请求处理模块,还适于:获取所述微服务的服务调用链,识别所述服务调用链上的至少一个目标微服务;
基于所述微服务和所述目标微服务之前的调用关系和/或多个所述目标微服务之间的调用关系获取第二服务调用请求。
13、根据条款11所述的系统,所述系统还包括:
搭建模块,适于搭建Mock测试平台;
获取预设的Mock生效规则以及Mock数据,将所述Mock生效规则以及Mock数据存储至数据库。
14、根据条款11所述的系统,所述请求处理模块,还适于:当所述第一服务调用请求中未携带有所述Mock标识时,将所述第一服务调用请求转发至所述微服务的服务端。
15、一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行条款1-7任一项所述的基于微服务的Mock测试方法。
16、一种计算设备,所述计算设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行条款1-7任一项所述的基于微服务的Mock测试方法。

Claims (10)

1.一种基于微服务的Mock测试方法,其特征在于,包括:
接收针对微服务的第一服务调用请求;
判断所述第一服务调用请求中是否携带有预设的Mock标识;
若所述第一服务调用请求中携带有所述Mock标识,则将所述第一服务调用请求转发至预先搭建的Mock测试平台,通过所述Mock测试平台基于所述第一服务调用请求进行Mock测试。
2.根据权利要求1所述的方法,其特征在于,所述通过所述Mock测试平台基于所述第一服务调用请求进行Mock测试,包括:
通过所述Mock测试平台解析所述第一服务调用请求中携带的请求参数,并基于所述请求参数组合生成服务请求文件;
判断所述服务请求文件是否符合预设的Mock生效规则;
若判断所述服务请求文件符合预设的Mock生效规则,则通过所述Mock测试平台进行Mock测试,并返回所述第一服务调用请求的Mock数据。
3.根据权利要求2所述的方法,其特征在于,所述判断所述服务请求文件是否符合预设的Mock生效规则之后,还包括:
若判断所述服务请求文件不符合预设的Mock生效规则,则将所述第一服务调用请求转发至所述微服务的服务端。
4.根据权利要求1所述的方法,其特征在于,所述接收针对微服务的第一服务调用请求之后,还包括:
获取所述微服务的服务调用链上的至少一个第二服务调用请求;
通过服务网格判断所述第二服务调用请求中是否携带所述Mock标识;
若第二服务调用请求中携带所述Mock标识,则将所述第二服务调用请求转发至所述Mock测试平台,通过所述Mock测试平台基于所述第二服务调用请求进行Mock测试。
5.根据权利要求4所述的方法,其特征在于,所述获取所述微服务的服务调用链上的至少一个第二服务调用请求,包括:
获取所述微服务的服务调用链,识别所述服务调用链上的至少一个目标微服务;
基于所述微服务和所述目标微服务之前的调用关系和/或多个所述目标微服务之间的调用关系获取至少一个第二服务调用请求。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述接收针对微服务的第一服务调用请求之前,还包括:
搭建Mock测试平台;
获取预设的Mock生效规则以及Mock数据,将所述Mock生效规则以及Mock数据存储至数据库。
7.根据权利要求1-5任一项所述的方法,其特征在于,所述判断所述第一服务调用请求中是否携带有预设Mock标识之后,还包括:
若所述第一服务调用请求中未携带有所述Mock标识,则将所述第一服务调用请求转发至所述微服务的服务端。
8.一种基于微服务的Mock测试系统,其特征在于,包括:
请求处理模块,适于接收针对微服务的第一服务调用请求;判断所述第一服务调用请求中是否携带有预设的Mock标识;当所述第一服务调用请求中携带有所述Mock标识,则将所述第一服务调用请求转发至预先搭建的Mock测试平台;
Mock测试平台,适于基于所述第一服务调用请求进行Mock测试。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行权利要求1-7任一项所述的基于微服务的Mock测试方法。
10.一种计算设备,其特征在于,所述计算设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行权利要求1-7任一项所述的基于微服务的Mock测试方法。
CN202011116641.5A 2020-10-19 2020-10-19 基于微服务的Mock测试方法和系统、存储介质、计算设备 Pending CN112306864A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011116641.5A CN112306864A (zh) 2020-10-19 2020-10-19 基于微服务的Mock测试方法和系统、存储介质、计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011116641.5A CN112306864A (zh) 2020-10-19 2020-10-19 基于微服务的Mock测试方法和系统、存储介质、计算设备

Publications (1)

Publication Number Publication Date
CN112306864A true CN112306864A (zh) 2021-02-02

Family

ID=74327781

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011116641.5A Pending CN112306864A (zh) 2020-10-19 2020-10-19 基于微服务的Mock测试方法和系统、存储介质、计算设备

Country Status (1)

Country Link
CN (1) CN112306864A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113014506A (zh) * 2021-02-10 2021-06-22 中国工商银行股份有限公司 一种生产运维方法、装置及系统
CN113535351A (zh) * 2021-06-24 2021-10-22 四川新网银行股份有限公司 一种可扩展的异步服务mock方法
CN113672513A (zh) * 2021-08-23 2021-11-19 四川新网银行股份有限公司 一种自动生成测试挡板的系统及方法
CN114448857A (zh) * 2022-01-29 2022-05-06 北京字节跳动网络技术有限公司 Mock服务处理方法、装置、存储介质和系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106528400A (zh) * 2016-09-22 2017-03-22 深圳峰创智诚科技有限公司 Mock测试方法和装置
CN106970873A (zh) * 2017-01-10 2017-07-21 阿里巴巴集团控股有限公司 线上mock测试方法、装置及系统
CN107220169A (zh) * 2016-03-21 2017-09-29 阿里巴巴集团控股有限公司 一种模拟服务器返回定制化数据的方法和设备
CN107329890A (zh) * 2017-06-06 2017-11-07 北京金山安全软件有限公司 基于Mock的测试方法、装置及服务器
CN110147326A (zh) * 2019-05-23 2019-08-20 四川新网银行股份有限公司 基于Redis数据库的微服务自动化测试方法
CN111708702A (zh) * 2020-06-18 2020-09-25 深圳前海微众银行股份有限公司 模拟测试方法、客户端、服务端、系统与可读存储介质
CN111782535A (zh) * 2020-06-30 2020-10-16 京东数字科技控股股份有限公司 测试方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107220169A (zh) * 2016-03-21 2017-09-29 阿里巴巴集团控股有限公司 一种模拟服务器返回定制化数据的方法和设备
CN106528400A (zh) * 2016-09-22 2017-03-22 深圳峰创智诚科技有限公司 Mock测试方法和装置
CN106970873A (zh) * 2017-01-10 2017-07-21 阿里巴巴集团控股有限公司 线上mock测试方法、装置及系统
CN107329890A (zh) * 2017-06-06 2017-11-07 北京金山安全软件有限公司 基于Mock的测试方法、装置及服务器
CN110147326A (zh) * 2019-05-23 2019-08-20 四川新网银行股份有限公司 基于Redis数据库的微服务自动化测试方法
CN111708702A (zh) * 2020-06-18 2020-09-25 深圳前海微众银行股份有限公司 模拟测试方法、客户端、服务端、系统与可读存储介质
CN111782535A (zh) * 2020-06-30 2020-10-16 京东数字科技控股股份有限公司 测试方法及装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113014506A (zh) * 2021-02-10 2021-06-22 中国工商银行股份有限公司 一种生产运维方法、装置及系统
CN113014506B (zh) * 2021-02-10 2023-04-07 中国工商银行股份有限公司 一种生产运维方法、装置及系统
CN113535351A (zh) * 2021-06-24 2021-10-22 四川新网银行股份有限公司 一种可扩展的异步服务mock方法
CN113672513A (zh) * 2021-08-23 2021-11-19 四川新网银行股份有限公司 一种自动生成测试挡板的系统及方法
CN114448857A (zh) * 2022-01-29 2022-05-06 北京字节跳动网络技术有限公司 Mock服务处理方法、装置、存储介质和系统

Similar Documents

Publication Publication Date Title
CN112306864A (zh) 基于微服务的Mock测试方法和系统、存储介质、计算设备
EP3389219B1 (en) Access request conversion method and device
WO2020220638A1 (zh) 链路系统与日志系统的关联方法、装置及存储介质
US8793660B2 (en) Automated testing of programming code for a web service
US8141043B2 (en) Automated business process testing that spans multiple platforms or applications
US9229998B2 (en) Method and system for exchanging information between back-end and front-end systems
CN110275831B (zh) 协议接口的mock数据校验方法和装置
CN109150904A (zh) 接口服务调用方法及终端设备
CN103246606B (zh) Esb平台的性能测试方法和系统
CN111290742A (zh) 参数验证方法、装置、电子设备及可读存储介质
CN109871289A (zh) 一种远程过程调用rpc服务生成方法及装置
CN102137136A (zh) 实现业务聚合Mashup业务的方法、装置和设备
CN108984567A (zh) 一种业务数据管理系统及方法
CN110162464A (zh) Mcok测试方法及系统、电子设备及可读存储介质
CN110245029A (zh) 一种数据处理方法、装置、存储介质和服务器
WO2021008576A1 (zh) 上下文信息管理方法、装置、系统及计算机可读存储介质
CN112035344A (zh) 多场景测试方法、装置、设备和计算机可读存储介质
CN115016784B (zh) 低代码应用复用方法、应用解析系统、设备及存储介质
CN116700778B (zh) 接口差异分析方法、设备、存储介质及装置
CN113407511A (zh) 日志聚合方法、设备及计算机程序产品
CN113608746B (zh) 一种代码转换处理方法、装置、计算机设备和存储介质
CN112052152A (zh) 一种模拟测试的方法和装置
CN113485942A (zh) 一种基于独立模块的自动化测试方法及装置
CN114416776A (zh) 一种数据自定义查询统计方法
US8200713B2 (en) Database exploration for building wireless component applications

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 100102 201 / F, block C, 2 lizezhong 2nd Road, Chaoyang District, Beijing

Applicant after: Beijing Shuidi Technology Group Co.,Ltd.

Address before: 100102 201, 2 / F, block C, No.2 lizezhong 2nd Road, Chaoyang District, Beijing

Applicant before: Beijing Health Home Technology Co.,Ltd.