CN110096437A - 微服务架构的测试方法及相关产品 - Google Patents
微服务架构的测试方法及相关产品 Download PDFInfo
- Publication number
- CN110096437A CN110096437A CN201910296073.2A CN201910296073A CN110096437A CN 110096437 A CN110096437 A CN 110096437A CN 201910296073 A CN201910296073 A CN 201910296073A CN 110096437 A CN110096437 A CN 110096437A
- Authority
- CN
- China
- Prior art keywords
- micro services
- test
- framework
- target
- information
- 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
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/3664—Environments for testing or debugging software
-
- 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/3672—Test management
- G06F11/3692—Test management for test results analysis
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
本申请涉及软件测试技术领域的测试流程改进,该方法包括:对微服务架构下的若干个微服务的日志文件中***目标日志,所述目标日志用于记录测试时对每个微服务的调用信息;接收对所述微服务架构的测试请求,确定与所述测试请求对应的测试用例;根据所述测试用例对所述微服务架构进行测试;获取与所述测试用例对应的微服务的目标日志中记录的调用信息;根据所述调用信息确定所述微服务架构的测试结果。本申请实施例有利于提高对微服务架构的维护效率。
Description
技术领域
本申请涉及软件测试技术领域,具体涉及一种微服务架构的测试方法及相关产品。
背景技术
随着产品功能逐渐的增多,微服务架构越来越火爆,逐渐被企业所采用,微服务架构即将单一应用程序划分成一组小的服务,每个服务运行在其独立的进程中,服务间采用轻量级通信机制互相沟通(通常是基于HTTP协议的RESTful API),每个服务都围绕着具体的业务进行构建,并且能够被独立部署到生产环境、预生产环境。但是,随着应用架构的软件化,以及微服务架构下微服务应用的增多,导致微服务之间数据的相互调用以及传输变得极为复杂多变,所以,目前在对微服务架构做集成测试时,微服务架构中的各个微服务应用之间的调用逻辑不可见,所以在微服务应用出现异常时无法进行准确定位,导致对微服务架构维护效率低下。
发明内容
本申请实施例提供了一种微服务架构的测试方法及相关产品,通过***目标日志,使对微服务架构的测试过程从不见变为可见,以解决微服务架构的维护效率低的问题。
第一方面,本申请实施例提供一种微服务架构的测试方法,该方法包括:
对微服务架构下的若干个微服务的日志文件中***目标日志,所述目标日志用于记录测试时对每个微服务的调用信息;
接收对所述微服务架构的测试请求,确定与所述测试请求对应的测试用例;
根据所述测试用例对所述微服务架构进行测试;
获取所述测试用例对应的微服务的目标日志中记录的调用信息;
根据所述调用信息确定所述微服务架构的测试结果。
第二方面,本申请实施例提供一种测试终端,该测试终端包括:
***单元,用于对微服务架构下的若干个微服务的日志文件中***目标日志,所述目标日志用于记录测试时对每个微服务的调用信息;
接收单元,用于接收对所述微服务架构的测试请求,确定与所述测试请求对应的测试用例;
测试单元,用于根据所述测试用例对所述微服务架构进行测试;
获取单元,用于获取所述测试用例对应的微服务的目标日志中记录的调用信息;
确定单元,用于根据所述调用信息确定所述微服务架构的测试结果。
第三方面,本申请实施例提供一种测试终端,包括处理器、存储器、通信接口以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行如第一方面所述的方法中的步骤的指令。
第四方面,本申请实施例提供一种计算机可读存储介质,其存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如第一方面所述的方法。
第五方面,本申请实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机可操作来使计算机执行如第一方面所述的方法。
实施本申请实施例,具有如下有益效果:
可以看出,在本申请实施例中,在对微服务架构进行测试之前,首先在各个微服务的日志文件中***目标日志,以记录测试时对微服务用的调用信息,从而根据该调用信息确定测试时微服务间的调用逻辑,从而使微服务架构下不可见的调用信息从不可见便可见,以便在微服务架构异常时,精确定位到异常的微服务,对异常的微服务进行精确地维护,提高维护效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种微服务架构的测试方法的流程示意图;
图2为本申请实施例提供的另一种微服务架构的测试方法的流程示意图;
图3为本申请实施例提供的另一种微服务架构的测试方法的流程示意图;
图4为本申请实施例提供的一种种微服务架构的测试终端的结构示意图;
图5为本申请实施例提供的一种种微服务架构的测试终端的功能单元组成框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结果或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本申请中的测试终端可以包括智能手机(如Android手机、iOS手机、WindowsPhone手机等)、平板电脑、掌上电脑、笔记本电脑、移动互联网设备MID(Mobile InternetDevices,简称:MID)或穿戴式设备等,上述测试终端仅是举例,而非穷举,包含但不限于上述测试终端,例如还可以包括:智能车载终端、计算机设备,等等。
首先,参阅图1,图1为本申请实施例提供的一种微服务架构的测试方法,该方法应用于测试终端,该方法包括如步骤S101~S105中所示的内容:
步骤S101、所述测试终端对微服务架构下的若干个微服务的日志文件中***目标日志,所述目标日志用于记录测试时对每个微服务的调用信息。
其中,微服务架构为一种架构模式,将单一应用程序划分成一组小的微服务,每个微服务运行在其独立的进程中,服务间采用轻量级通信机制互相沟通(通常是基于HTTP协议的RESTful API)。每个微服务都围绕着具体的业务进行构建,并且能够被独立部署到生产环境、预生产环境。
可选的,预先对每个微服务的日志文件中***目标日志,以记录测试时对微服务的调用信息,其中,该调用信息包括对微服务的调用时间以及该微服务的调用对象,可以理解的是,每个微服务在被调用时,都会在日志文件中生成相应的调用信息,本申请中将生成的调用信息保存在预先***的目标日志中。
步骤S102、所述测试终端接收对所述微服务架构的测试请求,确定与所述测试请求对应的测试用例。
可选的,在确定与所述测试请求对应的测试用例之前,所述方法还包括:解析所述测试请求,确定所述测试请求所需的输入参数,并从保存输入参数的文件库中提取预先输入的输入参数,同时从保存预期输出结果的文件库中提取预先输入的预期输出结果,进一步地,根据所述测试请求确定待测试的微服务的待测试功能,然后,从数据库中获取与所述待测试功能对应的测试用例,其中,每个待测试功能对应一个测试用例,根据所述测试用例、输入参数以及预期输出结果对该待测试功能进行测试。
举例来说,当微服务为保费计算时,其对应的功能包括但不限于年交保费计算功能、弱体保费计算功能、职业保费计算功能,等等,其对应的输入参数包括但不限于险种标识、基本保额、被保人年龄、被保人性别、保险年限、保险金额、保险生效期,等等,其对应的输出参数包括年交保费、弱体保费以及职业保费,等等。所以,如该测试请求为测试该微服务的年交保费计算功能时,其对应的输入参数为险种标识、基本保额、被保人年龄、被保人性别、保险年限、保险金额、保险生效期,其测试用例为与年交保费计算功能对应的测试用例,其对应的预期输出结果为该输入参数下的实际年交保费金额。
进一步地,根据所述测试请求对应的待测试功能确定在对该微服务测试时该微服务架构下的各个微服务之间的调用逻辑,该调用逻辑包括待待调用的微服务名称及其对应的调用顺序。
步骤S103、所述测试终端根据所述测试用例对所述微服务架构进行测试。
可选的,根据上述的调用逻辑对所述微服务架构进行测试。
步骤S104、所述测试终端获取与所述测试用例对应的微服务的目标日志中记录的调用信息。
可选的,获取与该测试用例对应的待调用微服务的目标日志,解析该目标日志中,当该待调用微服务的目标日志中存在调用信息时,确定该待调用微服务被成功调用,否则,对该待调用微服务的调用失败。
步骤S105、所述测试终端根据所述调用信息确定所述微服务架构的测试结果。
可选的,确定所述微服务架构的测试结果的实现过程可以为:根据所述测试用例确定微服务间的调用轨迹,其调用轨迹为按照对微服务的调用顺序组成的轨迹;依次检测所述调用轨迹上的每个微服务的目标日志;判断每个微服务的目标日志中是否生成调用信息;如是,获取所述测试用例对应的输出参数,以及输入的与所述测试用例对应的预期输出结果,将所述输出参数与所述预期输出结果进行比对,如所述输出参数与所述预期输出结果匹配,在测试终端的信息展示界面显示测试成功的测试结果,如所述输出参数与所述预期输出结果不匹配,在所述测试终端的信息展示界面输出测试失败的测试结果以及提示信息,所述提示信息用于提示回滚所述微服务架构的脚本代码;如否,确定出目标日志中未生成调用信息的第一微服务,在所述测试终端的信息展示界面显示测试失败以及对所述第一微服务调用失败的测试结果。
可以看出,在本申请实施例中,在对微服务架构进行测试之前,首先在各个微服务的日志文件中***目标日志,以记录测试时对微服务用的调用信息,从而根据该调用信息确定测试时微服务间的调用逻辑,从而使微服务架构下不可见的调用信息从不可见便可见,以便在微服务异常时,通过查看各个微服务的目标日志中是否记录调用信息,从而精确的判断出导致测试失败的微服务信息,将该微服务信息显示在信息展示界面,从而对微服务进行精确地维护,提高维护效率。
在一可能的示例中,该微服务架构中包括若干个业务节点,在根据所述测试用例对所述微服务架构进行测试之前,所述方法还包括如下步骤:
在所述若干个业务节点的每个业务节点的日志文件中***检查点说明;所述检查点说明用于记录测试时对业务节点的调用信息。可以看出,在本示例中,对业务节点***检查点说明,从而使对业务节点的调用从不可见变为可见,以便在精确定位到异常检查点,精确维护微服务架构。
在一可能的示例中,基于上述可能的示例,所述方法还包括如下步骤:
在确定出目标日志中未生成调用信息的第一微服务时,确定所述若干个业务节点中每个业务节点的检查点说明中是否生成调用信息;如所述若干个业务节点中的一业务节点的检查点说明中生成调用信息,确定对所述第一微服务的调用失败原因为所述第一微服务异常,将所述调用失败原因在所述测试终端的信息展示界面显示。可以看出,在本示例中,在对微服务调用失败时,判断业务节点中是否存在调用痕迹,如是,则精确定位到测试失败的原因为该微服务异常导致测试线程堵塞,所以,精确定位失败原因,提高维护效率。
在一可能的示例中,基于上述可能的示例,所述方法还包括如下步骤:
如在所述若干个业务节点的所有业务节点的检查点说明中未生成调用信息,重复执行所述测试请求;在重复执行所述测试请求时,统计对所述第一微服务调用失败次数;在所述调用失败次数大于阈值时,确定对所述第一微服务的调用失败原因为对所述若干个业务节点的调用异常,将所述调用失败原因在所述测试终端的信息展示界面显示
其中,该阈值可以为20、50、70或者其他值。
可以看出,在上述示例中,在业务节点中未检测到调用信息时,测试终端多次执行该测试请求,主要为了防止单次测试时,在调用微服务应用,当若干个业务节点均被占用,没有可利用的空闲业务节点调用微服务时,导致微服务应用的调用失败,减少偶然误差,提高确定出的调用失败原因的说服力。
在一可能的示例中,在所述测试请求为针对目标微服务的测试请求时,所述目标微服务为所述微服务架构中版本待更新的微服务,所述在根据所述测试用例对所述微服务架构进行测试之前,所述方法还包括:构造公共测试环境和目标测试环境;所述公共测试环境用于存放所述微服务架构中当前版本的所有微服务;所述目标测试环境用于存放所述微服务架构中所有的目标微服务。在本示例中,通过构建公共测试环境和目标测试环境将当前版本和待更新版本分别存放在不同的测试环境中,从而预先对微服务进行分类,提高测试效率。
可选的,基于上述构建的测试环境,根据所述测试用例对所述微服务架构进行测试的实现过程可以为:获取在利用所述测试用例对所述目标微服务测试时对微服务的调用请求;如所述调用请求对应的微服务位于所述公共测试环境中,从所述公共测试环境中调用与所述调用请求对应的微服务,以完成对所述目标微服务的测试;如所述调用请求对应的微服务位于所述公共测试环境和所述目标测试环境中,从所述目标测试环境中调用与所述调用请求对应的微服务,以完成对所述目标微服务的测试。可以看出,在本示例中,当目标微服务为多个时,当对任意一个目标微服务进行测试时,设置目标测试环境中的微服务的调用优先级最高,从而保证测试时,利用最新版本对所述目标微服务进行测试。
参阅图2,图2为本申请实施例提供的另一种微服务架构的测试方法,该方法应用于测试终端,该方法包括如步骤S201~S208中所示的内容:
步骤S201、所述测试终端对微服务架构下的若干个微服务的日志文件中***目标日志,所述目标日志用于记录测试时对每个微服务的调用信息。
步骤S202、所述测试终端接收对所述微服务架构的测试请求,确定与所述测试请求对应的测试用例。
步骤S203、所述测试终端在所述微服务架构下的若干个业务节点的每个业务节点的日志文件中***检查点说明。
步骤S204、所述测试终端根据所述测试用例确定微服务间的调用轨迹,依次检测所述调用轨迹上的每个微服务的目标日志。
步骤S205、所述测试终端判断每个微服务的目标日志中是否生成调用信息,在确定出目标日志中未生成调用信息的第一微服务时,确定所述若干个业务节点中每个业务节点的检查点说明中是否生成调用信息。
步骤S206、在所述若干个业务节点中的一业务节点的检查点说明中生成调用信息时,所述测试终端确定对所述第一微服务的调用失败原因为所述第一微服务异常,将所述调用失败原因在所述测试终端的信息展示界面显示。
步骤S207、在所述若干个业务节点的所有业务节点的检查点说明中未生成调用信息,所述测试终端重复执行所述测试请求。
步骤S208、在重复执行所述测试请求时,所述测试终端统计对所述第一微服务调用失败次数,在所述调用失败次数大于阈值时,确定对所述第一微服务的调用失败原因为对所述若干个业务节点的调用异常,将所述调用失败原因在所述测试终端的信息展示界面显示。
需要说明的是,图2所示的方法的各个步骤的具体实现过程可参见上述图1所述方法的具体实现过程,在此不再叙述。
可以看出,在本申请实施例中,在对微服务架构进行测试之前,首先在各个微服务的日志文件中***目标日志,以记录测试时对微服务用的调用信息,从而根据该调用信息确定测试时微服务间的调用逻辑,从而使微服务架构下不可见的调用信息从不可见便可见,以便在微服务异常时,通过查看各个微服务的目标日志中是否记录调用信息,从而精确的判断出导致测试失败的微服务信息,将该微服务信息显示在信息展示界面,从而对微服务进行精确地维护,提高维护效率;而且,对业务节点***检查点说明,从而得到对该微服务调用失败的具体原因(即微服务堵塞还是业务节点堵塞),进一步地提高维护效率。
参阅图3,图3为本申请实施例提供的另一种微服务架构的测试方法,该方法应用于测试终端,该方法包括如步骤S301~S306中所示的内容:
步骤S301、所述测试终端对微服务架构下的若干个微服务的日志文件中***目标日志,所述目标日志用于记录测试时对每个微服务的调用信息。
步骤S302、所述测试终端接收对所述微服务架构的测试请求,在所述测试请求为针对目标微服务的测试请求时,构造公共测试环境和目标测试环境。
其中,所述目标微服务为所述微服务架构中版本待更新的微服务。
其中,所述公共测试环境用于存放所述微服务架构中当前版本的所有微服务;所述目标测试环境用于存放所述微服务架构中所有的目标微服务。
步骤S303、所述测试终端从数据库获取与所述测试请求对应的测试用例。
步骤S304、所述测试终端获取在利用所述测试用例对所述目标微服务测试时对微服务的调用请求。
步骤S305、如所述调用请求对应的微服务位于所述公共测试环境中,所述测试终端获取在利用所述测试用例对所述目标微服务进行测试时,对其他微服务的调用请求,根据所述测试用例对所述目标微服务进行测试。
步骤S306、如所述调用请求对应的微服务位于所述公共测试环境和所述目标测试环境中,所述测试终端从所述目标测试环境中调用与所述调用请求对应的微服务,以完成对所述目标微服务的测试。
需要说明的是,图3所示的方法的各个步骤的具体实现过程可参见上述图1所述方法的具体实现过程,在此不再叙述。
可以看出,在本申请实施例中,在对微服务架构进行测试之前,首先在各个微服务的日志文件中***目标日志,以记录测试时对微服务用的调用信息,从而根据该调用信息确定测试时微服务间的调用逻辑,从而使微服务架构下不可见的调用信息从不可见便可见,以便在微服务异常时,通过查看各个微服务的目标日志中是否记录调用信息,从而精确的判断出导致测试失败的微服务信息,将该微服务信息显示在信息展示界面,从而对微服务进行精确地维护,提高维护效率;而且,在对目标微服务进行版本测试时,将不同版本的微服务存放到不同的测试环境,从而在测试时,加速对微服务的调用过程,提高了测试速度。
与上述图1、图2、图3所示的实施例一致的,请参阅图4,图4为本申请实施例提供的一种微服务架构的测试终端400的结构示意图,如图4所示,该测试终端400包括处理器、存储器、通信接口以及一个或多个程序,其中,上述一个或多个程序不同于上述一个或多个应用程序,且上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,上述程序包括用于执行以下步骤的指令:
对微服务架构下的若干个微服务的日志文件中***目标日志,所述目标日志用于记录测试时对每个微服务的调用信息;
接收对所述微服务架构的测试请求,确定与所述测试请求对应的测试用例;
根据所述测试用例对所述微服务架构进行测试;
获取与所述测试用例对应的微服务的目标日志中记录的调用信息;
根据所述调用信息确定所述微服务架构的测试结果。
在一可能的示例中,在根据所述调用信息确定所述微服务架构的测试结果时,上述程序具体用于执行以下步骤的指令:
根据所述测试用例确定微服务间的调用轨迹;
依次检测所述调用轨迹上的每个微服务的目标日志;
判断每个微服务的目标日志中是否生成调用信息;
如是,获取所述测试用例对应的输出参数,以及输入的与所述测试用例对应的预期输出结果,将所述输出参数与所述预期输出结果进行比对,如所述输出参数与所述预期输出结果匹配,在测试终端的信息展示界面显示测试成功的测试结果,如所述输出参数与所述预期输出结果不匹配,在所述测试终端的信息展示界面输出测试失败的测试结果以及提示信息,所述提示信息用于提示回滚所述微服务架构的脚本代码;
如否,确定出目标日志中未生成调用信息的第一微服务,在所述测试终端的信息展示界面显示测试失败以及对所述第一微服务调用失败的测试结果。
在一可能的示例中,在微服务架构中包括若干个业务节点时,所述在根据所述测试用例对所述微服务架构进行测试之前,上述程序还用于执行以下步骤的指令:
在所述若干个业务节点的每个业务节点的日志文件中***检查点说明;
所述检查点说明用于记录测试时对业务节点的调用信息。
在一可能的示例中,上述程序还用于执行以下步骤的指令:
在确定出目标日志中未生成调用信息的第一微服务时,确定所述若干个业务节点中每个业务节点的检查点说明中是否生成调用信息;
如所述若干个业务节点中的一业务节点的检查点说明中生成调用信息,确定对所述第一微服务的调用失败原因为所述第一微服务异常,将所述调用失败原因在所述测试终端的信息展示界面显示。
在一可能的示例中,上述程序还用于执行以下步骤的指令:
如所述若干个业务节点的所有业务节点的检查点说明中未生成调用信息,重复执行所述测试请求;
在重复执行所述测试请求时,统计对所述第一微服务调用失败次数;
在所述调用失败次数大于阈值时,确定对所述第一微服务的调用失败原因为对所述若干个业务节点的调用异常,将所述调用失败原因在所述测试终端的信息展示界面显示。
在一可能的示例中,当所述测试请求为针对目标微服务的测试请求时,所述目标微服务为所述微服务架构中版本待更新的微服务,在确定与所述测试请求对应的测试用例之前,上述程序还用于执行以下步骤的指令:
构造公共测试环境和目标测试环境;
所述公共测试环境用于存放所述微服务架构中当前版本的所有微服务;
所述目标测试环境用于存放所述微服务架构中所有的目标微服务。
在一可能的示例中,在根据所述测试用例对所述微服务架构进行测试时,上述程序具体用于执行以下步骤的指令:
获取在利用所述测试用例对所述目标微服务进行测试时,对其他微服务的调用请求;
如所述调用请求对应的微服务位于所述公共测试环境中,从所述公共测试环境中调用与所述调用请求对应的微服务,以完成对所述目标微服务的测试;
如所述调用请求对应的微服务位于所述公共测试环境和所述目标测试环境中,从所述目标测试环境中调用与所述调用请求对应的微服务,以完成对所述目标微服务的测试。
参阅图5,图5示出了上述实施例中所涉及的微服务架构的测试终端500的一种可能的功能单元组成框图,测试终端500包括***单元510、接收单元520、测试单元530、获取单元540和确定单元550;
***单元510,用于对微服务架构下的若干个微服务的日志文件中***目标日志,所述目标日志用于记录测试时对每个微服务的调用信息;
接收单元520,用于接收对所述微服务架构的测试请求,确定与所述测试请求对应的测试用例;
测试单元530,用于根据所述测试用例对所述微服务架构进行测试;
获取单元540,用于获取与所述测试用例对应的微服务的目标日志中记录的调用信息;
确定单元550,用于根据所述调用信息确定所述微服务架构的测试结果。
在一可能的示例中,在根据所述调用信息确定所述微服务架构的测试结果时,确定单元550,具体用于:根据所述测试用例确定微服务间的调用轨迹;依次检测所述调用轨迹上的每个微服务的目标日志;判断每个微服务的目标日志中是否生成调用信息;如是,获取所述测试用例对应的输出参数,以及输入的与所述测试用例对应的预期输出结果,将所述输出参数与所述预期输出结果进行比对,如所述输出参数与所述预期输出结果匹配,在测试终端的信息展示界面显示测试成功的测试结果,如所述输出参数与所述预期输出结果不匹配,在所述测试终端的信息展示界面输出测试失败的测试结果以及提示信息,所述提示信息用于提示回滚所述微服务架构的脚本代码;如否,确定出目标日志中未生成调用信息的第一微服务,在所述测试终端的信息展示界面显示测试失败以及对所述第一微服务调用失败的测试结果。
在一可能的示例中,在微服务架构中包括若干个业务节点时,所述在根据所述测试用例对所述微服务架构进行测试之前,***单元510,还用于:在所述若干个业务节点的每个业务节点的日志文件中***检查点说明;所述检查点说明用于记录测试时对业务节点的调用信息。
在一可能的示例中,确定单元550,还用于:在确定出目标日志中未生成调用信息的第一微服务时,确定所述若干个业务节点中每个业务节点的检查点说明中是否生成调用信息;如所述若干个业务节点中的一业务节点的检查点说明中生成调用信息,确定对所述第一微服务的调用失败原因为所述第一微服务异常,将所述调用失败原因在所述测试终端的信息展示界面显示。
在一可能的示例中,确定单元550,还用于:如所述若干个业务节点的所有业务节点的检查点说明中未生成调用信息,重复执行所述测试请求;在重复执行所述测试请求时,统计对所述第一微服务调用失败次数;在所述调用失败次数大于阈值时,确定对所述第一微服务的调用失败原因为对所述若干个业务节点的调用异常,将所述调用失败原因在所述测试终端的信息展示界面显示。
在一可能的示例中,测试终端500还包括构造单元560;
当所述测试请求为针对目标微服务的测试请求时,所述目标微服务为所述微服务架构中版本待更新的微服务,在确定与所述测试请求对应的测试用例之前,构造单元560,用于构造公共测试环境和目标测试环境;所述公共测试环境用于存放所述微服务架构中当前版本的所有微服务;所述目标测试环境用于存放所述微服务架构中所有的目标微服务。
在一可能的示例中,在根据所述测试用例对所述微服务架构进行测试时,测试单元530,具体用于:获取在利用所述测试用例对所述目标微服务进行测试时,对其他微服务的调用请求;如所述调用请求对应的微服务位于所述公共测试环境中,从所述公共测试环境中调用与所述调用请求对应的微服务,以完成对所述目标微服务的测试;如所述调用请求对应的微服务位于所述公共测试环境和所述目标测试环境中,从所述目标测试环境中调用与所述调用请求对应的微服务,以完成对所述目标微服务的测试。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于存储计算机程序,其中,该计算机程序被处理器执行,以实现如上述方法实施例中记载的任何一种微服务架构的测试方法的部分或全部步骤。
本申请实施例还提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行如上述方法实施例中记载的任何一种微服务架构的测试方法的部分或全部步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种微服务架构的测试方法,其特征在于,所述方法包括:
对微服务架构下的若干个微服务的日志文件中***目标日志,所述目标日志用于记录测试时对每个微服务的调用信息;
接收对所述微服务架构的测试请求,确定与所述测试请求对应的测试用例;
根据所述测试用例对所述微服务架构进行测试;
获取与所述测试用例对应的微服务的目标日志中记录的调用信息;
根据所述调用信息确定所述微服务架构的测试结果。
2.根据权利要求1所述的方法,其特征在于,所述根据所述调用信息确定所述微服务架构的测试结果具体包括:
根据所述测试用例确定微服务间的调用轨迹;
依次检测所述调用轨迹上的每个微服务的目标日志;
判断每个微服务的目标日志中是否生成调用信息;
如是,获取所述测试用例对应的输出参数,以及输入的与所述测试用例对应的预期输出结果,将所述输出参数与所述预期输出结果进行比对,如所述输出参数与所述预期输出结果匹配,在测试终端的信息展示界面显示测试成功的测试结果,如所述输出参数与所述预期输出结果不匹配,在所述测试终端的信息展示界面输出测试失败的测试结果以及提示信息,所述提示信息用于提示回滚所述微服务架构的脚本代码;
如否,确定出目标日志中未生成调用信息的第一微服务,在所述测试终端的信息展示界面显示测试失败以及对所述第一微服务调用失败的测试结果。
3.根据权利要求1或2所述的方法,其特征在于,所述微服务架构中包括若干个业务节点,所述在根据所述测试用例对所述微服务架构进行测试之前,所述方法还包括:
在所述若干个业务节点的每个业务节点的日志文件中***检查点说明;
所述检查点说明用于记录测试时对业务节点的调用信息。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在确定出目标日志中未生成调用信息的第一微服务时,确定所述若干个业务节点中每个业务节点的检查点说明中是否生成调用信息;
如所述若干个业务节点中的一业务节点的检查点说明中生成调用信息,确定对所述第一微服务的调用失败原因为所述第一微服务异常,将所述调用失败原因在所述测试终端的信息展示界面显示。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
如所述若干个业务节点的所有业务节点的检查点说明中未生成调用信息,重复执行所述测试请求;
在重复执行所述测试请求时,统计对所述第一微服务调用失败次数;
在所述调用失败次数大于阈值时,确定对所述第一微服务的调用失败原因为对所述若干个业务节点的调用异常,将所述调用失败原因在所述测试终端的信息展示界面显示。
6.根据权利要求1所述的方法,其特征在于,当所述测试请求为针对目标微服务的测试请求时,所述目标微服务为所述微服务架构中版本待更新的微服务,所述在确定与所述测试请求对应的测试用例之前,所述方法还包括:
构造公共测试环境和目标测试环境;
所述公共测试环境用于存放所述微服务架构中当前版本的所有微服务;
所述目标测试环境用于存放所述微服务架构中所有的目标微服务。
7.根据权利要求6所述的方法,其特征在于,所述根据所述测试用例对所述微服务架构进行测试具体包括:
获取在利用所述测试用例对所述目标微服务进行测试时,对其他微服务的调用请求;
如所述调用请求对应的微服务位于所述公共测试环境中,从所述公共测试环境中调用与所述调用请求对应的微服务,以完成对所述目标微服务的测试;
如所述调用请求对应的微服务位于所述公共测试环境和所述目标测试环境中,从所述目标测试环境中调用与所述调用请求对应的微服务,以完成对所述目标微服务的测试。
8.一种测试终端,其特征在于,所述测试终端包括:
***单元,用于对微服务架构下的若干个微服务的日志文件中***目标日志,所述目标日志用于记录测试时对每个微服务的调用信息;
接收单元,用于接收对所述微服务架构的测试请求,确定与所述测试请求对应的测试用例;
测试单元,用于根据所述测试用例对所述微服务架构进行测试;
获取单元,用于获取与所述测试用例对应的微服务的目标日志中记录的调用信息;
确定单元,用于根据所述调用信息确定所述微服务架构的测试结果。
9.一种测试终端,其特征在于,包括处理器、存储器、通信接口以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行权利要求1-7任一项方法中的步骤的指令。
10.一种计算机可读存储介质,其特征在于,其用于存储计算机程序,其中,所述计算机程序被处理器执行,以实现如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910296073.2A CN110096437A (zh) | 2019-04-12 | 2019-04-12 | 微服务架构的测试方法及相关产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910296073.2A CN110096437A (zh) | 2019-04-12 | 2019-04-12 | 微服务架构的测试方法及相关产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110096437A true CN110096437A (zh) | 2019-08-06 |
Family
ID=67444797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910296073.2A Pending CN110096437A (zh) | 2019-04-12 | 2019-04-12 | 微服务架构的测试方法及相关产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110096437A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110659206A (zh) * | 2019-08-30 | 2020-01-07 | 平安普惠企业管理有限公司 | 基于微服务的模拟架构建立方法、装置、介质及电子设备 |
CN111274150A (zh) * | 2020-02-07 | 2020-06-12 | 北京字节跳动网络技术有限公司 | 服务实例访问方法、装置和电子设备 |
CN111506505A (zh) * | 2020-04-13 | 2020-08-07 | 北京奇艺世纪科技有限公司 | 一种测试用例获取方法及装置 |
CN111522738A (zh) * | 2020-03-30 | 2020-08-11 | 拉扎斯网络科技(上海)有限公司 | 微服务***的测试方法、装置、存储介质和电子设备 |
CN111782519A (zh) * | 2020-06-29 | 2020-10-16 | 中国工商银行股份有限公司 | 测试方法、装置和电子设备 |
CN111782518A (zh) * | 2020-06-29 | 2020-10-16 | 中国工商银行股份有限公司 | 测试方法、装置和电子设备 |
CN112181818A (zh) * | 2020-09-23 | 2021-01-05 | 中国电子技术标准化研究院 | 开源社区中的微服务架构工业app测试方法及*** |
CN112286803A (zh) * | 2020-10-23 | 2021-01-29 | 北京三快在线科技有限公司 | 一种测试用例的检测方法及装置 |
CN112463634A (zh) * | 2020-12-11 | 2021-03-09 | 中国人民银行清算总中心 | 微服务架构下的软件测试方法及装置 |
CN112905486A (zh) * | 2021-03-26 | 2021-06-04 | 建信金融科技有限责任公司 | 一种服务集成测试方法、装置和*** |
CN115242880A (zh) * | 2022-07-14 | 2022-10-25 | 湖南三湘银行股份有限公司 | 一种基于网络请求桥接的微服务框架接入方法 |
CN115987823A (zh) * | 2022-12-23 | 2023-04-18 | 天翼安全科技有限公司 | 一种微服务测试方法、***及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108847989A (zh) * | 2018-06-29 | 2018-11-20 | 杭州安恒信息技术股份有限公司 | 基于微服务架构的日志处理方法、业务服务***以及电子设备 |
CN109062809A (zh) * | 2018-09-20 | 2018-12-21 | 北京奇艺世纪科技有限公司 | 一种线上测试用例生成方法、装置及电子设备 |
CN109298997A (zh) * | 2018-08-08 | 2019-02-01 | 平安科技(深圳)有限公司 | 接口测试方法、***、计算机设备和存储介质 |
-
2019
- 2019-04-12 CN CN201910296073.2A patent/CN110096437A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108847989A (zh) * | 2018-06-29 | 2018-11-20 | 杭州安恒信息技术股份有限公司 | 基于微服务架构的日志处理方法、业务服务***以及电子设备 |
CN109298997A (zh) * | 2018-08-08 | 2019-02-01 | 平安科技(深圳)有限公司 | 接口测试方法、***、计算机设备和存储介质 |
CN109062809A (zh) * | 2018-09-20 | 2018-12-21 | 北京奇艺世纪科技有限公司 | 一种线上测试用例生成方法、装置及电子设备 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110659206A (zh) * | 2019-08-30 | 2020-01-07 | 平安普惠企业管理有限公司 | 基于微服务的模拟架构建立方法、装置、介质及电子设备 |
CN110659206B (zh) * | 2019-08-30 | 2024-05-24 | 深圳市众禧禾立科技有限公司 | 基于微服务的模拟架构建立方法、装置、介质及电子设备 |
CN111274150A (zh) * | 2020-02-07 | 2020-06-12 | 北京字节跳动网络技术有限公司 | 服务实例访问方法、装置和电子设备 |
CN111274150B (zh) * | 2020-02-07 | 2023-08-22 | 北京字节跳动网络技术有限公司 | 服务实例访问方法、装置和电子设备 |
CN111522738A (zh) * | 2020-03-30 | 2020-08-11 | 拉扎斯网络科技(上海)有限公司 | 微服务***的测试方法、装置、存储介质和电子设备 |
CN111506505A (zh) * | 2020-04-13 | 2020-08-07 | 北京奇艺世纪科技有限公司 | 一种测试用例获取方法及装置 |
CN111782519A (zh) * | 2020-06-29 | 2020-10-16 | 中国工商银行股份有限公司 | 测试方法、装置和电子设备 |
CN111782518A (zh) * | 2020-06-29 | 2020-10-16 | 中国工商银行股份有限公司 | 测试方法、装置和电子设备 |
CN112181818B (zh) * | 2020-09-23 | 2023-06-27 | 中国电子技术标准化研究院 | 基于变组合强度的微服务架构工业app测试方法及*** |
CN112181818A (zh) * | 2020-09-23 | 2021-01-05 | 中国电子技术标准化研究院 | 开源社区中的微服务架构工业app测试方法及*** |
CN112286803A (zh) * | 2020-10-23 | 2021-01-29 | 北京三快在线科技有限公司 | 一种测试用例的检测方法及装置 |
CN112463634A (zh) * | 2020-12-11 | 2021-03-09 | 中国人民银行清算总中心 | 微服务架构下的软件测试方法及装置 |
CN112463634B (zh) * | 2020-12-11 | 2024-03-29 | 中国人民银行清算总中心 | 微服务架构下的软件测试方法及装置 |
CN112905486A (zh) * | 2021-03-26 | 2021-06-04 | 建信金融科技有限责任公司 | 一种服务集成测试方法、装置和*** |
CN115242880A (zh) * | 2022-07-14 | 2022-10-25 | 湖南三湘银行股份有限公司 | 一种基于网络请求桥接的微服务框架接入方法 |
CN115987823A (zh) * | 2022-12-23 | 2023-04-18 | 天翼安全科技有限公司 | 一种微服务测试方法、***及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110096437A (zh) | 微服务架构的测试方法及相关产品 | |
CN108563548B (zh) | 异常检测方法及装置 | |
US11263071B2 (en) | Enabling symptom verification | |
US7788205B2 (en) | Using stochastic models to diagnose and predict complex system problems | |
CN106649084A (zh) | 函数调用信息的获取方法及装置、测试设备 | |
US10095599B2 (en) | Optimization for application runtime monitoring | |
WO2012138319A1 (en) | Creating a correlation rule defining a relationship between event types | |
CN108595316A (zh) | 分布式应用的生命周期管理方法、管理器、设备和介质 | |
CN113657715A (zh) | 一种基于核密度估计调用链的根因定位方法及*** | |
CN111177165A (zh) | 数据一致性检测的方法、装置及设备 | |
US20160259714A1 (en) | Production sampling for determining code coverage | |
CN109359020A (zh) | 启动时间测试方法及装置、计算机装置及存储介质 | |
CN105637488A (zh) | 追踪源代码用于末端用户监控 | |
CN104090839A (zh) | 异常场景模拟测试方法及装置 | |
Cotroneo et al. | Enhancing failure propagation analysis in cloud computing systems | |
CN115827436A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN110598419A (zh) | 一种区块链客户端漏洞挖掘方法、装置、设备及存储介质 | |
CN111538659B (zh) | 业务场景的接口测试方法、***、电子设备和存储介质 | |
CN116662351A (zh) | 一种银行数据采集方法以及*** | |
CN111240981A (zh) | 一种接口测试方法、***及平台 | |
CN110083525A (zh) | 内存泄露的定位方法、装置、计算机设备及存储介质 | |
CN114490408A (zh) | 一种测试用例生成方法、装置、设备、存储介质及产品 | |
CN114239296A (zh) | 一种数据处理方法、装置及电子设备 | |
CN110515803A (zh) | 针对日志消息的处理方法、装置以及电子设备 | |
CN109885475A (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 |