CN115587038A - 消息中间件的混沌测试方法、系统、电子设备及存储介质 - Google Patents
消息中间件的混沌测试方法、系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115587038A CN115587038A CN202211260622.9A CN202211260622A CN115587038A CN 115587038 A CN115587038 A CN 115587038A CN 202211260622 A CN202211260622 A CN 202211260622A CN 115587038 A CN115587038 A CN 115587038A
- Authority
- CN
- China
- Prior art keywords
- document
- message middleware
- middleware
- chaotic
- result
- 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
- 230000000739 chaotic effect Effects 0.000 title claims abstract description 46
- 238000010998 test method Methods 0.000 title claims abstract description 27
- 238000000034 method Methods 0.000 claims abstract description 47
- 238000013102 re-test Methods 0.000 claims abstract description 47
- 238000012544 monitoring process Methods 0.000 claims abstract description 36
- 238000013101 initial test Methods 0.000 claims abstract description 26
- 230000008569 process Effects 0.000 claims abstract description 25
- 230000002159 abnormal effect Effects 0.000 claims abstract description 21
- 238000012360 testing method Methods 0.000 claims description 21
- 238000002347 injection Methods 0.000 claims description 17
- 239000007924 injection Substances 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 10
- 241000283973 Oryctolagus cuniculus Species 0.000 claims description 5
- 238000004891 communication Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 239000000243 solution Substances 0.000 description 3
- 230000010485 coping Effects 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000000306 component Substances 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013522 software testing 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
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
本发明涉及计算机技术领域,具体涉及消息中间件的混沌测试方法、系统、电子设备及存储介质。该方法包括:S10、启动消息中间件,记录消息中间件的运行状态,生成文档A;S20、分步骤注入多个故障,记录注入的故障类型,生成文档B;S30、注入故障后监测消息中间件、应用服务和应用系统的运行状态;S40、若步骤S30的运行状态正常,流程结束;S50、若步骤S30的运行状态异常,则整合所述文档A和所述文档B,获得整合文档,重新启动中间件进行复测,以便排除其他意外因素;S60、重新执行步骤S10~S30;S70、若复测结果与初测结果一致,则认为符合预期,流程结束。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及消息中间件的混沌测试方法、系统、电子设备及存储介质。
背景技术
近来,消息中间件逐渐成为计算机行业系统内部的核心组件。现有的对消息中间件的测试,一般仅重点关注常见的场景,如中间件的消息吞吐量,中间件的负载性能或者简单的模拟消息积压,如专利CN201910334044.0所述,然而实际业务环境更为的复杂、多变,仅仅是常规的测试,已经越来越不适用复杂的分布式服务应用环境。
混沌实验是近年来在软件测试领域兴起的研究方向。混沌实验主要用于观察微服务软件系统在有随机故障注入的情况下是否具备应对故障的能力。
现有的关于中间件的测试方法,是针对中间件的常规测试方法如:CN202110503504.5一种消息中间件性能测试方法,对消息中间件进行负载性能测试。CN201910334044.0一种消息中间件的压测方法、装置及终端设备,对消息中间件模拟消息积压的异常场景测试。
现有的测试方法仅能对消息中间件做常规的性能测试以及简单的模拟消息积压异常场景测试,测试场景以及测试方法比较单一。
发明内容
为了解决上述现有技术中存在的技术问题,本发明提供了一种消息中间件的混沌测试方法、系统、电子设备及存储介质,能够针对消息中间件做一些复杂、多样性的混沌测试方法,提前预警应用服务系统在多样故障注入的情况下能否具备应对故障的能力,方便开发以及运维人员提前做好防范措施。
为实现上述目的,本发明实施例提供了如下的技术方案:
第一方面,在本发明提供的一个实施例中,提供了消息中间件的混沌测试方法,该方法包括以下步骤:
S10、启动消息中间件,记录消息中间件的运行状态,生成文档A;
S20、分步骤注入多个故障,记录注入的故障类型,生成文档B;
S30、注入故障后监测消息中间件、应用服务和应用系统的运行状态;
S40、若步骤S30的运行状态正常,流程结束;
S50、若步骤S30的运行状态异常,则整合所述文档A和所述文档B,获得整合文档,重新启动中间件进行复测,以便排除其他意外因素;
S60、重新执行步骤S10~S30;
S70、若复测结果与初测结果一致,则认为符合预期,流程结束。
作为本发明的进一步方案,所述故障即为消息中间件的混沌方法。
作为本发明的进一步方案,所述故障包括RocketMQ,WebSphereMQ,EMQ,Kafka所有的消息中间件的混沌方法。
作为本发明的进一步方案,所述故障以Rabbit MQ为例,包括如下类型:
MQ集群有3个节点,生产消费信息过程中,模拟正常停止一个或两个节点的MQ服务;
MQ集群正常运行时,模拟MQ集群宕机;
当MQ节点有消息积压时,MQ节点重启;
MQ集群一个节点长时间宕机后重启;
MQ集群正常运行时,删除Rabbit MQ一个节点的rabbit@h-test-mq-0002-mnesia文件夹;
删除MQ运行日志;
任意挂起MQ的一个节点。
作为本发明的进一步方案,所述整合所述文档A和所述文档B,为整合故障类型,中间件、系统服务的运行状态和结果。
本发明能够尽可能多的模拟复杂线上环境的故障,通过给消息中间件注入这些故障,获取到特定故障下消息中间件的运行状态以及应用服务和系统服务的表现,能够更好的保障系统稳定运行。
第二方面,在本发明提供的又一个实施例中,提供了消息中间件的混沌测试系统,该系统包括:启动模块、故障注入模块和状态监控和判断模块;
所述启动模块,用于启动消息中间件,记录消息中间件的运行状态,生成文档A;
所述故障注入模块,用于分步骤注入多个故障,记录注入的故障类型,生成文档B;
所述状态监控和判断模块,用于注入故障后监测消息中间件、应用服务和应用系统的运行状态,判断中间件、应用服务和应用系统的运行状态是否正常,若运行状态异常,则整合所述文档A和所述文档B,获得整合文档,重新启动中间件进行复测。
作为本发明的进一步方案,所述状态监控判断模块,用于若运行状态异常和应用系统的运行状态是否正常或复测结果与初测结果不一致,则整合所述文档A和所述文档B,获得整合文档,重新启动中间件进行复测,包括用于驱动所述启动模块再次启动消息中间件,记录消息中间件的运行状态,生成文档A;用于驱动所述故障注入模块分步骤注入多个故障,记录注入的故障类型,生成文档B,若复测结果与初测结果一致,则认为符合预期,流程结束;若复测结果与初测结果不一致,重复复测。
作为本发明的进一步方案,所述状态监控判断模块包括监控单元、判断单元和执行单元;
所述监控单元,用于注入故障后监测消息中间件、应用服务和应用系统的运行状态;
所述判断单元,用于判断中间件、应用服务和应用系统的运行状态是否正常,用于判断复测结果与初测结果是否一致;
若中间件、应用服务和应用系统的运行状态是否正常或复测结果与初测结果是否一致,则结束;
若运行状态异常和应用系统的运行状态是否正常或复测结果与初测结果不一致,则整合所述文档A和所述文档B,获得整合文档,重新启动中间件进行复测;
所述执行单元,用于若运行状态异常和应用系统的运行状态是否正常或复测结果与初测结果不一致,则整合所述文档A和所述文档B,获得整合文档,重新启动中间件进行复测,驱动所述启动模块再次启动消息中间件,记录消息中间件的运行状态,生成文档A;驱动所述故障注入模块分步骤注入多个故障,记录注入的故障类型,生成文档B。
本发明能够尽可能多的模拟复杂线上环境的故障,通过给消息中间件注入这些故障,获取到特定故障下消息中间件的运行状态以及应用服务和系统服务的表现,能够更好的保障系统稳定运行。
第三方面,在本发明提供的又一个实施例中,提供了一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器加载并执行所述计算机程序时实现消息中间件的混沌测试方法的步骤。
第四方面,在本发明提供的再一个实施例中,提供了一种存储介质,存储有计算机程序,所述计算机程序被处理器加载并执行时实现所述消息中间件的混沌测试方法的步骤。
本发明提供的技术方案,具有如下有益效果:
本发明提供的消息中间件的混沌测试方法、系统、电子设备及存储介质,该方法包括以下步骤:S10、启动消息中间件,记录消息中间件的运行状态,生成文档A;S20、分步骤注入多个故障,记录注入的故障类型,生成文档B;S30、注入故障后监测消息中间件、应用服务和应用系统的运行状态;S40、若步骤S30的运行状态正常,流程结束;S50、若步骤S30的运行状态异常,则整合所述文档A和所述文档B,获得整合文档,重新启动中间件进行复测,以便排除其他意外因素;S60、重新执行步骤S10~S30;S70、若复测结果与初测结果一致,则认为符合预期,流程结束。本发明能够尽可能多的模拟复杂线上环境的故障,通过给消息中间件注入这些故障,获取到特定故障下消息中间件的运行状态以及应用服务和系统服务的表现,能够更好的保障系统稳定运行。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本发明一个实施例的消息中间件的混沌测试方法的流程图;
图2为本发明一个实施例的消息中间件的混沌测试方法的逻辑图;
图3为本发明一个实施例的消息中间件的混沌测试系统的结构框图;
图4为本发明一个实施例的消息中间件的混沌测试系统中状态监控和判断模块的结构框图;
图5为本发明一个实施例的电子设备的结构图。
图中:启动模块-100、故障注入模块-200、状态监控和判断模块-300、监控单元-301、判断单元-302、执行单元-303、处理器-401、通信接口-402、存储器-403、通信总线-404。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
具体地,下面结合附图,对本发明实施例作进一步阐述。
请参阅图1和2,图1是本发明实施例提供的一种消息中间件的混沌测试方法的流程图,图2是本发明实施例提供的一种消息中间件的混沌测试方法的逻辑图,如图1所示,该消息中间件的混沌测试方法包括步骤S10至步骤S70。
S10、启动消息中间件,记录消息中间件的运行状态,生成文档A。
S20、分步骤注入多个故障,记录注入的故障类型,生成文档B。
在本发明的实施例中,所述故障即为消息中间件的混沌方法。
所述故障包括RocketMQ,WebSphereMQ,EMQ,Kafka所有的消息中间件的混沌方法。
其中,所述故障以Rabbit MQ为例,包括如下类型:
1、MQ集群有3个节点,生产消费信息过程中,模拟正常停止一个或两个节点的MQ服务;
2、MQ集群正常运行时,模拟MQ集群宕机;
3、当MQ节点有消息积压时,MQ节点重启;
4、MQ集群一个节点长时间宕机后重启;
5、MQ集群正常运行时,删除Rabbit MQ一个节点的rabbit@h-test-mq-0002-mnesia文件夹;
6、删除MQ运行日志;
7、任意挂起MQ的一个节点;
如上故障分别进行操作,在预设时间段后,监测消息中间件的运行状态以及业务系统是否收到影响。
S30、注入故障后监测消息中间件、应用服务和应用系统的运行状态。
S40、若步骤S30的运行状态正常,流程结束。
S50、若步骤S30的运行状态异常,则整合所述文档A和所述文档B,获得整合文档,重新启动中间件进行复测,以便排除其他意外因素。
在本发明实施例中,所述整合所述文档A和所述文档B,为整合故障类型,中间件、系统服务的运行状态和结果。
S60、重新执行步骤S10~S30。
S70、若复测结果与初测结果一致,则认为符合预期,流程结束。
一种消息中间件的混沌测试方法,能够尽可能多的模拟复杂线上环境的故障,通过给消息中间件注入这些故障,获取到特定故障下消息中间件的运行状态以及应用服务和系统服务的表现,能够更好的保障系统稳定运行。
应该理解的是,上述虽然是按照某一顺序描述的,但是这些步骤并不是必然按照上述顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,本实施例的一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,参见图3所示,在本发明的实施例中还提供了消息中间件的混沌测试系统,该系统包括启动模块100、故障注入模块200和状态监控判断模块300。
所述启动模块100,用于启动消息中间件,记录消息中间件的运行状态,生成文档A。
在本发明的实施例中,
所述故障注入模块200,用于分步骤注入多个故障,记录注入的故障类型,生成文档B。
在本发明的实施例中,所述故障即为消息中间件的混沌方法。
所述故障包括RocketMQ,WebSphereMQ,EMQ,Kafka所有的消息中间件的混沌方法。
其中,所述故障以Rabbit MQ为例,包括如下类型:
1、MQ集群有3个节点,生产消费信息过程中,模拟正常停止一个或两个节点的MQ服务;
2、MQ集群正常运行时,模拟MQ集群宕机;
3、当MQ节点有消息积压时,MQ节点重启;
4、MQ集群一个节点长时间宕机后重启;
5、MQ集群正常运行时,删除Rabbit MQ一个节点的rabbit@h-test-mq-0002-mnesia文件夹;
6、删除MQ运行日志;
7、任意挂起MQ的一个节点;
如上故障分别进行操作,在预设时间段后,监测消息中间件的运行状态以及业务系统是否收到影响。
所述状态监控判断模块300,用于注入故障后监测消息中间件、应用服务和应用系统的运行状态,判断中间件、应用服务和应用系统的运行状态是否正常,若运行状态异常,则整合所述文档A和所述文档B,获得整合文档,重新启动中间件进行复测,以便排除其他意外因素。
所述状态监控判断模块300,用于若运行状态异常,则整合所述文档A和所述文档B,获得整合文档,重新启动中间件进行复测,包括用于驱动所述启动模块100再次启动消息中间件,记录消息中间件的运行状态,生成文档A;用于驱动所述故障注入模块200分步骤注入多个故障,记录注入的故障类型,生成文档B,若复测结果与初测结果一致,则认为符合预期,流程结束;若复测结果与初测结果不一致,重复复测。
参见图3所示,在本发明的实施例中,所述状态监控判断模块300包括监控单元301、判断单元302和执行单元303;
所述监控单元301,用于注入故障后监测消息中间件、应用服务和应用系统的运行状态;
所述判断单元302,用于判断中间件、应用服务和应用系统的运行状态是否正常,用于判断复测结果与初测结果是否一致;
若中间件、应用服务和应用系统的运行状态是否正常或复测结果与初测结果是否一致,则结束;
若运行状态异常和应用系统的运行状态是否正常或复测结果与初测结果不一致,则整合所述文档A和所述文档B,获得整合文档,重新启动中间件进行复测;
所述执行单元303,用于若运行状态异常和应用系统的运行状态是否正常或复测结果与初测结果不一致,则整合所述文档A和所述文档B,获得整合文档,重新启动中间件进行复测,驱动所述启动模块100再次启动消息中间件,记录消息中间件的运行状态,生成文档A;驱动所述故障注入模块200分步骤注入多个故障,记录注入的故障类型,生成文档B。
一种消息中间件的混沌测试方法,能够尽可能多的模拟复杂线上环境的故障,通过给消息中间件注入这些故障,获取到特定故障下消息中间件的运行状态以及应用服务和系统服务的表现,能够更好的保障系统稳定运行。
在一个实施例中,参见图5所示,在本发明的实施例中还提供了一种电子设备,包括处理器401、通信接口402、存储器403和通信总线404,其中,处理器401,通信接口402,存储器403通过通信总线404完成相互间的通信。
存储器403,用于存放计算机程序;
处理器401,用于执行存储器403上所存放的计算机程序时,执行所述的主题方法,该处理器执行指令时实现上述方法实施例中的步骤:
S10、启动消息中间件,记录消息中间件的运行状态,生成文档A。
S20、分步骤注入多个故障,记录注入的故障类型,生成文档B。
在本发明的实施例中,所述故障即为消息中间件的混沌方法。
所述故障包括RocketMQ,WebSphereMQ,EMQ,Kafka所有的消息中间件的混沌方法。
其中,所述故障以Rabbit MQ为例,包括如下类型:
1、MQ集群有3个节点,生产消费信息过程中,模拟正常停止一个或两个节点的MQ服务;
2、MQ集群正常运行时,模拟MQ集群宕机;
3、当MQ节点有消息积压时,MQ节点重启;
4、MQ集群一个节点长时间宕机后重启;
5、MQ集群正常运行时,删除Rabbit MQ一个节点的rabbit@h-test-mq-0002-mnesia文件夹;
6、删除MQ运行日志;
7、任意挂起MQ的一个节点;
如上故障分别进行操作,在预设时间段后,监测消息中间件的运行状态以及业务系统是否收到影响。
S30、注入故障后监测消息中间件、应用服务和应用系统的运行状态。
S40、若步骤S30的运行状态正常,流程结束。
S50、若步骤S30的运行状态异常,则整合所述文档A和所述文档B,获得整合文档,重新启动中间件进行复测,以便排除其他意外因素。
在本发明实施例中,所述整合所述文档A和所述文档B,为整合故障类型,中间件、系统服务的运行状态和结果。
S60、重新执行步骤S10~S30。
S70、若复测结果与初测结果一致,则认为符合预期,流程结束。
一种消息中间件的混沌测试方法,能够尽可能多的模拟复杂线上环境的故障,通过给消息中间件注入这些故障,获取到特定故障下消息中间件的运行状态以及应用服务和系统服务的表现,能够更好的保障系统稳定运行。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(ApplicationSpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-ProgrammableGate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
所述电子设备包括用户设备与网络设备。其中,所述用户设备包括但不限于电脑、智能手机、PDA等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述电子设备可单独运行来实现本发明,也可接入网络并通过与网络中的其他电子设备的交互操作来实现本发明。其中,所述电子设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。
还应当进理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
在本发明的一个实施例中还提供了一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法实施例中的步骤:
S10、启动消息中间件,记录消息中间件的运行状态,生成文档A。
S20、分步骤注入多个故障,记录注入的故障类型,生成文档B。
在本发明的实施例中,所述故障即为消息中间件的混沌方法。
所述故障包括RocketMQ,WebSphereMQ,EMQ,Kafka所有的消息中间件的混沌方法。
其中,所述故障以Rabbit MQ为例,包括如下类型:
1、MQ集群有3个节点,生产消费信息过程中,模拟正常停止一个或两个节点的MQ服务;
2、MQ集群正常运行时,模拟MQ集群宕机;
3、当MQ节点有消息积压时,MQ节点重启;
4、MQ集群一个节点长时间宕机后重启;
5、MQ集群正常运行时,删除Rabbit MQ一个节点的rabbit@h-test-mq-0002-mnesia文件夹;
6、删除MQ运行日志;
7、任意挂起MQ的一个节点;
如上故障分别进行操作,在预设时间段后,监测消息中间件的运行状态以及业务系统是否收到影响。
S30、注入故障后监测消息中间件、应用服务和应用系统的运行状态。
S40、若步骤S30的运行状态正常,流程结束。
S50、若步骤S30的运行状态异常,则整合所述文档A和所述文档B,获得整合文档,重新启动中间件进行复测,以便排除其他意外因素。
在本发明实施例中,所述整合所述文档A和所述文档B,为整合故障类型,中间件、系统服务的运行状态和结果。
S60、重新执行步骤S10~S30。
S70、若复测结果与初测结果一致,则认为符合预期,流程结束。
一种消息中间件的混沌测试方法,能够尽可能多的模拟复杂线上环境的故障,通过给消息中间件注入这些故障,获取到特定故障下消息中间件的运行状态以及应用服务和系统服务的表现,能够更好的保障系统稳定运行。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
Claims (10)
1.一种消息中间件的混沌测试方法,其特征在于,该方法包括:
S10、启动消息中间件,记录消息中间件的运行状态,生成文档A;
S20、分步骤注入多个故障,记录注入的故障类型,生成文档B;
S30、注入故障后监测所述消息中间件、应用服务和应用系统的运行状态;
S40、若步骤S30的运行状态正常,流程结束;
S50、若步骤S30的运行状态异常,则整合所述文档A和所述文档B,获得整合文档,重新启动中间件进行复测,以便排除其他意外因素;
S60、重新执行步骤S10~S30;
S70、若复测结果与初测结果一致,则认为符合预期,流程结束。
2.如权利要求1所述的消息中间件的混沌测试方法,其特征在于,所述故障即为消息中间件的混沌方法。
3.如权利要求1所述的消息中间件的混沌测试方法,其特征在于,所述故障包括RocketMQ,WebSphereMQ,EMQ,Kafka所有的消息中间件的混沌方法。
4.如权利要求1所述的消息中间件的混沌测试方法,其特征在于,所述故障以RabbitMQ为例,包括如下类型:
MQ集群有3个节点,生产消费信息过程中,模拟正常停止一个或两个节点的MQ服务;
MQ集群正常运行时,模拟MQ集群宕机;
当MQ节点有消息积压时,MQ节点重启;
MQ集群一个节点长时间宕机后重启;
MQ集群正常运行时,删除Rabbit MQ一个节点的rabbit@h-test-mq-0002-mnesia文件夹;
删除MQ运行日志;
任意挂起MQ的一个节点。
5.如权利要求1所述的消息中间件的混沌测试方法,其特征在于,所述整合所述文档A和所述文档B,为整合故障类型,中间件、系统服务的运行状态和结果。
6.消息中间件的混沌测试系统,其特征在于,该系统包括:启动模块、故障注入模块和状态监控和判断模块;
所述启动模块,用于启动消息中间件,记录消息中间件的运行状态,生成文档A;
所述故障注入模块,用于分步骤注入多个故障,记录注入的故障类型,生成文档B;
所述状态监控和判断模块,用于注入故障后监测消息中间件、应用服务和应用系统的运行状态,判断中间件、应用服务和应用系统的运行状态是否正常,若运行状态异常,则整合所述文档A和所述文档B,获得整合文档,重新启动中间件进行复测。
7.如权利要求6所述的消息中间件的混沌测试系统,其特征在于,所述状态监控判断模块,用于若运行状态异常和应用系统的运行状态是否正常或复测结果与初测结果不一致,则整合所述文档A和所述文档B,获得整合文档,重新启动中间件进行复测,包括用于驱动所述启动模块再次启动消息中间件,记录消息中间件的运行状态,生成文档A;用于驱动所述故障注入模块分步骤注入多个故障,记录注入的故障类型,生成文档B,若复测结果与初测结果一致,则认为符合预期,流程结束;若复测结果与初测结果不一致,重复复测。
8.如权利要求7所述的消息中间件的混沌测试系统,其特征在于,所述状态监控判断模块包括监控单元、判断单元和执行单元;
所述监控单元,用于注入故障后监测消息中间件、应用服务和应用系统的运行状态;
所述判断单元,用于判断中间件、应用服务和应用系统的运行状态是否正常,用于判断复测结果与初测结果是否一致;
若中间件、应用服务和应用系统的运行状态是否正常或复测结果与初测结果是否一致,则结束;
若运行状态异常和应用系统的运行状态是否正常或复测结果与初测结果不一致,则整合所述文档A和所述文档B,获得整合文档,重新启动中间件进行复测;
所述执行单元,用于若运行状态异常和应用系统的运行状态是否正常或复测结果与初测结果不一致,则整合所述文档A和所述文档B,获得整合文档,重新启动中间件进行复测,驱动所述启动模块再次启动消息中间件,记录消息中间件的运行状态,生成文档A;驱动所述故障注入模块分步骤注入多个故障,记录注入的故障类型,生成文档B。
9.一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器加载并执行所述计算机程序时实现如权利要求1-7任一项所述的消息中间件的混沌测试方法的步骤。
10.一种存储介质,存储有计算机程序,所述计算机程序被处理器加载并执行时实现如权利要求1-7任一项所述的消息中间件的混沌测试方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211260622.9A CN115587038A (zh) | 2022-10-14 | 2022-10-14 | 消息中间件的混沌测试方法、系统、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211260622.9A CN115587038A (zh) | 2022-10-14 | 2022-10-14 | 消息中间件的混沌测试方法、系统、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115587038A true CN115587038A (zh) | 2023-01-10 |
Family
ID=84779958
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211260622.9A Pending CN115587038A (zh) | 2022-10-14 | 2022-10-14 | 消息中间件的混沌测试方法、系统、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115587038A (zh) |
-
2022
- 2022-10-14 CN CN202211260622.9A patent/CN115587038A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111897724B (zh) | 一种适用于云平台的自动化测试方法及装置 | |
CN111881014B (zh) | 一种系统测试方法、装置、存储介质及电子设备 | |
US20170075795A1 (en) | Identifying test gaps using code execution paths | |
CN110750458A (zh) | 大数据平台测试方法、装置、可读存储介质及电子设备 | |
US9983979B1 (en) | Optimized dynamic matrixing of software environments for application test and analysis | |
US10795793B1 (en) | Method and system for simulating system failures using domain-specific language constructs | |
CN105512562B (zh) | 一种漏洞挖掘方法、装置及电子设备 | |
CN112650676A (zh) | 软件测试方法、装置、设备及存储介质 | |
CN115733741B (zh) | 一种针对待测系统的异常场景测试方法和装置 | |
CN115587038A (zh) | 消息中间件的混沌测试方法、系统、电子设备及存储介质 | |
CN115470141A (zh) | 一种故障模拟方法、装置及相关设备 | |
CN113127331A (zh) | 一种基于故障注入的测试方法、装置及计算机设备 | |
CN111679924B (zh) | 构件化软件系统可靠性仿真方法、装置及电子设备 | |
CN115080449A (zh) | 测试方法、装置、设备、介质和程序产品 | |
CN114936121A (zh) | 一种故障模拟方法、装置、系统和介质 | |
US11036624B2 (en) | Self healing software utilizing regression test fingerprints | |
CN114942878A (zh) | 互联网应用的自动化性能测试方法及相关设备 | |
CN113238950A (zh) | 一种分布式系统测试的系统及方法、存储介质、电子设备 | |
CN113360389A (zh) | 一种性能测试方法、装置、设备及存储介质 | |
CN108763039B (zh) | 一种业务故障模拟方法、装置及设备 | |
CN110908821A (zh) | 任务失败管理的方法、装置、设备和存储介质 | |
CN109460366A (zh) | 一种软件稳定性测试方法、装置、设备及介质 | |
CN112988585B (zh) | 一种PaaS平台测试方法、装置、设备及介质 | |
CN113722133B (zh) | 一种内存泄漏检测方法、装置及设备 | |
CN115858324B (zh) | 基于ai的it设备故障处理方法、装置、设备和介质 |
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 |