CN112765029A - 测试方法、装置、电子设备及计算机存储介质 - Google Patents
测试方法、装置、电子设备及计算机存储介质 Download PDFInfo
- Publication number
- CN112765029A CN112765029A CN202110088917.1A CN202110088917A CN112765029A CN 112765029 A CN112765029 A CN 112765029A CN 202110088917 A CN202110088917 A CN 202110088917A CN 112765029 A CN112765029 A CN 112765029A
- Authority
- CN
- China
- Prior art keywords
- baffle
- service
- pointer
- test
- service node
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 189
- 238000010998 test method Methods 0.000 title description 6
- 230000004888 barrier function Effects 0.000 claims description 36
- 238000000034 method Methods 0.000 claims description 32
- 238000012545 processing Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 8
- 238000007726 management method Methods 0.000 description 77
- 238000011161 development Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 238000013024 troubleshooting Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000005034 decoration Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000002513 implantation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3696—Methods or tools to render software testable
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例涉及测试技术领域,公开了一种测试方法、装置、电子设备及计算机存储介质,其中,测试方法包括:接收客户端发送的针对任一微服务的测试请求,任一微服务为真实服务和/或挡板服务,真实服务是包括测试链路中挡板指针指向的目标服务节点及位于挡板指针指向的目标服务节点之前的服务节点的服务,挡板服务是包括测试链路中位于挡板指针指向的目标服务节点之后的服务节点的服务,测试链路中包括多个服务节点;接着,向挡板中台发送测试请求,以通过挡板中台根据预先设置的参数,确定将测试请求转发到真实服务或所述挡板服务,并通过真实服务或挡板服务对测试请求进行断言并返回相应的断言结果。通过指针标记服务节点,实现可插拨挡板。
Description
技术领域
本申请实施例涉及测试技术领域,具体而言,本申请涉及一种测试方法、装置、电子设备及计算机存储介质。
背景技术
在互联网分布式技术领域中,微服务的架构模式已经逐步占据主流地位。在将应用模块拆分成微服务后,服务之间的依赖与协作网络变的错综复杂,如何提高存在外部依赖的微服务的可测性,这将直接影响到软件交付的周期与质量。
在现有的微服务测试技术中,常采用开发接口挡板程序的方式来解决外部的依赖问题。例如,在对接口进行测试时,经常采用mock测试来模拟实际工作环境,mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。设置一个mock挡板实现mock测试的开关,当需要开启mock测试功能时,则开启mock挡板,反之,则关闭该挡板。
然而,本申请发明人在具体实例过程中发现:使用挡板程序本身存在很大的局限性。首先,挡板程序本身不够灵活,每有一个需要mock的服务都需要单独编写挡板,且调用挡板程序返回的结果是静态结果,无法根据不同输入返回特定应答。第二,当被测微服务的接口发生变化时,挡板程序需要做针对性的修改升级,在开发初期,接口的改动频率是很高的。第三,挡板程序需要单独部署,需要占用硬件资源。第四,挡板的植入,可能需要修改代码配置文件中的调用地址,对服务代码有侵入,挡板的拔除,同样需要手动去拔除。
发明内容
本申请实施例的目的旨在至少能解决上述的技术缺陷之一,特提出以下技术方案:
一方面,提供了一种测试方法,包括:
接收客户端发送的针对任一微服务的测试请求,任一微服务为真实服务和/或挡板服务,真实服务是包括测试链路中挡板指针指向的目标服务节点及位于挡板指针指向的目标服务节点之前的服务节点的服务,挡板服务是包括测试链路中位于挡板指针指向的目标服务节点之后的服务节点的服务,测试链路中包括多个服务节点;
向挡板中台发送测试请求,以通过挡板中台根据预先设置的参数,确定将测试请求转发到真实服务或挡板服务,并通过真实服务或挡板服务对测试请求进行断言并返回相应的断言结果。
在一种可能的实现方式中,通过挡板服务对测试请求进行断言并返回相应的断言结果,包括:
通过挡板服务中的挡板断言确定测试请求是否符合预期,并返回相应的断言结果。
在一种可能的实现方式中,服务网关位于测试系统中,测试系统包括前端模块,前端模块包括挡板指针管理页面、挡板逻辑扩展页面、断言管理页面及服务节点管理页面;
在客户端发送的针对任一微服务的测试请求之前,还包括:
通过挡板指针管理页面增加挡板指针;
通过挡板逻辑扩展页面增加挡板逻辑和根据挡板逻辑生成挡板服务;
通过断言管理页面增加挡板断言;
通过服务节点管理页面将挡板指针指向测试链路中的目标服务节点,并将包括挡板指针指向的目标服务节点及位于挡板指针指向的目标服务节点之前的服务节点确定为真实服务,将包括位于挡板指针指向的目标服务节点之后的服务节点确定为挡板服务。
在一种可能的实现方式中,挡板指针管理页面还用于展示和控制挡板指针的状态;挡板逻辑扩展页面还用于展示和编辑挡板的扩展逻辑或自定义挡板的扩展逻辑;断言管理页面还用于展示当前所有的断言及对断言逻辑进行编辑;服务节点管理页面还用于展示当前微服务注册中心中各个服务节点的状态以及各个服务节点之间的依赖关系,其中,微服务注册中心是用于注册服务网关、服务节点、挡板中台及挡板服务的;
在一种可能的实现方式中,测试系统还包括展示模块,展示模块用于支撑页面展示,且是使用Vue.js编程语言开发的。
在一种可能的实现方式中,测试系统还包括数据模块,数据模块用于控制数据的存储逻辑,包括服务节点信息、挡板逻辑、挡板断言、用户账号信息及服务路由信息中的至少一项。
在一种可能的实现方式中,测试系统还包括数据库模块,数据库模块包括关系型数据库MySQL、缓存数据库Redis及分布式文档数据库Elasticsearch;
其中,关系型数据库MySQL用于存储关系型数据,缓存数据库Redis用于存储热点数据;分布式文档数据库Elasticsearch用于对挡板服务、挡板断言及服务节点等文本信息进行检索。
在一种可能的实现方式中,测试系统还包括挡板中台,挡板中台包括对应于服务节点管理页面的服务节点链路管理模块、对应于挡板指针管理页面的挡板管理模块、对应于挡板逻辑扩展页面的挡板管理模块及对应于断言管理页面的断言管理模块。
一方面,提供了一种测试装置,包括:
接收模块,用于接收客户端发送的针对任一微服务的测试请求,任一微服务为真实服务和/或挡板服务,真实服务是包括测试链路中挡板指针指向的目标服务节点及位于挡板指针指向的目标服务节点之前的服务节点的服务,挡板服务是包括测试链路中位于挡板指针指向的目标服务节点之后的服务节点的服务,测试链路中包括多个服务节点;
处理模块,用于向挡板中台发送测试请求,以通过挡板中台根据预先设置的参数,确定将测试请求转发到真实服务或挡板服务,并通过真实服务或挡板服务对测试请求进行断言并返回相应的断言结果。
在一种可能的实现方式中,处理模块在通过挡板服务对测试请求进行断言并返回相应的断言结果时,用于:
通过挡板服务中的挡板断言确定测试请求是否符合预期,并返回相应的断言结果。
在一种可能的实现方式中,服务网关位于测试系统中,测试系统包括前端模块,前端模块包括挡板指针管理页面、挡板逻辑扩展页面、断言管理页面及服务节点管理页面;
该装置还包括增加模块,增加模块用于:
通过挡板指针管理页面增加挡板指针;
通过挡板逻辑扩展页面增加挡板逻辑和根据挡板逻辑生成挡板服务;
通过断言管理页面增加挡板断言;
通过服务节点管理页面将挡板指针指向测试链路中的目标服务节点,并将包括挡板指针指向的目标服务节点及位于挡板指针指向的目标服务节点之前的服务节点确定为真实服务,将包括位于挡板指针指向的目标服务节点之后的服务节点确定为挡板服务。
在一种可能的实现方式中,挡板指针管理页面还用于展示和控制挡板指针的状态;挡板逻辑扩展页面还用于展示和编辑挡板的扩展逻辑或自定义挡板的扩展逻辑;断言管理页面还用于展示当前所有的断言及对断言逻辑进行编辑;服务节点管理页面还用于展示当前微服务注册中心中各个服务节点的状态以及各个服务节点之间的依赖关系,其中,微服务注册中心是用于注册服务网关、服务节点、挡板中台及挡板服务的;
在一种可能的实现方式中,测试系统还包括展示模块,展示模块用于支撑页面展示,且是使用Vue.js编程语言开发的。
在一种可能的实现方式中,测试系统还包括数据模块,数据模块用于控制数据的存储逻辑,包括服务节点信息、挡板逻辑、挡板断言、用户账号信息及服务路由信息中的至少一项。
在一种可能的实现方式中,测试系统还包括数据库模块,数据库模块包括关系型数据库MySQL、缓存数据库Redis及分布式文档数据库Elasticsearch;
其中,关系型数据库MySQL用于存储关系型数据,缓存数据库Redis用于存储热点数据;分布式文档数据库Elasticsearch用于对挡板服务、挡板断言及服务节点等文本信息进行检索。
在一种可能的实现方式中,测试系统还包括挡板中台,挡板中台包括对应于服务节点管理页面的服务节点链路管理模块、对应于挡板指针管理页面的挡板管理模块、对应于挡板逻辑扩展页面的挡板管理模块及对应于断言管理页面的断言管理模块。
一方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行所述程序时实现上述的测试方法。
一方面,提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述的测试方法。
本申请实施例提供的测试方法,一方面,通过挡板指针的方式标记服务节点,可以准确确定测试链路中需要组合为真实服务的服务节点,以及将挡板指针标记的服务节点之外的服务节点确定为需要被mock的挡板服务,使得测试链路中的任意多个相邻服务节点在不依赖于其他服务节点的情况下即可组合,并对外提供稳定测试环境;另一方面,通过挡板指针实现了零侵入、可插拨的挡板服务,挡板即插即用,同时可以像游标一样左右自由调节,使得在链路开发过程中,开发进度快的服务节点先测试,开发进度慢的服务节点后测试,相互之间互不影响,实现了链路开发的分段排查。
本申请实施例附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请实施例上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请实施例的测试方法的流程示意图;
图2为本申请实施例的测试系统的架构示意图;
图3为本申请实施例的测试装置的基本结构示意图;
图4为本申请实施例的电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本申请实施例的主要目的是提供长链路自动化测试场景下,以指针的方式分割链路并对分割出来的链路单独测试的测试方法。主要解决的问题如下:1、长链路中有多个服务节点,开发进度不一致,无法统一测试;2、在长链路系统中,如果生产出现问题,那么排查问题将会是一个非常繁琐的过程,可以使用本申请实施例的实现分段式快速排查,精确定位线上故障问题;3、服务链路管理,可以清晰的分析调用链路径。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面以具体地实施例对本申请实施例的技术方案以及本申请实施例的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
本申请一个实施例提供了一种测试方法,该方法由计算机设备执行,该计算机设备可以是终端或者服务器。终端可以是台式设备或者移动终端。服务器可以是独立的物理服务器、物理服务器集群或者虚拟服务器。如图1所示,该方法包括:
步骤S110,接收客户端发送的针对任一微服务的测试请求,任一微服务为真实服务和/或挡板服务,真实服务是包括测试链路中挡板指针指向的目标服务节点及位于挡板指针指向的目标服务节点之前的服务节点的服务,挡板服务是包括测试链路中位于挡板指针指向的目标服务节点之后的服务节点的服务,测试链路中包括多个服务节点;
步骤S120,向挡板中台发送测试请求,以通过挡板中台根据预先设置的参数,确定将测试请求转发到真实服务或挡板服务,并通过真实服务或挡板服务对测试请求进行断言并返回相应的断言结果。
mock测试(挡板测试)就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。例如,在一些跨系统的性能测试项目中,往往由于客观因素的限制(测试硬件资源有限、多系统之间的协调等),无法搭建一个完整的测试环境来完成测试工作。此时,可以搭建出被测系统,然后采用软件程序来模拟其他相关系统的功能。该软件程序一般被称为挡板。
在mock测试中,mock工具或mock平台会根据调用方(即需要获取mock对象的一方)的特定调用参数,来决定返回的预期结果。预期结果为预先设置的明确mock对象执行是会发生什么,例如返回特定的值、抛出一个异常及触发一个事件等。
在一个示例中,用户可以通过用户终端,也可以是用户终端中安装的客户端,来控制挡板指针标记测试链路中的服务节点,该测试链路中有多个服务节点,即测试链路由多个服务节点组成。其中,可以将测试链路中通过挡板指针标记的服务节点组成的服务记作真实服务,而将测试链路中除通过挡板指针标记的服务节点外的服务节点组成的服务记作挡板服务。相当于,通过指针的方式标记服务节点,来确定长链路(即测试链路)中哪些服务节点需要组合,在指针标记之外的服务节点则是需要被mock的服务,从而实现了以指针的方式分割链路并可以对分割出来的链路单独测试。
其中,在通过挡板指针标记服务节点的过程中,可以根据测试需求,灵活确定挡板指针指向的服务节点,挡板指针指向了一个服务节点(例如服务节点A1),该即服务节点(例如服务节点A1)即为挡板指针标记的服务节点,从而挡板指针可以向游标一样左右自由调节来标记服务节点,实现了真实服务和挡板服务之间的自由切换。
本申请实施例的方法是假定被测系统位于同一个微服务集群中的,其中,微服务集群中是包括服务网关、服务节点、挡板中控以及挡板的。在实际测试过程中,首先,服务网关接收用户通过客户端发送的针对真实服务和/或挡板服务的测试请求,其中,真实服务是包括测试链路中挡板指针指向的目标服务节点及位于挡板指针指向的目标服务节点之前的服务节点的服务,挡板服务是包括所述测试链路中位于挡板指针指向的目标服务节点之后的服务节点的服务,该测试链路中包括多个服务节点。接着,服务网关向挡板中台转发接收到的测试请求;接着,挡板中台根据预先设置的参数,确定将测试请求转发到真实服务或挡板服务,比如挡板中台根据预先设置的参数,判断是将该测试请求转发到真实服务还是挡板服务,如果判定是要转发到真实服务,则挡板中台将该测试请求转发到真实服务,如果判定是要转发到挡板服务,则挡板中台将该测试请求转发到挡板服务;接着,当真实服务接收到测试请求后,真实服务对该测试请求进行断言,并将断言结果返回给挡板中台,挡板中台对接收到的断言结果进行展示,同样地,当挡板服务接收到测试请求后,挡板服务对该测试请求进行断言,并将断言结果返回给挡板中台,挡板中台对接收到的断言结果进行展示。
其中,断言是编程术语,表示为一些布尔表达。编写代码时,总是会做出一些假设,断言就是用于在代码中捕捉这些假设。程序员相信在程序中的某个特定点该表达式值为真,可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新启用断言。使用断言可以创建更稳定、品质更好且不易于出错的代码。
本申请实施例提供的测试方法,一方面,通过挡板指针的方式标记服务节点,可以准确确定测试链路中需要组合为真实服务的服务节点,以及将挡板指针标记的服务节点之外的服务节点确定为需要被mock的挡板服务,使得测试链路中的任意多个相邻服务节点在不依赖于其他服务节点的情况下即可组合,并对外提供稳定测试环境;另一方面,通过挡板指针实现了零侵入、可插拨的挡板服务,挡板即插即用,同时可以像游标一样左右自由调节,使得在链路开发过程中,开发进度快的服务节点先测试,开发进度慢的服务节点后测试,相互之间互不影响,实现了链路开发的分段排查。
下面,对本申请实施例进行具体介绍:
在一种可能的实现方式中,通过挡板服务对测试请求进行断言并返回相应的断言结果,包括:
通过挡板服务中的挡板断言确定测试请求是否符合预期,并返回相应的断言结果。
在一个示例中,可以在挡板(即挡板服务)中设置挡板断言,使得挡板具有断言功能,可以进行断言处理。实际应用中,在通过挡板服务对测试请求进行断言时,实际上是通过挡板服务中的挡板断言确定测试请求是否符合预期,如果测试请求符合预期,则返回符合预期的断言结果,例如返回true(表示真),又例如返回1(表示真),如果测试请求不符合预期,则返回不符合预期的断言结果,例如返回false(表示假),又例如返回0(表示假)。
在一种可能的实现方式中,服务网关位于测试系统中,测试系统包括前端模块,前端模块包括挡板指针管理页面、挡板逻辑扩展页面、断言管理页面及服务节点管理页面;
在客户端发送的针对任一微服务的测试请求之前,还包括:
通过挡板指针管理页面增加挡板指针;
通过挡板逻辑扩展页面增加挡板逻辑和根据挡板逻辑生成挡板服务;
通过断言管理页面增加挡板断言;
通过服务节点管理页面将挡板指针指向测试链路中的目标服务节点,并将包括挡板指针指向的目标服务节点及位于挡板指针指向的目标服务节点之前的服务节点确定为真实服务,将包括位于挡板指针指向的目标服务节点之后的服务节点确定为挡板服务。
在一种可能的实现方式中,挡板指针管理页面还用于展示和控制挡板指针的状态;挡板逻辑扩展页面还用于展示和编辑挡板的扩展逻辑或自定义挡板的扩展逻辑;断言管理页面还用于展示当前所有的断言及对断言逻辑进行编辑;服务节点管理页面还用于展示当前微服务注册中心中各个服务节点的状态以及各个服务节点之间的依赖关系,其中,微服务注册中心是用于注册服务网关、服务节点、挡板中台及挡板服务的;
在一种可能的实现方式中,测试系统还包括展示模块,展示模块用于支撑页面展示,且是使用Vue.js编程语言开发的。
在一种可能的实现方式中,测试系统还包括数据模块,数据模块用于控制数据的存储逻辑,包括服务节点信息、挡板逻辑、挡板断言、用户账号信息及服务路由信息中的至少一项。
在一种可能的实现方式中,测试系统还包括数据库模块,数据库模块包括关系型数据库MySQL、缓存数据库Redis及分布式文档数据库Elasticsearch;
其中,关系型数据库MySQL用于存储关系型数据,缓存数据库Redis用于存储热点数据;分布式文档数据库Elasticsearch用于对挡板服务、挡板断言及服务节点等文本信息进行检索。
在一种可能的实现方式中,测试系统还包括挡板中台,挡板中台包括对应于服务节点管理页面的服务节点链路管理模块、对应于挡板指针管理页面的挡板管理模块、对应于挡板逻辑扩展页面的挡板管理模块及对应于断言管理页面的断言管理模块。
在实际应用中,挡板以指针的方式作用于各个服务节点,在指针标记的区间将链路分离出来单独测试。
下面对本申请实施例包括的前端模块、展示模块、挡板中台、数据模块、数据库模块进行具体介绍:
1、前端模块,即页面端,主要包含四个页面,服务节点管理、挡板指针管理、断言管理、挡板扩展逻辑。其中,服务节点管理:此页面用于展示当前微服务注册中心中各个服务节点的状态,以及各个服务节点之间的依赖关系。挡板指针管理:此页面用于展示和控制挡板指针的状态。挡板指针即指向服务节点调用链中各个服务节点的指针,指针所在的节点就是真实服务和挡板服务的分界点,指针可以移动、启动和删除。断言管理:此页面用于展示当前所有的断言并且对断言逻辑进行编辑。针对挡板提供了断言功能,即挡板之前的输入参数和挡板之后的输出参数的断言,用于保证挡板前后服务输入输出的正确性。挡板扩展逻辑:此页面用于展示和编辑挡板的扩展逻辑。一些复杂业务的挡板需要添加自定义逻辑,例如计算逻辑、转换逻辑等。
2、展示模块(也称作展示层)使用Vue.js语言开发,主要是支撑页面展示,连接后台接口传输数据。
3、挡板中台是挡板所有挡板功能的核心,主要模块有服务节点链路管理模块、服务节点路由关系管理模块、挡板管理模块、断言管理模块等。主要功能与前端页面端对应。
4、数据模块(也称作数据层)是数据存储逻辑,包括服务节点信息、挡板逻辑、挡板断言、用户账号信息、服务路由信息等。
5、数据库模块(也称作数据库层)采用三种数据库,分别为关系型数据库MySQL、缓存数据库Redis及分布式文档数据库Elasticsearch。所有关系型数据存储到MySQL中,其中,热点数据例如服务路由信息会被缓存到Redis数据库中,Elasticsearch数据库用于对挡板、断言、服务节点等文本信息进行检索。
6、挡板指针作用于微服务环境,具体逻辑如下:
(1)由挡板工具前端的挡板指针管理页面为入口增加挡板指针;
(2)由挡板逻辑扩展页面为入口,增加挡板逻辑,生成挡板服务并注册到微服务注册中心;
(3)在断言管理页面增加挡板断言,判断上游节点的输出是否符合预期;
(4)在服务节点管理页面,将挡板指针指向某个服务节点,这样,当前服务节点之后的节点则被mock掉,挡板服务取而代之;
(5)服务使用方以网关为入口向后台服务发起请求;
(6)服务网关将请求转发到挡板中台;
(7)挡板中台根据配置好的参数决定将请求转发到真实的服务还是挡板服务;
(8)挡板进行断言,并返回给挡板中台展示;
(9)如果想修改挡板指针位置,在页面端可以将指针调节到任意一个服务节点的位置。
本申请实施例已经应用到银行多个系统的测试中,让其在复杂银行业务的长交易链中可以做到指哪测哪,同时也使得自动化测试有了质的飞跃。
图3为本申请又一实施例提供的一种测试装置的结构示意图,如图3所示,该装置300可以包括接收模块301和处理模块302,其中:
接收模块301,用于接收客户端发送的针对任一微服务的测试请求,任一微服务为真实服务和/或挡板服务,真实服务是包括测试链路中挡板指针指向的目标服务节点及位于挡板指针指向的目标服务节点之前的服务节点的服务,挡板服务是包括测试链路中位于挡板指针指向的目标服务节点之后的服务节点的服务,测试链路中包括多个服务节点;
处理模块302,用于向挡板中台发送测试请求,以通过挡板中台根据预先设置的参数,确定将测试请求转发到真实服务或挡板服务,并通过真实服务或挡板服务对测试请求进行断言并返回相应的断言结果。
在一种可能的实现方式中,处理模块在通过挡板服务对测试请求进行断言并返回相应的断言结果时,用于:
通过挡板服务中的挡板断言确定测试请求是否符合预期,并返回相应的断言结果。
在一种可能的实现方式中,服务网关位于测试系统中,测试系统包括前端模块,前端模块包括挡板指针管理页面、挡板逻辑扩展页面、断言管理页面及服务节点管理页面;
该装置还包括增加模块,增加模块用于:
通过挡板指针管理页面增加挡板指针;
通过挡板逻辑扩展页面增加挡板逻辑和根据挡板逻辑生成挡板服务;
通过断言管理页面增加挡板断言;
通过服务节点管理页面将挡板指针指向测试链路中的目标服务节点,并将包括挡板指针指向的目标服务节点及位于挡板指针指向的目标服务节点之前的服务节点确定为真实服务,将包括位于挡板指针指向的目标服务节点之后的服务节点确定为挡板服务。
在一种可能的实现方式中,挡板指针管理页面还用于展示和控制挡板指针的状态;挡板逻辑扩展页面还用于展示和编辑挡板的扩展逻辑或自定义挡板的扩展逻辑;断言管理页面还用于展示当前所有的断言及对断言逻辑进行编辑;服务节点管理页面还用于展示当前微服务注册中心中各个服务节点的状态以及各个服务节点之间的依赖关系,其中,微服务注册中心是用于注册服务网关、服务节点、挡板中台及挡板服务的;
在一种可能的实现方式中,测试系统还包括展示模块,展示模块用于支撑页面展示,且是使用Vue.js编程语言开发的。
在一种可能的实现方式中,测试系统还包括数据模块,数据模块用于控制数据的存储逻辑,包括服务节点信息、挡板逻辑、挡板断言、用户账号信息及服务路由信息中的至少一项。
在一种可能的实现方式中,测试系统还包括数据库模块,数据库模块包括关系型数据库MySQL、缓存数据库Redis及分布式文档数据库Elasticsearch;
其中,关系型数据库MySQL用于存储关系型数据,缓存数据库Redis用于存储热点数据;分布式文档数据库Elasticsearch用于对挡板服务、挡板断言及服务节点等文本信息进行检索。
在一种可能的实现方式中,测试系统还包括挡板中台,挡板中台包括对应于服务节点管理页面的服务节点链路管理模块、对应于挡板指针管理页面的挡板管理模块、对应于挡板逻辑扩展页面的挡板管理模块及对应于断言管理页面的断言管理模块。
本申请实施例提供的装置,一方面,通过挡板指针的方式标记服务节点,可以准确确定测试链路中需要组合为真实服务的服务节点,以及将挡板指针标记的服务节点之外的服务节点确定为需要被mock的挡板服务,使得测试链路中的任意多个相邻服务节点在不依赖于其他服务节点的情况下即可组合,并对外提供稳定测试环境;另一方面,通过挡板指针实现了零侵入、可插拨的挡板服务,挡板即插即用,同时可以像游标一样左右自由调节,使得在链路开发过程中,开发进度快的服务节点先测试,开发进度慢的服务节点后测试,相互之间互不影响,实现了链路开发的分段排查。
需要说明的是,本实施例为与上述的方法项实施例相对应的装置项实施例,本实施例可与上述方法项实施例互相配合实施。上述方法项实施例中提到的相关技术细节在本实施例中依然有效,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在上述方法项实施例中。
本申请另一实施例提供了一种电子设备,如图4所示,图4所示的电子设备400包括:处理器401和存储器403。其中,处理器401和存储器403相连,如通过总线402相连。进一步地,电子设备400还可以包括收发器404。需要说明的是,实际应用中收发器404不限于一个,该电子设备400的结构并不构成对本申请实施例的限定。
其中,处理器401应用于本申请实施例中,用于实现图3所示的接收模块及处理模块的功能。收发器404包括接收机和发射机。
处理器401可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器401也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线402可包括一通路,在上述组件之间传送信息。总线402可以是PCI总线或EISA总线等。总线402可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器403可以是ROM或可存储静态信息和指令的其他类型的静态存储设备,RAM或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM、CD-ROM或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器403用于存储执行本申请方案的应用程序代码,并由处理器401来控制执行。处理器401用于执行存储器403中存储的应用程序代码,以实现图3所示实施例提供的测试装置的动作。
本申请实施例提供的电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时,可实现:接收客户端发送的针对任一微服务的测试请求,任一微服务为真实服务和/或挡板服务,真实服务是包括测试链路中挡板指针指向的目标服务节点及位于挡板指针指向的目标服务节点之前的服务节点的服务,挡板服务是包括测试链路中位于挡板指针指向的目标服务节点之后的服务节点的服务,测试链路中包括多个服务节点;接着,向挡板中台发送测试请求,以通过挡板中台根据预先设置的参数,确定将测试请求转发到真实服务或挡板服务,并通过真实服务或挡板服务对测试请求进行断言并返回相应的断言结果。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述实施例所示的方法。其中,一方面,通过挡板指针的方式标记服务节点,可以准确确定测试链路中需要组合为真实服务的服务节点,以及将挡板指针标记的服务节点之外的服务节点确定为需要被mock的挡板服务,使得测试链路中的任意多个相邻服务节点在不依赖于其他服务节点的情况下即可组合,并对外提供稳定测试环境;另一方面,通过挡板指针实现了零侵入、可插拨的挡板服务,挡板即插即用,同时可以像游标一样左右自由调节,使得在链路开发过程中,开发进度快的服务节点先测试,开发进度慢的服务节点后测试,相互之间互不影响,实现了链路开发的分段排查。
本申请实施例提供的计算机可读存储介质适用于上述方法的任一实施例。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (11)
1.一种测试方法,其特征在于,应用于服务网关,包括:
接收客户端发送的针对任一微服务的测试请求,所述任一微服务为真实服务和/或挡板服务,所述真实服务是包括测试链路中挡板指针指向的目标服务节点及位于所述挡板指针指向的目标服务节点之前的服务节点的服务,所述挡板服务是包括所述测试链路中位于所述挡板指针指向的目标服务节点之后的服务节点的服务,所述测试链路中包括多个服务节点;
向挡板中台发送所述测试请求,以通过所述挡板中台根据预先设置的参数,确定将所述测试请求转发到所述真实服务或所述挡板服务,并通过所述真实服务或挡板服务对所述测试请求进行断言并返回相应的断言结果。
2.根据权利要求1所述的方法,其特征在于,通过所述挡板服务对所述测试请求进行断言并返回相应的断言结果,包括:
通过所述挡板服务中的挡板断言确定所述测试请求是否符合预期,并返回相应的断言结果。
3.根据权利要求1或2所述的方法,其特征在于,服务网关位于测试系统中,所述测试系统包括前端模块,所述前端模块包括挡板指针管理页面、挡板逻辑扩展页面、断言管理页面及服务节点管理页面;
在所述客户端发送的针对任一微服务的测试请求之前,还包括:
通过所述挡板指针管理页面增加所述挡板指针;
通过所述挡板逻辑扩展页面增加挡板逻辑和根据所述挡板逻辑生成挡板服务;
通过所述断言管理页面增加挡板断言;
通过所述服务节点管理页面将所述挡板指针指向测试链路中的目标服务节点,并将包括所述挡板指针指向的目标服务节点及位于所述挡板指针指向的目标服务节点之前的服务节点确定为真实服务,将包括位于所述挡板指针指向的目标服务节点之后的服务节点确定为挡板服务。
4.根据权利要求3所述的方法,其特征在于,所述挡板指针管理页面还用于展示和控制挡板指针的状态;所述挡板逻辑扩展页面还用于展示和编辑挡板的扩展逻辑或自定义挡板的扩展逻辑;所述断言管理页面还用于展示当前所有的断言及对断言逻辑进行编辑;所述服务节点管理页面还用于展示当前微服务注册中心中各个服务节点的状态以及各个服务节点之间的依赖关系,其中,所述微服务注册中心是用于注册所述服务网关、所述服务节点、所述挡板中台及所述挡板服务的。
5.根据权利要求3所述的方法,其特征在于,所述测试系统还包括展示模块,所述展示模块用于支撑页面展示,且是使用Vue.js编程语言开发的。
6.根据权利要求3所述的方法,其特征在于,所述测试系统还包括数据模块,所述数据模块用于控制数据的存储逻辑,所述包括服务节点信息、挡板逻辑、挡板断言、用户账号信息及服务路由信息中的至少一项。
7.根据权利要求3所述的方法,其特征在于,所述测试系统还包括数据库模块,所述数据库模块包括关系型数据库MySQL、缓存数据库Redis及分布式文档数据库Elasticsearch;
其中,所述关系型数据库MySQL用于存储关系型数据,所述缓存数据库Redis用于存储热点数据;所述分布式文档数据库Elasticsearch用于对挡板服务、挡板断言及服务节点等文本信息进行检索。
8.根据权利要求3所述的方法,其特征在于,所述测试系统还包括挡板中台,所述挡板中台包括对应于所述服务节点管理页面的服务节点链路管理模块、对应于所述挡板指针管理页面的挡板管理模块、对应于所述挡板逻辑扩展页面的挡板管理模块及对应于所述断言管理页面的断言管理模块。
9.一种测试装置,其特征在于,包括:
接收模块,用于接收客户端发送的针对任一微服务的测试请求,所述任一微服务为真实服务和/或挡板服务,所述真实服务是包括测试链路中挡板指针指向的目标服务节点及位于所述挡板指针指向的目标服务节点之前的服务节点的服务,所述挡板服务是包括所述测试链路中位于所述挡板指针指向的目标服务节点之后的服务节点的服务,所述测试链路中包括多个服务节点;
处理模块,用于向挡板中台发送所述测试请求,以通过所述挡板中台根据预先设置的参数,确定将所述测试请求转发到所述真实服务或所述挡板服务,并通过所述真实服务或挡板服务对所述测试请求进行断言并返回相应的断言结果。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-8任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110088917.1A CN112765029A (zh) | 2021-01-22 | 2021-01-22 | 测试方法、装置、电子设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110088917.1A CN112765029A (zh) | 2021-01-22 | 2021-01-22 | 测试方法、装置、电子设备及计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112765029A true CN112765029A (zh) | 2021-05-07 |
Family
ID=75706043
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110088917.1A Pending CN112765029A (zh) | 2021-01-22 | 2021-01-22 | 测试方法、装置、电子设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112765029A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114416625A (zh) * | 2022-01-07 | 2022-04-29 | 北京百度网讯科技有限公司 | 服务器、扩展服务卡、数据处理方法和服务系统 |
CN114915573A (zh) * | 2022-06-14 | 2022-08-16 | 中国工商银行股份有限公司 | 测试方法、装置、设备、存储介质和程序产品 |
CN115037577A (zh) * | 2022-06-27 | 2022-09-09 | 江苏安超云软件有限公司 | 智能化网关服务管理平台 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108829584A (zh) * | 2018-05-24 | 2018-11-16 | 携程计算机技术(上海)有限公司 | 业务逻辑接口mock测试方法及系统 |
CN110147326A (zh) * | 2019-05-23 | 2019-08-20 | 四川新网银行股份有限公司 | 基于Redis数据库的微服务自动化测试方法 |
CN112134922A (zh) * | 2020-08-14 | 2020-12-25 | 中信银行股份有限公司 | 一种基于微服务的服务调用方法、装置及存储介质 |
-
2021
- 2021-01-22 CN CN202110088917.1A patent/CN112765029A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108829584A (zh) * | 2018-05-24 | 2018-11-16 | 携程计算机技术(上海)有限公司 | 业务逻辑接口mock测试方法及系统 |
CN110147326A (zh) * | 2019-05-23 | 2019-08-20 | 四川新网银行股份有限公司 | 基于Redis数据库的微服务自动化测试方法 |
CN112134922A (zh) * | 2020-08-14 | 2020-12-25 | 中信银行股份有限公司 | 一种基于微服务的服务调用方法、装置及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114416625A (zh) * | 2022-01-07 | 2022-04-29 | 北京百度网讯科技有限公司 | 服务器、扩展服务卡、数据处理方法和服务系统 |
CN114915573A (zh) * | 2022-06-14 | 2022-08-16 | 中国工商银行股份有限公司 | 测试方法、装置、设备、存储介质和程序产品 |
CN115037577A (zh) * | 2022-06-27 | 2022-09-09 | 江苏安超云软件有限公司 | 智能化网关服务管理平台 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112765029A (zh) | 测试方法、装置、电子设备及计算机存储介质 | |
CN110765024B (zh) | 模拟测试方法、装置、电子设备和计算机可读存储介质 | |
CN108170612B (zh) | 一种自动化测试方法、装置及服务器 | |
CN112765030A (zh) | 测试方法、装置、电子设备及计算机存储介质 | |
CN111858296B (zh) | 接口测试方法、装置、设备和存储介质 | |
JP2022048088A (ja) | コードをテストするための方法及び装置、電子機器、記憶媒体並びにコンピュータプログラム | |
CN112115337B (zh) | 展示数据的方法及装置、电子设备、计算机可读存储介质 | |
CN111367873A (zh) | 日志数据的存储方法、装置、终端及计算机存储介质 | |
US20200004664A1 (en) | Automatic mock enablement in a multi-module software system | |
CN111327466B (zh) | 一种告警分析方法、系统、设备以及介质 | |
CN109101412B (zh) | 测试文件生成、测试方法、装置、存储介质和计算机设备 | |
CN111159040A (zh) | 一种测试数据生成方法、装置、设备及存储介质 | |
CN112241355B (zh) | 链路追踪方法、系统、计算机可读存储介质及电子设备 | |
CN111309624B (zh) | 测试方法、装置、设备及存储介质 | |
CN110046086A (zh) | 用于测试的期望数据生成方法及装置和电子设备 | |
CN111538659B (zh) | 业务场景的接口测试方法、系统、电子设备和存储介质 | |
CN115984022A (zh) | 分布式支付系统统一对账方法和装置 | |
CN115941538A (zh) | 一种针对多方安全计算的测试系统、测试方法及装置 | |
CN116225690A (zh) | 基于docker的内存多维数据库计算负载均衡方法及系统 | |
CN106330556B (zh) | 一种用于生成服务模块调用关联信息的方法与装置 | |
CN111813407B (zh) | 游戏开发方法、游戏运行方法、装置和电子设备 | |
CN114745749A (zh) | 虚拟网元测试方法、装置、电子设备及可读存储介质 | |
CN114610309A (zh) | 对象配置方法、装置、设备及存储介质 | |
CN113806327A (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 |