故障注入测试方法、装置和存储介质与流程

文档序号:24783705发布日期:2021-04-23 09:16阅读:160来源:国知局
故障注入测试方法、装置和存储介质与流程

1.本申请涉及计算机技术领域,具体涉及一种故障注入测试方法、装置和存储介质。


背景技术:

2.在系统开发和运维过程中,为了能够及早识别系统潜在的风险和隐患,避免在系统规模化之后潜在的问题被放大。因此,可以采用故障注入测试的方式使系统潜在的风险和隐患提前暴露。但是,传统的方式需要耗费大量的人力进行故障注入测试的各项工作,拉长了测试总时间,导致测试的时间成本高。


技术实现要素:

3.本申请提供用于故障注入测试方法、装置和存储介质。
4.本申请实施例提供一种故障注入测试方法,包括:
5.解析测试模型,生成故障注入测试任务,其中,所述测试模型包括故障注入、执行测试和结果分析的流程节点;
6.对目标系统执行所述故障注入测试任务,得到所述目标系统的测试结果。
7.本申请实施例提供一种故障注入测试装置,包括:
8.解析模块,用于解析测试模型,生成故障注入测试任务,其中,所述测试模型包括故障注入、执行测试和结果分析的流程节点;
9.执行模块,用于对目标系统执行所述故障注入测试任务,得到所述目标系统的测试结果。
10.本申请实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现本申请实施例中的任意一种方法。
11.本申请实施例提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本申请实施例中的任意一种方法。
12.本申请实施例提供的故障注入测试方法、装置和存储介质,计算机设备解析测试模型,生成故障注入测试任务,对目标系统执行所述故障注入测试任务,得到目标系统的测试结果。由于测试模型中包括了故障注入、执行测试和结果分析的流程节点,因此,在对目标系统进行故障注入测试时,通过该测试模型便可以控制整个测试流程,从而自动对目标系统执行故障注入、执行测试以及结果分析等各项流程,减少了人为参与的过程,从而缩短了测试时间,降低了测试的时间成本,提高了测试效率。
附图说明
13.图1为一实施例提供的故障注入测试方法流程示意图;
14.图2为一实施例提供的分布式微服务系统的依赖关系图;
15.图3为一实施例提供的分布式微服务系统故障场景示意图;
16.图4为另一实施例提供的故障注入测试方法流程示意图;
17.图5为一实施例提供的模型生成操作界面示意图;
18.图6为另一实施例提供的故障注入测试方法流程示意图;
19.图7为另一实施例提供的故障注入测试方法流程示意图;
20.图8为另一实施例提供的故障注入测试方法流程示意图;
21.图9为另一实施例提供的故障注入测试方法流程示意图;
22.图10为另一实施例提供的故障注入测试方法流程示意图;
23.图11为一实施例提供的故障注入测试装置的内部结构示意图;
24.图12为一实施例提供的计算机设备的内部结构示意图。
具体实施方式
25.为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
26.需要说明的是,下述方法实施例的执行主体可以是故障注入测试装置,该装置可以通过软件、硬件或者软硬件结合的方式实现成为计算机设备的部分或者全部。下述方法实施例以执行主体是计算机设备为例进行说明。
27.图1为一实施例提供的故障注入测试方法流程示意图。本实施例涉及的是计算机设备如何对系统进行测试的过程。具体的,如图1所示,该方法包括:
28.s101、解析测试模型,生成故障注入测试任务,其中,所述测试模型包括故障注入、执行测试和结果分析的流程节点。
29.s102、对目标系统执行所述故障注入测试任务,得到所述目标系统的测试结果。
30.具体的,目标系统为待测试的系统,可选的,目标系统可以为分布式微服务系统。分布式微服务系统中可以包括弹性负载均衡器(elastic load balancer,elb)、多个网关(gateway)、多个服务发现(service discovery)、以及各种微服务(service)等节点,各个节点的依赖关系如图2所示,从图2可知分布式微服务系统具有微服务灵活组合以及自由扩展等优点。但是,该优点也导致了分布式微服务系统架构复杂、功能繁多,用户很难完全理解透彻其上下游纷繁复杂的依赖关系。当分布式微服务系统出现如图3所示的故障(图3中的
×
表示故障)时,用户是很难识别和认识到分布式微服务系统潜在风险和隐患,因此,可以通过故障注入测试获取到分布式微服务系统潜在的风险和隐患。其中,故障注入测试是指根据测试需求向目标系统中注入特定的故障,从而模拟在特定故障情况下目标系统的性能。
31.当需要对目标系统进行故障注入测试时,计算机设备解析测试模型,生成故障注入测试任务。其中,该测试模型中包括故障注入、执行测试和结果分析的流程节点。上述故障注入是向目标系统中注入故障,执行测试是根据测试用例对目标系统进行测试,结果分析是对测试后的结果进行分析。在得到故障注入测试任务之后,计算机设备根据测试模型中的故障注入、执行测试和结果分析的流程节点的执行顺序,对目标系统分别进行故障注入、执行测试以及结果分析等处理流程,从而完成对目标系统的故障注入测试任务,得到目标系统的测试结果。
32.可选的,在解析测试模型之前,计算机设备校验获取的测试模型,当校验失败时,
停止解析测试模型,从而可以避免使用错误的测试模型对目标系统进行故障注入测试,进而进一步缩短了测试时间,提高了测试效率。
33.本申请实施例提供的故障注入测试方法,计算机设备解析测试模型,生成故障注入测试任务,对目标系统执行所述故障注入测试任务,得到目标系统的测试结果。由于测试模型中包括了故障注入、执行测试和结果分析的流程节点,因此,在对目标系统进行故障注入测试时,通过该测试模型便可以控制整个测试流程,从而自动对目标系统执行故障注入、执行测试以及结果分析等各项流程,减少了人为参与的过程,从而缩短了测试时间,降低了测试的时间成本,提高了测试效率。
34.在其中一个实施例中,上述s102可以包括:根据所述故障注入测试任务中的各个流程节点的执行顺序,执行各个流程节点,直至执行完毕所述故障注入测试任务。
35.其中,测试模型中指定了故障注入、执行测试以及结果分析的流程节点之间的执行顺序。例如,测试模型中各个流程节点之间的执行顺序可以为:故障注入

执行测试

结果分析。计算机设备根据上述各个流程节点间的执行顺序,依次执行“故障注入”流程、“执行测试”流程以及“结果分析”流程等,从而得到对目标系统的测试结果。当然,测试模型中的各个流程节点也可以为其它的执行顺序,其执行顺序是在测试模型生成过程中根据测试需求进行设定的,本实施例对此不做限定。
36.作为一种可选的实施例方式,测试模型还包括各个流程节点的参数配置,上述计算机设备执行各个流程节点的过程可以为:针对每个流程节点,根据所述流程节点的参数配置,从插件库中调用执行所述流程节点所需的目标插件。
37.其中,当流程节点为故障注入的流程节点时,故障注入的参数配置可以包括注入的故障标识(该故障标识可以为故障类型、故障名称以及故障编号等)、故障注入位置、故障注入的持续时间、故障注入的影响范围以及与故障注入相关的其它参数配置。当流程节点为执行测试的流程节点时,执行测试的参数配置可以包括测试的类型、测试的范围、测试的形式以及测试的基准等。当流程节点为结果分析的流程节点时,结果分析的参数配置可以包括结果分析的分析类型、结果分析的展示位置以及展示形式等。测试模型还可以包括故障恢复的流程节点,当流程节点为故障恢复的流程节点时,可以根据故障注入的参数配置相应的配置故障恢复的参数。
38.在对目标系统进行测试前,用户需要开发各种故障注入的插件、系统测试的插件以及结果分析的插件,并将其预先存储在插件库中。插件开发完成后,后续在对目标系统进行故障注入测试时,上述开发的插件可自由组合,反复使用。也就是说,后续在对目标系统进行故障注入测试时,计算机设备可以从插件库中调用相应的目标插件,从而完成对目标系统执行故障注入测试的任务。其中,目标插件可在故障注入测试整个流程中的某一特定阶段独立运行,实现某种特定的功能。如故障注入的插件用于向目标系统中注入故障,系统测试的插件用于自动对目标系统执行测试,并保存测试日志,结果分析插件用于汇总测试日志、对比日志结果,并输出统计分析结果,故障恢复的插件用于恢复向目标系统中注入的故障。同时,用户也在测试模型中配置了本次故障注入测试中所涉及到的各个流程节点的参数配置。
39.这样,当计算机设备执行故障注入的流程节点时,计算机设备根据测试模型中配置的待要注入的故障标识,从插件库中获取与故障标识对应的目标故障注入插件,并根据
测试模型中的故障注入位置、故障注入的持续时间以及故障注入的影响范围等参数配置,执行目标故障注入插件,从而完成向目标系统中注入特定的故障。当计算机设备执行测试的流程节点时,计算机设备根据测试模型中配置的测试标识(该测试标识可以为测试名称、测试类型以及测试编号等),从插件库中获取与测试标识对应的目标测试插件,并根据测试模型中的测试的范围、测试的形式以及测试的基准等参数配置,执行目标测试插件,从而完成对目标系统的测试。当计算机设备执行结果分析的流程节点时,计算机设备根据测试模型中配置的结果分析标识(该结果分析标识可以为结果分析名称、结果分析类型以及结果分析编号等),从插件库中获取与结果分析标识对应的目标分析插件,并根据测试模型中的结果分析的展示位置以及展示形式等参数配置,执行目标分析插件,从而完成测试结果分析。当计算机设备执行故障恢复的流程节点时,计算机设备根据测试模型中配置的待要恢复的故障标识,从插件库中获取与待要恢复的故障标识对应的故障恢复插件,并根据测试模型中配置的故障恢复位置以及故障恢复的影响范围等参数配置,执行目标故障恢复插件,从而恢复向目标系统中注入的故障。
40.可选的,上述测试模型还包括分支判断的流程节点,计算机设备在执行上述s102的过程中,还可以包括:当执行到所述故障注入测试任务中的分支判断的流程节点时,根据判断条件和所述分支判断的流程节点的前一个流程节点的执行结果,确定下一个流程节点,并执行所述下一个流程节点。
41.具体的,下一个流程节点可以为故障注入、执行测试以及结果分析的流程节点中的任一种,也可以为子测试模型。其中,子测试模型用于控制目标系统进行另一种特定故障注入测试的整个流程,其可以包括故障注入、执行测试和结果分析的子流程节点中的至少两种。进一步的,上述子测试模型还包括各个子流程节点的参数配置,当下一个流程节点为子测试模型时,所述执行下一个流程节点为执行子测试模型,执行子测试模型的具体过程可以为:针对子测试模型中包括的每个子流程节点,根据所述子流程节点的参数配置,从插件库中调用执行所述子流程节点的目标插件。
42.在本实施例中,计算机设备可以根据测试模型中的各个流程节点,从插件库中调用相应的目标插件,从而完成对目标系统的故障注入测试任务。通过插件机制实现故障注入测试过程中的关键流程节点,这样,进一步缩短了测试时间,降低了测试的时间成本,提高了测试效率。同时,使得对目标系统的故障注入测试具有很强的扩展性和可复用性。
43.图4为另一实施例提供的故障注入测试方法流程示意图。本实施例涉及的是计算机设备如何生成测试模型的具体过程。在上述实施例的基础上,可选的,如图4所示,在上述s101之前,该方法还包括:
44.s201、获取模型生成指令,所述模型生成指令中包括故障注入、执行测试和结果分析的流程节点、各个流程节点间的执行顺序以及各个流程节点的参数配置。
45.s202、根据所述模型生成指令,生成所述测试模型。
46.具体的,如图5所示,模型生成操作界面中可以包括“元素选择区”、“模型生成区”和“模型属性区”。其中,“元素选择区”可以包括故障注入、执行测试、结果分析、故障恢复、分支判断等模型元素,“模型设计区”是模型的可视化展示区,“模型属性区”用于对用户选定的模型元素进行属性设置,其可以设置多个属性,如属性一、属性二、属性三等。用户可以在“元素选择区”中选择模型元素,并将选中的模型元素拖拽到“模型生成区”中,并在“模型
属性区”中设置各类模型元素对应的参数配置,比如,用户可以对“故障注入”模型元素设置故障类型、故障注入位置、故障注入的持续时间、故障注入的影响范围以及与故障注入相关的其它参数配置,对“执行测试”模型元素设置测试的类型、测试的范围、测试的形式以及测试的基准等,对“结果分析”模型元素设置结果分析的分析类型、结果分析的展示位置以及展示形式等,同时,用户指定各个模型元素之间的执行顺序。接着,用户点击“保存”按钮,这样,计算机设备便获取到模型生成指令,模型生成指令中携带了故障注入、执行测试和结果分析的流程节点、各个所述流程节点间的执行顺序以及各个所述流程节点的参数配置等信息。计算机设备根据模型生成指令,生成控制目标系统的整个测试流程的测试模型。当然,该测试模型也可以被嵌套在新的测试模型中,形成更为复杂的测试流程。
47.可选的,模型生成指令中还包括分支判断和故障恢复的流程节点。用户可以在模型生成操作界面“元素选择区”中选择分支判断以及故障恢复的模型元素,在“模型生成区”中显示的故障注入、执行测试和结果分析等模型元素的相应位置(比如在执行测试的模型元素和故障注入的模型元素之间添加分支判断的模型元素,在执行测试的模型元素之后添加故障恢复的模型元素),添加“分支判断”元素和“故障恢复”元素,并在“模型属性区”中设置分支判断的判断条件以及故障恢复的参数配置。在用户点击“保存”按钮之后,计算机设备便获取到模型生成指令,此时该模型生成指令中还包括分支判断和故障恢复的流程节点。这样,计算机设备根据模型生成指令生成的测试模型中包括分支判断和故障恢复的流程节点。
48.可选的,将上述生成的测试模型保存在模型库中,当下次有故障注入测试需求时,计算机设备可以从模型库中获取该测试模型,并根据该测试模型对目标系统进行故障注入测试,且该测试模型可以被反复多次使用,同时,该测试模型还可以作为另一个更为复杂的测试模型中的子测试模型被使用,这样,进一步缩短了测试时间,提高了测试效率。
49.在本实施例中,计算机设备可以根据获取到的模型生成指令,生成测试模型。这样,当需要对目标系统进行故障注入测试时,计算机设备可以根据用户设置的各个流程节点、各个流程节点间的执行顺序以及各个流程节点的参数配置,生成测试模型,使得计算机设备基于生成的测试模型便可以控制整个测试流程,从而自动对目标系统执行故障注入、执行测试以及结果分析等各项流程,减少了人为参与的过程,从而缩短了测试时间,降低了测试的时间成本,提高了测试效率。
50.为了便于本领域技术人员的理解,以下详细介绍上述对目标系统的故障注入测试过程,如图6所示,该方法包括:
51.s301、获取模型生成指令,所述模型生成指令中包括故障注入、执行测试和结果分析的流程节点、各个流程节点间的执行顺序以及各个流程节点的参数配置。
52.s302、根据所述模型生成指令,生成所述测试模型。
53.s303、解析测试模型,生成故障注入测试任务。
54.s304、对目标系统执行所述故障注入测试任务,得到所述目标系统的测试结果。
55.其中,上述s304的过程可以为:计算机设备根据所述故障注入测试任务中的各个流程节点的执行顺序,执行各个流程节点,直至执行完毕所述故障注入测试任务。可选的,测试模型还包括各个流程节点的参数配置,上述计算机设备执行各个流程节点的过程可以为:针对每个流程节点,根据所述流程节点的参数配置,从插件库中调用执行所述流程节点
所需的目标插件。
56.可选的,上述s304的过程还包括:当执行到分支判断的流程节点时,计算机设备根据判断条件和所述分支判断的流程节点的前一个流程节点的执行结果,确定下一个流程节点,并执行所述下一个流程节点。
57.需要说明的是,关于上述s301-s304中的具体描述可以参照上述实施例中的描述,本实施例在此不再赘述。
58.进一步的,以下以目标系统为分布式微服务为例,并根据分布式微服务系统的不同的测试需求,介绍上述故障注入测试方法,具体的:
59.举例1
60.测试需求:当分布式微服务系统数据库、消息中间件等公共服务异常崩溃重启之后,需要验证分布式微服务系统中关联这些公共服务的微服务是否能自动恢复到正常状态。需求具体说明:分布式微服务系统偶发性的会遇到公共服务崩溃重启的情况,需要了解各个微服务能否在公共服务恢复正常之后自动恢复。因此,可以采用故障注入测试,通过向分布式微服务系统中注入故障模拟公共服务崩溃重启的情况,验证微服务自愈能力,而且会把这个故障注入测试作为自动化测试,周期性的运行。
61.针对该测试需求,可以参照如下过程对分布式微服务系统进行故障注入测试,如图7所示,该方法包括:
62.s401、获取模型生成指令。
63.s402、根据模型生成指令,生成测试服务自愈功能的故障注入测试模型。
64.其中,该故障注入测试模型包括故障注入、执行测试、结果分析以及故障恢复等关键流程节点。
65.s403、解析故障注入测试模型,生成故障注入测试任务。
66.s404、使用执行测试插件,执行自动化测试用例。
67.其中,计算机设备在正常状态下执行自动化测试用例,根据正常状态下的测试结果,验证分布式微服务系统是否正常。如果不正常,则直接输出测试报告:初始化自动化测试用例失败,然后退出执行流程。如果正常,则继续执行s405。
68.s405、使用故障注入插件停止指定的公共服务。
69.s406、使用执行测试插件,执行自动化测试用例。
70.其中,计算机设备保存停止指定的公共服务后的测试结果。根据测试结果,判断自动化测试用例是否全部通过。若是,则输出测试报告:测试用例与公共服务无关;否则,继续执行s407。
71.s407、使用故障恢复插件恢复被停止的公共服务。
72.s408、使用执行测试插件,执行自动化测试用例。
73.其中,计算机设备保存恢复指定的公共服务后的测试结果。
74.s409、使用结果分析插件,对恢复指定的公共服务后的测试结果进行分析。
75.其中,若自动化测试用例全部通过,则生成测试报告:公共服务恢复后全部功能可以自愈;否则,生成测试报告:公共服务恢复后部分功能无法自愈。
76.举例2
77.测试需求:在系统资源不足之后,需要验证分布式微服务系统的服务能否优雅降
级,即保证核心功能可用,非核心功能可暂停提供服务。需求具体说明:分布式微服务系统偶发性的会遇到系统资源耗尽,如cpu利用率到达100%,需要了解在这种情况发生时,微服务系统能否自动进行服务降级,保证核心功能的正常运行,维持系统的基本稳定。因此,可以采用故障注入测试,通过向分布式微服务系统注入故障模拟cpu冲高的情况,验证分布式微服务系统的优雅降级能力。
78.针对该测试需求,可以参照如下过程对分布式微服务系统进行故障注入测试,如图8所示,该方法包括:
79.s501、获取模型生成指令。
80.s502、根据模型生成指令,生成测试服务优雅降级功能的故障注入测试模型。
81.其中,该故障注入测试模型包括故障注入、执行测试、结果分析以及故障恢复等关键流程节点。
82.s503、解析故障注入测试模型,生成故障注入测试任务。
83.s504、使用执行测试插件,执行自动化测试用例。
84.其中,其中,计算机设备在正常状态下执行自动化测试用例,根据正常状态下的测试结果,验证系统核心功能是否正常。如果不正常,则直接输出测试报告:核心功能测试失败,然后退出执行流程。如果正常,则继续执行s505。
85.s505、使用故障注入插件,将cpu使用率为100%的故障注入分布式微服务系统。
86.s506、使用执行测试插件,执行自动化测试用例。
87.其中,计算机设备保存注入cpu使用率为100%的故障后的测试结果
88.s507、使用结果分析插件,对注入cpu使用率为100%的故障后的测试结果进行分析。
89.其中,若自动化测试用例全部通过,则生成测试报告:cpu使用率100%时,核心功能服务降级测试通过。否则,生成测试报告:cpu使用率100%时,核心功能服务降级测试未通过。
90.s508、使用故障恢复插件恢复分布式微服务系统的cpu使用率。
91.举例3
92.测试需求:需要统计在网络抖动时,分布式微服务系统某些特定表述性状态转移(representational state transfer,rest)接口的响应速度的分布情况。需求具体说明:在生产环境中,可能会由于硬件、软件、路由等故障导致各个微服务之间的网络通信产生丢包或延迟,需要确定在特定比例的网络数据传输产生特定时长的延迟时,对分布式微服务系统rest接口的影响。因此,可以采用故障注入测试,将指定延时时长和比例的网络抖动故障注入到分布式微服务系统中,并对比故障发生前后rest接口的响应时间的分布情况。
93.针对该测试需求,可以参照如下过程对分布式微服务系统进行故障注入测试,如图9所示,该方法包括:
94.s601、获取模型生成指令。
95.s602、根据模型生成指令,生成测试网络抖动场景的故障注入测试模型。
96.其中,该故障注入测试模型包括故障注入、执行测试、结果分析以及故障恢复等关键流程节点。
97.s603、解析故障注入测试模型,生成故障注入测试任务。
98.s604、判断是否已达到指定的测试次数。
99.其中,如果测试次数已达到指定的测试次数,则结束流程。否则,继续执行s605。
100.s605、使用执行测试插件,执行rest接口自动化测试用例,并统计正常状态下rest接口响应时间的分布情况。
101.s606、使用故障注入插件,将特定延时时长和比例的网络抖动故障注入分布式微服务系统。
102.s607、使用执行测试插件,执行rest接口自动化测试用例,并统计注入故障后的rest接口响应时间的分布情况。
103.s608、使用故障恢复插件,恢复分布式微服务系统中的网络抖动故障。
104.s609、使用结果分析插件,根据正常状态下rest接口响应时间的分布情况以及注入故障后的rest接口响应时间的分布情况,生成网络抖动前后的rest接口响应时间对比报告。
105.为了排除单次测试结果的偏差,得到更准确的测试结果,计算机设备在执行完毕s609之后,继续执行上述s604,直至达到指定的测试次数为止。
106.举例4
107.测试需求:在分布式微服务系统中需要寻找对特定rest接口存在依赖关系的其他rest接口列表。需求具体说明:分布式微服务系统中,rest接口之间依赖关系复杂,利用故障注入测试,可快速识别出依赖于指定rest接口的其他rest接口列表(即只有在指定的rest接口能正常响应时,列表中的rest接口才能正常响应)。
108.针对该测试需求,可以参照如下过程对分布式微服务系统进行故障注入测试,如图10所示,该方法包括:
109.s701、获取模型生成指令。
110.s702、根据模型生成指令,生成测试rest接口依赖关系的故障注入测试模型。
111.其中,该故障注入测试模型包括故障注入、执行测试、结果分析以及故障恢复等关键流程节点。
112.s703、解析故障注入测试模型,生成故障注入测试任务。
113.s704、判断是否已达到指定的测试次数。
114.其中,如果测试次数已达到指定的测试次数,则结束流程。否则,继续执行s705。
115.s705、使用执行测试插件,执行所有rest接口自动化测试用例。
116.其中,计算机设备保存正常状态下的执行结果。若自动化测试用例全部通过,则继续执行步骤s706;否则,跳转步骤s704。
117.s706、使用故障注入插件,对特定的rest接口进行拦截,指定该rest接口的响应码、延迟时间等参数。
118.s707、使用执行测试插件,执行所有rest接口自动化测试用例。
119.其中,计算机设备保存故障注入后的执行结果。
120.s708、根据正常状态下的执行结果和故障注入后的执行结果,生成依赖于指定的rest接口的其他rest接口列表。
121.s709、使用故障恢复插件,取消对特定的rest接口的拦截。
122.为了排除单次测试结果的偏差,得到更准确的测试结果,计算机设备在执行完毕
s709之后,继续执行上述s704,直至达到指定的测试次数为止。
123.在本实施例中,计算机设备可以根据模型生成指令,生成相应的测试模型,并基于测试模型控制分布式微服务系统的整个测试流程,并调用目标插件自动完成对分布式微服务系统的故障注入测试任务,测试过程中无须耗费人力,提高了测试效率,也提高了测试结果的准确性。同时,生成的测试模型还可以被嵌套在新的测试模型中,形成更为复杂的测试流程,使得生成的测试模型可以被重复使用,从而进一步缩短了测试时间,提高了测试效率。
124.图11为一实施例提供的故障注入测试装置内部结构示意图。如图11所示,该装置包括:解析模块10和执行模块11。
125.具体的,解析模块10用于解析测试模型,生成故障注入测试任务,其中,所述测试模型包括故障注入、执行测试和结果分析的流程节点;
126.执行模块11用于对目标系统执行所述故障注入测试任务,得到所述目标系统的测试结果。
127.本申请实施例提供的故障注入测试装置,解析测试模型,生成故障注入测试任务,对目标系统执行所述故障注入测试任务,得到所述目标系统的测试结果。由于测试模型中包括了故障注入、执行测试和结果分析的流程节点,因此,在对目标系统进行故障注入测试时,通过该测试模型便可以控制整个测试流程,从而自动对目标系统执行故障注入、执行测试以及结果分析等各项流程,减少了人为参与的过程,从而缩短了测试时间,降低了测试的时间成本,提高了测试效率。
128.在上述实施例的基础上,可选的,所述执行模块11具体用于根据所述故障注入测试任务中的各个流程节点的执行顺序,执行各个流程节点,直至执行完毕所述故障注入测试任务。
129.在上述实施例的基础上,可选的,所述测试模型还包括分支判断的流程节点,所述装置还包括:确定模块;所述确定模块用于当执行到所述故障注入测试任务中的分支判断的流程节点时,根据判断条件和所述分支判断的流程节点的前一个流程节点的执行结果,确定下一个流程节点;
130.所述执行模块11还用于执行所述下一个流程节点,其中,所述下一个流程节点为故障注入、执行测试以及结果分析的流程节点中的任一种,或者所述下一个流程节点为子测试模型,所述子测试模型包括故障注入、执行测试和结果分析的子流程节点中的至少两种。
131.在上述实施例的基础上,可选的,所述测试模型还包括各个流程节点的参数配置,针对每个流程节点,所述执行模块11具体用于根据所述流程节点的参数配置,从插件库中调用执行所述流程节点所需的目标插件。
132.在上述实施例的基础上,可选的,所述子测试模型还包括各个子流程节点的参数配置,当所述下一个流程节点为子测试模型时,针对每个子流程节点,所述执行模块11具体用于根据所述子流程节点的参数配置,从插件库中调用执行所述子流程节点的目标插件。
133.在上述实施例的基础上,可选的,所述测试模型还包括故障恢复的流程节点。
134.在上述实施例的基础上,可选的,所述装置还包括:获取模块和生成模块;
135.具体的,获取模块用于获取模型生成指令,所述模型生成指令中包括故障注入、执
行测试和结果分析的流程节点、各个流程节点间的执行顺序以及各个流程节点的参数配置;
136.生成模块用于根据所述模型生成指令,生成所述测试模型。
137.在上述实施例的基础上,可选的,所述模型生成指令中还包括分支判断和故障恢复的流程节点。
138.在上述实施例的基础上,可选的,所述目标系统为分布式微服务系统。
139.在一个实施例中,提供了一种计算机设备,其内部结构图可以如图12所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种故障注入测试方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
140.本领域技术人员可以理解,图12中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
141.在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
142.解析测试模型,生成故障注入测试任务,其中,所述测试模型包括故障注入、执行测试和结果分析的流程节点;
143.对目标系统执行所述故障注入测试任务,得到所述目标系统的测试结果。
144.在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据所述故障注入测试任务中的各个流程节点的执行顺序,执行各个流程节点,直至执行完毕所述故障注入测试任务。
145.在一个实施例中,所述测试模型还包括分支判断的流程节点,处理器执行计算机程序时还实现以下步骤:当执行到所述故障注入测试任务中的分支判断的流程节点时,根据判断条件和所述分支判断的流程节点的前一个流程节点的执行结果,确定下一个流程节点,并执行所述下一个流程节点,其中,所述下一个流程节点为故障注入、执行测试以及结果分析的流程节点中的任一种,或者所述下一个流程节点为子测试模型,所述子测试模型包括故障注入、执行测试和结果分析的子流程节点中的至少两种。
146.在一个实施例中,所述测试模型还包括各个流程节点的参数配置,处理器执行计算机程序时还实现以下步骤:针对每个流程节点,根据所述流程节点的参数配置,从插件库中调用执行所述流程节点所需的目标插件。
147.在一个实施例中,所述子测试模型还包括各个子流程节点的参数配置,当所述下一个流程节点为子测试模型时,处理器执行计算机程序时还实现以下步骤:针对每个子流程节点,根据所述子流程节点的参数配置,从插件库中调用执行所述子流程节点的目标插件。
148.在一个实施例中,所述测试模型还包括故障恢复的流程节点。
149.在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取模型生成指令,所述模型生成指令中包括故障注入、执行测试和结果分析的流程节点、各个所述流程节点间的执行顺序以及各个所述流程节点的参数配置;根据所述模型生成指令,生成所述测试模型。
150.在一个实施例中,所述模型生成指令中还包括分支判断和故障恢复的流程节点。
151.在一个实施例中,所述目标系统为分布式微服务系统。
152.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
153.解析测试模型,生成故障注入测试任务,其中,所述测试模型包括故障注入、执行测试和结果分析的流程节点;
154.对目标系统执行所述故障注入测试任务,得到所述目标系统的测试结果。
155.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据所述故障注入测试任务中的各个流程节点的执行顺序,执行各个流程节点,直至执行完毕所述故障注入测试任务。
156.在一个实施例中,所述测试模型还包括分支判断的流程节点,计算机程序被处理器执行时还实现以下步骤:当执行到所述故障注入测试任务中的分支判断的流程节点时,根据判断条件和所述分支判断的流程节点的前一个流程节点的执行结果,确定下一个流程节点,并执行所述下一个流程节点,其中,所述下一个流程节点为故障注入、执行测试以及结果分析的流程节点中的任一种,或者所述
157.下一个流程节点为子测试模型,所述子测试模型包括故障注入、执行测试和结果分析的子流程节点中的至少两种。
158.在一个实施例中,所述测试模型还包括各个流程节点的参数配置,计算机程序被处理器执行时还实现以下步骤:针对每个流程节点,根据所述流程节点的参数配置,从插件库中调用执行所述流程节点所需的目标插件。
159.在一个实施例中,所述子测试模型还包括各个子流程节点的参数配置,当所述下一个流程节点为子测试模型时,计算机程序被处理器执行时还实现以下步骤:针对每个子流程节点,根据所述子流程节点的参数配置,从插件库中调用执行所述子流程节点的目标插件。
160.在一个实施例中,所述测试模型还包括故障恢复的流程节点。
161.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取模型生成指令,所述模型生成指令中包括故障注入、执行测试和结果分析的流程节点、各个所述流程节点间的执行顺序以及各个所述流程节点的参数配置;根据所述模型生成指令,生成所述测试模型。
162.在一个实施例中,所述模型生成指令中还包括分支判断和故障恢复的流程节点。
163.在一个实施例中,所述目标系统为分布式微服务系统。
164.上述实施例中提供的故障注入测试装置、计算机设备以及存储介质可执行本申请任意实施例所提供的故障注入测试方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的故障注入测试方
法。
165.以上所述,仅为本申请的示例性实施例而已,并非用于限定本申请的保护范围。
166.一般来说,本申请的多种实施例可以在硬件或专用电路、软件、逻辑或其任何组合中实现。例如,一些方面可以被实现在硬件中,而其它方面可以被实现在可以被控制器、微处理器或其它计算装置执行的固件或软件中,尽管本申请不限于此。
167.本申请的实施例可以通过故障注入测试装置的数据处理器执行计算机程序指令来实现,例如在处理器实体中,或者通过硬件,或者通过软件和硬件的组合。计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码。
168.本申请附图中的任何逻辑流程的框图可以表示程序步骤,或者可以表示相互连接的逻辑电路、模块和功能,或者可以表示程序步骤与逻辑电路、模块和功能的组合。计算机程序可以存储在存储器上。存储器可以具有任何适合于本地技术环境的类型并且可以使用任何适合的数据存储技术实现,例如但不限于只读存储器(rom)、随机访问存储器(ram)、光存储器装置和系统(数码多功能光碟dvd或cd光盘)等。计算机可读介质可以包括非瞬时性存储介质。数据处理器可以是任何适合于本地技术环境的类型,例如但不限于通用计算机、专用计算机、微处理器、数字信号处理器(dsp)、专用集成电路(asic)、可编程逻辑器件(fgpa)以及基于多核处理器架构的处理器。
169.通过示范性和非限制性的示例,上文已提供了对本申请的示范实施例的详细描述。但结合附图和权利要求来考虑,对以上实施例的多种修改和调整对本领域技术人员来说是显而易见的,但不偏离本申请的范围。因此,本申请的恰当范围将根据权利要求确定。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1