CN115391227A - 基于分布式系统的故障测试方法、装置、设备及介质 - Google Patents

基于分布式系统的故障测试方法、装置、设备及介质 Download PDF

Info

Publication number
CN115391227A
CN115391227A CN202211135836.3A CN202211135836A CN115391227A CN 115391227 A CN115391227 A CN 115391227A CN 202211135836 A CN202211135836 A CN 202211135836A CN 115391227 A CN115391227 A CN 115391227A
Authority
CN
China
Prior art keywords
fault
test
task
testing
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
Application number
CN202211135836.3A
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.)
Agricultural Bank of China
Original Assignee
Agricultural Bank of China
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 Agricultural Bank of China filed Critical Agricultural Bank of China
Priority to CN202211135836.3A priority Critical patent/CN115391227A/zh
Publication of CN115391227A publication Critical patent/CN115391227A/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test 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

基于分布式系统的故障测试方法、装置、设备及介质
技术领域
本发明涉及分布式系统技术领域,尤其涉及一种基于分布式系统的故障测试方法、装置、设备及介质。
背景技术
随着分布式技术的快速发展,分布式数据库在各大领域中的利用率越来越高。由于在分布式系统中,各个节点和资源涉及范围较广,比集中式数据库更加容易出现故障,为了使分布式数据库容错率更高、更稳定,需要对分布式数据库进行大量的测试。
目前,通常采用混沌测试的方式来对分布式数据库进行故障的触发,通过判断故障触发后,业务系统和数据库集群对故障的响应是否符合预期,来实现分布式数据库的测试过程。
然而,这种方式的缺点在于:在进行故障触发时,由人工触发故障场景,以及比对故障前和故障后的日志信息,分析故障结果是否符合预期,不仅耗费了大量时间和人力成本,而且难以做到对所有故障场景进行遍历。
发明内容
本发明提供了一种基于分布式系统的故障测试方法、装置、设备及介质,以实现故障测试任务自动触发,降低了人工成本,并且,提高了故障测试任务的轮询效率。
根据本发明的一方面,提供了一种基于分布式系统的故障测试方法,该方法包括:
当接收故障测试指令时,根据预先构建的故障测试任务列表,确定当前故障测试任务;其中,所述故障测试任务列表中包括至少一个故障测试任务,所述故障测试任务中包括测试内容和测试节点;
基于与所述当前故障测试任务相对应的测试节点,执行相应的测试内容,得到与所述当前故障测试任务相对应的实际测试结果;
当检测到所述实际测试结果与预设测试结果相一致时,将与分布式系统相关联的至少一个节点的节点状态恢复至初始状态,以继续执行下一故障测试任务,直至接收到停止故障测试操作。
根据本发明的另一方面,提供了一种基于分布式系统的故障测试装置,该装置包括:
当前故障测试任务确定模块,用于当接收故障测试指令时,根据预先构建的故障测试任务列表,确定当前故障测试任务;其中,所述故障测试任务列表中包括至少一个故障测试任务,所述故障测试任务中包括测试内容和测试节点;
测试内容执行模块,用于基于与所述当前故障测试任务相对应的测试节点,执行相应的测试内容,得到与所述当前故障测试任务相对应的实际测试结果;
节点状态恢复模块,用于当检测到所述实际测试结果与预设测试结果相一致时,将与分布式系统相关联的至少一个节点的节点状态恢复至初始状态,以继续执行下一故障测试任务,直至接收到停止故障测试操作。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的基于分布式系统的故障测试方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的基于分布式系统的故障测试方法。
本发明实施例的技术方案,通过当接收故障测试指令时,根据预先构建的故障测试任务列表,确定当前故障测试任务,进一步的,基于与当前故障测试任务相对应的测试节点,执行相应的测试内容,得到与当前故障测试任务相对应的实际测试结果,最后,当检测到实际测试结果与预设测试结果相一致时,将与分布式系统相关联的至少一个节点的节点状态恢复至初始状态,以继续执行下一故障测试任务,直至接收到停止故障测试操作,解决了基于人工触发故障场景,以及比对故障前和故障后的日志信息,分析故障结果是否符合预期,所导致的耗费了大量时间、人力成本,以及难以做到对所有故障场景进行遍历的问题,实现了故障测试任务自动触发的效果,降低了人工成本,并且,提高了故障测试任务的轮询效率以及故障链路的检测准确率。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例一提供的一种基于分布式系统的故障测试方法的流程图;
图2是根据本发明实施例一提供的一种分布式故障测试系统的架构图;
图3是根据本发明实施例二提供的一种基于分布式系统的故障测试装置的结构示意图;
图4是实现本发明实施例的基于分布式系统的故障测试方法的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1是本发明实施例一提供的一种基于分布式系统的故障测试方法的流程图,本实施例可适用于对分布式系统进行故障场景测试的情况,该方法可以由基于分布式系统的故障测试装置来执行,该基于分布式系统的故障测试装置可以采用硬件和/或软件的形式实现,该基于分布式系统的故障测试装置可配置于终端和/或服务器中。如图1所示,该方法包括:
S110、当接收故障测试指令时,根据预先构建的故障测试任务列表,确定当前故障测试任务。
其中,故障测试任务列表中包括至少一个故障测试任务,故障测试任务中包括测试内容和测试节点
在本实施例中,故障测试指令可以为一段预先编写的程序或代码,该程序或代码可以用于触发分布式系统的故障测试流程。故障测试任务列表可以为预先构建的,用于对分布式系统的容错能力进行测试的,包含若干个测试任务的列表。当前故障测试任务可以为在当前时刻对分布式系统进行故障测试的任务。测试内容可以为分布式系统具体执行的测试故障。测试内容可以包括基础故障场景和故障持续时长。其中,基础故障场景可以为分布式系统中常见的故障场景。示例性的,基础故障场景可以包括CPU利用率达到100%、磁盘使用率达到预设使用率阈值、内存占用率达到预设占用率阈值以及网络故障等。故障持续时长可以为相应基础故障场景的持续时长。故障持续时长可以为任意值,可选的,可以为5分钟、10分钟或30分钟等。测试节点可以为分布式系统中需要进行故障测试的节点。示例性的,测试节点可以包括管理节点、代理节点以及数据节点等。
一般情况下,由于分布式系统所关联的节点较多,且链路也较为复杂,从而导致分布式系统在运行过程中可能会有各种难以预料的突发事件发生,因此,为了提高分布式系统的容错能力,可以对分布式系统进行模拟故障测试,通过验证系统在出现这些故障问题时是否有做好对应的监控告警、预案处理,针对性地进行加固、防范,从而可以避免故障发生时所带来的严重后果。
需要说明的是,分布式系统进行故障模拟测试,可以是将故障输入至分布式系统中,以确定分布式系统对于当前故障的应对能力,基于此,在对分布式系统进行故障测试之前,还可以根据分布式系统常见的故障问题,来构建故障测试任务列表并输入至分布式系统中,从而可以使分布式系统可以基于该列表中的各故障测试任务进行故障测试。
在上述各技术方案的基础上,还包括:确定与分布式系统相关联的至少一个基础故障场景、至少一个故障持续时长,以及至少一个测试节点;将各基础故障场景以及各故障持续时长进行两两组合,得到至少一个测试内容;将各测试内容与各测试节点进行两两组合,得到至少一个故障测试任务;当接收到故障测试任务时,基于故障测试任务,更新故障测试任务列表。
在实际应用中,可以通过配置文件或程序代码,预先配置好与分布式系统相关联的至少一个基础故障场景、至少一个故障持续时长以及至少一个测试节点,进一步的,可以将各基础故障场景和各故障持续时长进行随机任意组合,进而可以得到至少一个测试内容,然后,将各测试内容与各测试节点进行随机任意组合,可以得到至少一个故障测试任务,由于故障测试任务是动态生成的,并且,故障测试任务列表也是随着故障测试任务进行动态更新的,因此,在构建故障测试任务列表的过程中,当接收到新生成的故障测试任务时,则可以基于新生成的故障测试任务对故障测试任务列表进行更新。需要说明的是,在每次故障测试任务列表更新时,更新至列表中的故障测试任务可以为一个,也可以为多个,本实施例对此不作具体限定。
进一步的,将构建完成的故障测试任务列表导入至分布式系统中,终端显示界面中会出现故障测试确认控件,当检测到该确认控件的触发操作时,则可以生成故障测试指令,当接收到该指令时,则可以从故障测试测试任务列表中确定当前故障测试任务,以便可以根据当前故障测试任务中所包含的内容对分布式系统进行故障测试。需要说明的是,基于故障测试任务列表确定当前故障测试任务,可以是根据预先设定的测试任务筛选规进行确定,也可以是随机确定,还可以是其他确定方式,本实施例对此不作具体限定。
需要说明的是,故障测试任务列表中还包括与各故障测试任务相对应的任务标识,基于此,在上述各技术方案的基础上,还包括:当检测到对故障测试任务列表的遍历结束触发操作时,生成与故障测试任务列表相对应的测试报告并存储;当接收到任务标识时,从测试报告中调取与任务标识相对应的测试信息。
在本实施例中,任务标识可以为用于识别故障测试任务的标识。需要说明的是,任务标识可以为采用雪花算法、随机算法或哈希算法生成的字符串,该字符串可以由符号、字母和/或数字组成。遍历结束触发操作可以包括多种,一种方式可以为:当检测到故障测试任务列表中不存在未执行的故障测试任务时,则可以确定为遍历结束触发操作;另一种方式可以为:将用户触发显示界面上的遍历结束控件的操作作为遍历结束触发操作;还有一种方式为:当故障测试任务列表中各故障测试任务按照列表排列顺序依次执行时,可以将最后一个故障测试任务执行结束作为遍历结束触发操作。需要说明的是,遍历结束触发操作还可以包括其他实现方式,本发明实施例对此不作具体限定。测试报告可以为对故障测试任务列表中各故障测试任务的故障执行情况进行详细记录的报告。测试报告中可以包括各故障测试任务的执行次数、与故障测试任务相对应的实际测试结果、故障链路以及故障链路修复情况等。测试信息可以为与故障测试任务相对应的任务详情信息。
在实际应用中,当检测到对故障测试任务列表的遍历结束触发操作时,则可以生成与该故障测试任务列表相对应的测试报告并存储在分布式系统中,进一步的,当用户想要对任一故障测试任务的测试详情信息进行调取时,可以输入与该故障测试任务相对应的任务标识,当接收到该任务标识时,则可以基于该任务标识,从测试报告中调取相应的测试信息,从而可以得到与故障测试任务相对应的测试详情信息,以便研发人员可以通过对测试信息的分析,对故障测试任务进行重新构建。
S120、基于与当前故障测试任务相对应的测试节点,执行相应的测试内容,得到与当前故障测试任务相对应的实际测试结果。
在本实施例中,实际测试结果可以为分布式系统中各节点在当前故障测试任务中所执行的实际应对措施或故障预警信息。本领域技术人员可以理解,当对分布式系统执行当前故障测试任务时,为了应对当前故障测试任务中所涉及的故障测试内容,分布式系统中各节点会基于当前故障测试任务,确定相应的故障应对措施或故障预警信息,可以将这些故障应对措施和故障预警信息作为实际测试结果。
需要说明的是,在执行当前故障测试任务中的测试内容时,可以基于测试内容中所包含的基础故障场景和故障持续时长进行测试,从而可以得到相对应的实际测试结果。
可选的,基于与当前故障测试任务相对应的测试节点,执行相应的测试内容,得到与当前故障测试任务相对应的实际测试结果,包括:基于与测试节点相对应的故障引擎,触发基础故障场景,并记录故障触发时间以及与当前故障测试任务相对应的故障详情信息;当检测到基础故障场景的触发时长与故障持续时长相一致时,确定实际测试结果。
其中,故障引擎可以为用于触发故障测试场景的故障注入工具。示例性的,故障引擎可以为Chaos Blade。故障触发时间可以为故障引擎触发基础故障场景的时刻,即基础故障场景的开始执行时刻。需要说明的是,在故障引擎触发基础故障场景的同时,系统会基于当前时刻生成时间戳,可以将该时间戳作为故障触发时间记录下来。故障详情信息可以为当前故障测试任务的全部配置信息。故障详情信息可以包括基础故障场景、故障持续时长、执行当前故障测试任务的测试节点以及故障标识等。触发时长可以为从故障触发时刻至当前检测时刻之间的时间长度。
在实际应用中,在确定当前故障测试任务后,可以对当前故障测试任务进行解析,以确定相应的测试节点,进一步的,基于该测试节点,调取相应的故障引擎,进而可以基于故障引擎触发当前故障测试任务中的基础故障场景,并把当前故障时刻以及与当前故障测试任务相对应的故障详情信息记录在测试节点的运行日志中,当检测到故障场景的触发时长与当前故障测试任务中预先设定的故障持续时长相一致时,则可以确定实际测试结果。
需要说明的是,由于分布式系统各节点是相互关联的,在基于测试节点执行当前故障测试任务时,与测试节点相关联的其他节点也可以基于当前故障测试任务中所包含的测试内容,确定相应的应对措施,并生成相应的日志,因此,在确定实际测试结果时,可以基于各节点的运行日志来确定。
可选的,得到与当前故障测试任务相对应的实际测试结果,包括:获取与分布式系统相关联的至少一个节点所对应的测试日志,以及系统监控预警信息;基于预先设置的测试结果模板,对各测试日志和系统监控预警信息进行整理,以得到实际测试结果。
其中,测试日志可以为用于记录故障测试任务执行情况的系统文件。在本实施例中,测试日志可以包括应用节点的应用日志、管理节点的日志、代理节点的日志以及数据节点的日志。系统监控预警信息可以为分布式系统任意节点在出现异常情况时所生成的信息。在实际应用中,在对分布式系统进行故障测试的过程中,可以基于分布式系统中的异常监控模块,对分布式系统各节点的故障执行情况进行监控,当检测到任一节点出现异常行为时,则可以生成系统监控预警信息。示例性的,异常行为可以包括节点出现宕机行为、节点出现重启行为或节点出现主备切换行为等。测试结果模块可以为预先设置的,具有固定格式的实际测试结果参考样例。
在具体实施中,当确定当前故障测试任务执行结束时,则可以获取与分布式系统相关联的各节点的测试日志,以及在当前故障测试任务执行过程中所生成的系统监控预警信息,进一步的,将各测试日志以及系统监控预警信息输入至预先设置的测试结果模板中,基于各测试日志中所记录的数据以及系统监控预警信息对测试结果模板进行填充,从而可以得到与当前故障测试任务相对应的实际测试结果。
S130、当检测到实际测试结果与预设测试结果相一致时,将与分布式系统相关联的至少一个节点的节点状态恢复至初始状态,以继续执行下一故障测试任务,直至接收到停止故障测试操作。
在本实施例中,预设测试结果可以为预先设定的,各节点对于各故障测试任务的应对措施以及监控预警情况。在实际应用中,在对分布式系统执行各故障测试任务之前,为了确定该分布式系统实际应对故障问题的效果是否与预期效果一致,研发人员可以基于故障测试任务分别确定各节点在执行任务时的预期反馈情况,可以将各节点的预期反馈情况作为预设测试结果,并将各预设测试结果与相应故障测试任务对应存储起来,以便可以在故障测试任务执行结束后,基于当前故障测试任务对预设测试结果进行调取,从而可以将实际测试结果与预设测试结果进行比对。初始状态可以为各节点在执行当前故障测试任务之前的状态。
在实际应用中,在确定与当前故障测试任务相对应的实际测试结果后,可以基于当前故障测试任务从预先构建的映射关系表中确定预设测试结果,进而将实际测试结果与预设测试结果进行比对,当检测到这两个测试结果相一致时,则可以将与分布式系统相关联的各节点的节点状态恢复至执行当前故障测试任务之前的状态,以便可以继续执行下一故障测试任务,直至接收到停止故障测试操作。其中,停止故障测试的操作包括多种,第一种方式可以为:将用户触发显示界面上的暂停控件的操作作为停止故障测试的操作;第二种方式可以为:将用户关闭执行当前故障测试任务的测试节点的操作作为停止故障测试的操作;第三种方式可以为:当检测到实际测试结果与预设测试结果不一致时,停止故障测试。需要说明的是,停止故障测试操作还可以包括其他操作触发行为,本实施例对此不作具体限定。
在实际应用中,若检测到实际测试结果与预设测试结果不一致,则可以确定该分布式系统中存在故障点,从而可以对故障点进行定位,以便研发人员可以对其进行修复。
在上述实施例的基础上,还包括:当检测到实际测试结果与预设测试结果不一致时,则将与分布式系统相关联的至少一个节点的节点状态保持在当前状态,并生成故障测试报告;基于故障测试报告以及各节点的节点状态,对分布式系统的故障链路进行定位。
在本实施例中,当前状态可以为当前故障测试任务执行之后的节点状态。故障测试报告可以为基于实际测试结果和预设测试结果所生成的报告,用于记录实际测试结果与预设测试结果的比对情况。一般情况下,在检测到实际测试结果与预设测试结果不一致时,则可以将实际测试结果与预设测试结果进行详细比对,并将各条数据的比对情况记录下来,从而生成故障测试报告。故障链路可以为存在故障问题的数据链路。其中,链路可以为两个节点之间的数据传输路径。
在具体实施中,当检测到实际测试结果与预设测试结果不一致时,则可以基于这两个结果的详细比对情况生成故障测试报告,并将与分布式系统相关联的各节点的节点状态保持在当前状态,以便可以保留故障现场,进一步的,基于故障测试报告,对实际测试结果与预设测试结果存在不一致情况的原因进行分析,同时,对各节点的节点状态进行异常行为分析,进而可以确定分布式系统的故障点,以基于故障点对故障链路进行定位,从而可以实现故障链路的自动检测,以便研发人员可以对各故障链路进行修复优化。
需要说明的是,为了验证故障链路的修复效果,可以基于当前故障测试任务对其进行检测。
在上述各技术方案的基础上,还包括:当检测故障链路修复完成时,重复执行当前故障测试任务,直至检测到实际测试结果与预设测试结果相一致。
在实际应用中,当研发人员对故障链路修复完成后,可以对显示界面中的修复完成控件输入触发操作,当检测到该控件的触发操作时,则可以重复执行当前故障测试任务,进一步的,在检测到当前故障测试任务执行结束后,确定实际测试结果,并将实际测试结果再次与预设测试结果进行比对,若检测到实际测试结果与预设测试结果相一致时,则可以执行对下一故障测试任务进行处理,若检测到实际测试结果与预设测试结果不一致时,则可以再次生成故障测试报告,并对故障链路进行定位修复,并在修复完成后再次执行当前故障测试任务,直至检测到实际测试结果与预设测试结果相一致。
示例性的,如图2所示,本实施例所提供的技术方案可以基于分布式故障测试系统执行,该分布式故障测试系统可以包括故障调度节点、应用节点、管理节点、代理节点以及数据节点,其中,管理节点、代理节点和数据节点可以组成分布式数据库集群。故障调度节点中包括配置文件、故障编排模块、日志收集模块和故障分析模块。其中,配置文件,用于确定与分布式系统相关联的至少一个基础故障场景、至少一个故障持续时长,以及至少一个测试节点;故障编排模块,用于构建各故障测试任务,并基于各故障测试任务构建故障测试任务列表,日志收集模块,用于获取应用节点的应用日志、管理节点日志、代理节点日志、数据节点日志,以及系统监控预警信息;故障分析模块,用于确定实际测试结果,并对实际测试结果和相应的预设测试结果进行分析。管理节点、代理节点以及数据节点均包含故障引擎,可以用于触发故障测试任务中的基础故障场景;应用节点中包含至少一个应用程序,可以用于对故障测试任务进行响应。
本发明实施例的技术方案,通过当接收故障测试指令时,根据预先构建的故障测试任务列表,确定当前故障测试任务,进一步的,基于与当前故障测试任务相对应的测试节点,执行相应的测试内容,得到与当前故障测试任务相对应的实际测试结果,最后,当检测到实际测试结果与预设测试结果相一致时,将与分布式系统相关联的至少一个节点的节点状态恢复至初始状态,以继续执行下一故障测试任务,直至接收到停止故障测试操作,解决了基于人工触发故障场景,以及比对故障前和故障后的日志信息,分析故障结果是否符合预期,所导致的耗费了大量时间、人力成本,以及难以做到对所有故障场景进行遍历的问题,实现了故障测试任务自动触发的效果,降低了人工成本,并且,提高了故障测试任务的轮询效率以及故障链路的检测准确率。
实施例二
图3是本发明实施例二提供的一种基于分布式系统的故障测试装置的结构示意图。如图3所示,该装置包括:当前故障测试任务确定模块210、测试内容执行模块220以及节点状态恢复模块230。
其中,当前故障测试任务确定模块210,用于当接收故障测试指令时,根据预先构建的故障测试任务列表,确定当前故障测试任务;其中,所述故障测试任务列表中包括至少一个故障测试任务,所述故障测试任务中包括测试内容和测试节点;
测试内容执行模块220,用于基于与所述当前故障测试任务相对应的测试节点,执行相应的测试内容,得到与所述当前故障测试任务相对应的实际测试结果;
节点状态恢复模块230,用于当检测到所述实际测试结果与预设测试结果相一致时,将与分布式系统相关联的至少一个节点的节点状态恢复至初始状态,以继续执行下一故障测试任务,直至接收到停止故障测试操作。
本发明实施例的技术方案,通过当接收故障测试指令时,根据预先构建的故障测试任务列表,确定当前故障测试任务,进一步的,基于与当前故障测试任务相对应的测试节点,执行相应的测试内容,得到与当前故障测试任务相对应的实际测试结果,最后,当检测到实际测试结果与预设测试结果相一致时,将与分布式系统相关联的至少一个节点的节点状态恢复至初始状态,以继续执行下一故障测试任务,直至接收到停止故障测试操作,解决了基于人工触发故障场景,以及比对故障前和故障后的日志信息,分析故障结果是否符合预期,所导致的耗费了大量时间、人力成本,以及难以做到对所有故障场景进行遍历的问题,实现了故障测试任务自动触发的效果,降低了人工成本,并且,提高了故障测试任务的轮询效率以及故障链路的检测准确率。
可选的,所述装置还包括:基础故障场景确定模块、故障内容确定模块、故障测试任务确定模块以及故障测试任务列表更新模块。
基础故障场景确定模块,用于确定与分布式系统相关联的至少一个基础故障场景、至少一个故障持续时长,以及至少一个测试节点;
故障内容确定模块,用于将各所述基础故障场景以及各所述故障持续时长进行两两组合,得到至少一个测试内容;
故障测试任务确定模块,用于将各测试内容与各测试节点进行两两组合,得到至少一个故障测试任务;
故障测试任务列表更新模块,用于当接收到故障测试任务时,基于所述故障测试任务,更新故障测试任务列表。
可选的,所述测试内容包括基础故障场景和故障持续时长,测试内容执行模块220包括:基础故障场景触发单元和实际测试结果确定单元。
基础故障场景触发单元,用于基于与所述测试节点相对应的故障引擎,触发所述基础故障场景,并记录故障触发时间以及与所述当前故障测试任务相对应的故障详情信息;
实际测试结果确定单元,用于当检测到所述基础故障场景的触发时长与所述故障持续时长相一致时,确定所述实际测试结果。
可选的,测试内容执行模块220还包括:测试日志获取单元和实际测试结果确定单元。
测试日志获取单元,用于获取与所述分布式系统相关联的至少一个节点所对应的测试日志,以及系统监控预警信息;
实际测试结果确定单元,用于基于预先设置的测试结果模板,对各所述测试日志和所述系统监控预警信息进行整理,以得到所述实际测试结果。
可选的,所述装置还包括:节点状态保持模块和故障链路定位模块。
节点状态保持模块,用于当检测到所述实际测试结果与预设测试结果不一致时,则将与所述分布式系统相关联的至少一个节点的节点状态保持在当前状态,并生成故障测试报告;
故障链路定位模块,用于基于所述故障测试报告以及各所述节点的节点状态,对所述分布式系统的故障链路进行定位。
可选的,所述装置还包括:当前故障测试任务重复执行模块。
当前故障测试任务重复执行模块,用于当检测所述故障链路修复完成时,重复执行所述当前故障测试任务,直至检测到所述实际测试结果与所述预设测试结果相一致。
可选的,所述故障测试任务列表还包括与各故障测试任务相对应的任务标识,所述装置还包括:测试报告生成模块和测试信息调取模块。
测试报告生成模块,用于当检测到对所述故障测试任务列表的遍历结束触发操作时,生成与所述故障测试任务列表中各所述故障测试任务相对应的测试报告并存储;
测试信息调取模块,用于当接收到任务标识时,从所述测试报告中调取与所述任务标识相对应的测试信息。
本发明实施例所提供的基于分布式系统的故障测试装置可执行本发明任意实施例所提供的基于分布式系统的故障测试方法,具备执行方法相应的功能模块和有益效果。
实施例三
图4示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图4所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如基于分布式系统的故障测试方法。
在一些实施例中,基于分布式系统的故障测试方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的基于分布式系统的故障测试方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行基于分布式系统的故障测试方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (10)

1.一种基于分布式系统的故障测试方法,其特征在于,包括:
当接收故障测试指令时,根据预先构建的故障测试任务列表,确定当前故障测试任务;其中,所述故障测试任务列表中包括至少一个故障测试任务,所述故障测试任务中包括测试内容和测试节点;
基于与所述当前故障测试任务相对应的测试节点,执行相应的测试内容,得到与所述当前故障测试任务相对应的实际测试结果;
当检测到所述实际测试结果与预设测试结果相一致时,将与分布式系统相关联的至少一个节点的节点状态恢复至初始状态,以继续执行下一故障测试任务,直至接收到停止故障测试操作。
2.根据权利要求1所述的方法,其特征在于,还包括:
确定与分布式系统相关联的至少一个基础故障场景、至少一个故障持续时长,以及至少一个测试节点;
将各所述基础故障场景以及各所述故障持续时长进行两两组合,得到至少一个测试内容;
将各测试内容与各测试节点进行两两组合,得到至少一个故障测试任务;
当接收到故障测试任务时,基于所述故障测试任务,更新故障测试任务列表。
3.根据权利要求1所述的方法,其特征在于,所述测试内容包括基础故障场景和故障持续时长,所述基于与所述当前故障测试任务相对应的测试节点,执行相应的测试内容,得到与所述当前故障测试任务相对应的实际测试结果,包括:
基于与所述测试节点相对应的故障引擎,触发所述基础故障场景,并记录故障触发时间以及与所述当前故障测试任务相对应的故障详情信息;
当检测到所述基础故障场景的触发时长与所述故障持续时长相一致时,确定所述实际测试结果。
4.根据权利要求1所述的方法,其特征在于,所述确定与所述当前故障测试任务相对应的实际测试结果,包括:
获取与所述分布式系统相关联的至少一个节点所对应的测试日志,以及系统监控预警信息;
基于预先设置的测试结果模板,对各所述测试日志和所述系统监控预警信息进行整理,以得到所述实际测试结果。
5.根据权利要求1所述的方法,其特征在于,还包括:
当检测到所述实际测试结果与预设测试结果不一致时,则将与所述分布式系统相关联的至少一个节点的节点状态保持在当前状态,并生成故障测试报告;
基于所述故障测试报告以及各所述节点的节点状态,对所述分布式系统的故障链路进行定位。
6.根据权利要求5所述的方法,其特征在于,还包括:
当检测所述故障链路修复完成时,重复执行所述当前故障测试任务,直至检测到所述实际测试结果与所述预设测试结果相一致。
7.根据权利要求1所述的方法,其特征在于,所述故障测试任务列表还包括与各故障测试任务相对应的任务标识,所述方法,还包括:
当检测到对所述故障测试任务列表的遍历结束触发操作时,生成与所述故障测试任务列表中各所述故障测试任务相对应的测试报告并存储;
当接收到任务标识时,从所述测试报告中调取与所述任务标识相对应的测试信息。
8.一种基于分布式系统的故障测试装置,其特征在于,包括:
当前故障测试任务确定模块,用于当接收故障测试指令时,根据预先构建的故障测试任务列表,确定当前故障测试任务;其中,所述故障测试任务列表中包括至少一个故障测试任务,所述故障测试任务中包括测试内容和测试节点;
测试内容执行模块,用于基于与所述当前故障测试任务相对应的测试节点,执行相应的测试内容,得到与所述当前故障测试任务相对应的实际测试结果;
节点状态恢复模块,用于当检测到所述实际测试结果与预设测试结果相一致时,将与分布式系统相关联的至少一个节点的节点状态恢复至初始状态,以继续执行下一故障测试任务,直至接收到停止故障测试操作。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的基于分布式系统的故障测试方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的基于分布式系统的故障测试方法。
CN202211135836.3A 2022-09-19 2022-09-19 基于分布式系统的故障测试方法、装置、设备及介质 Pending CN115391227A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211135836.3A CN115391227A (zh) 2022-09-19 2022-09-19 基于分布式系统的故障测试方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211135836.3A CN115391227A (zh) 2022-09-19 2022-09-19 基于分布式系统的故障测试方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN115391227A true CN115391227A (zh) 2022-11-25

Family

ID=84125632

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211135836.3A Pending CN115391227A (zh) 2022-09-19 2022-09-19 基于分布式系统的故障测试方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN115391227A (zh)

Similar Documents

Publication Publication Date Title
CN111881014B (zh) 一种系统测试方法、装置、存储介质及电子设备
CN112540887A (zh) 故障演练方法、装置、电子设备及存储介质
CN112380089A (zh) 一种数据中心监控预警方法及系统
CN114924990A (zh) 一种异常场景测试方法及电子设备
CN116049146A (zh) 一种数据库故障处理方法、装置、设备及存储介质
CN114885014A (zh) 一种外场设备状态的监测方法、装置、设备及介质
CN113656252B (zh) 故障定位方法、装置、电子设备以及存储介质
CN114116288A (zh) 故障处理方法、装置及计算机程序产品
CN114327967A (zh) 设备修复方法及装置、存储介质、电子装置
CN116645082A (zh) 一种系统巡检方法、装置、设备以及存储介质
CN114881112A (zh) 一种系统异常检测方法、装置、设备及介质
CN115118646B (zh) 一种交换机测试系统数据交互方法、装置及电子设备
CN115687406A (zh) 一种调用链数据的采样方法、装置、设备及存储介质
CN115794525A (zh) 一种bmc压力测试方法、装置、设备及存储介质
CN109614330A (zh) 存储系统业务测试方法、装置、系统、存储控制器及介质
CN115391227A (zh) 基于分布式系统的故障测试方法、装置、设备及介质
CN114095394A (zh) 网络节点故障检测方法、装置、电子设备及存储介质
CN118170617B (zh) 集群异常的检测方法及装置、电子设备和存储介质
CN117608897A (zh) 一种故障指标采集方法、装置、设备及存储介质
CN115904956A (zh) 应用程序的刷新测试方法、装置、电子设备以及存储介质
CN117632670A (zh) 测试环境的故障告警方法、装置、电子设备及存储介质
CN116483732A (zh) 一种基于多数据源的测试方法、装置及设备
CN117648252A (zh) 软件应用的功能测试方法、装置、电子设备及存储介质
CN116431499A (zh) 一种自动测试方法、装置、电子设备及存储介质
CN116909921A (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