本发明涉及一种资源管理方法,尤其是一种资源实例管理方法。
背景技术:
在自动化测试过程中如何正确且高效的管理运行环境就成了重要问题。自动化测试没有人为干预,但这一特性同样引入了一些不可控的风险。一种常见的方式是利用云平台的列表list方法将所有资源list出来再管理,这种处理方式有诸多问题:
1.该管理方法无法有效区分开哪些资源属于自动化创建、哪些资源属于人工创建;
2.该管理方法无法获知资源之间关联的关系,因此根据条件列出资源,再对资源进行管理,可能会导致流程出错;
3.该管理方法需要进行资源查找操作,增加了资源回滚的执行时间,管理效率低。
另一种方式是利用已创建资源的实例,在管理资源时,需要在资源的创建、更新过程记录繁杂的关联关系,为提升自动化测试的可靠性与安全性,本发明提出了一种针对资源实例管理的方法。
技术实现要素:
本发明实施例提供了一种管理资源实例的方法、装置、实现设备及存储介质,以至少解决相关技术中资源实例管理复杂、可靠性与安全性不高的问题。
根据本发明的一个实施例,提供了一种管理资源实例的方法,包括:在第一用例中创建多个资源实例,并在每一个资源实例上标记优先级,所述优先级用于有序管理所述每一个资源实例;将所述多个资源实例存入资源保存总表;所述资源保存总表以所述第一用例id为键值保存所述多个资源实例。
根据本发明的另一个实施例,提供了一种管理资源实例的装置,包括:创建模块,所述创建模块在第一用例中创建多个资源实例,并在每一个资源实例上标记优先级;所述优先级用于有序管理所述每一个资源实例;记录模块,用于将所述多个资源实例存入资源保存总表;所述资源保存总表以所述第一用例id为键值保存所述多个资源实例。
根据本发明的另一个实施例,提供了一种管理资源实例方法的实现设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现所述资源实例管理的实现方法。
根据本发明的另一个实施例,提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行所述资源实例管理的实现方法。
根据本发明,因为在用例中创建资源实例时,就赋予了每个资源实例以标签,同时在资源总表中建立用例id与资源实例的对应关系,因此,本发明能够建立起比较明确的资源实例的顺位关系,方便后续对其的管理,也提供了自动化测试中应用的效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的管理资源实例方法的流程图;
图2是根据本发明实施例的资源实例优先级的示意图;
图3是根据本发明实施例的资源保存总表的示意图;
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
实施例一
如图1所示,本发明实施例提供了一种管理资源实例的方法,该方法包括如下步骤:
步骤s101,在第一用例中创建多个资源实例,并在每一个资源实例上标记优先级,优先级用于有序管理每一个资源实例;
在步骤s101中,用例是用于虚拟化环境下自动化测试的,其中包含多个资源实例,比如用户、网络、子网、端口、虚机、安全组等多个虚拟资源种类,这些资源彼此之间又存在着错综复杂的关系,在自动化测试的场景如何对他们实现管理就显得很重要。
本发明提供了资源实例优先级表,表中的索引为对应资源实例在执行软件中的类名,数值为该资源实例的优先级,本表的使用方式为:管理方法给平台上每一种虚拟资源(相当于资源实例)均提供了一个相应的类,软件中保存的资源实例均是由资源对应类进行实例化的资源实例。资源实例除了本身自有属性外,还有一个为空的priority属性。当创建资源实例的动作执行时,创建动作会触发软件的捕获机制将生成的实例捕获,软件在捕获实例后就会查找资源实例优先级表给资源实例赋予优先级,拥有优先级的资源实例最终被压入保存队列并进行排序。
步骤s102,将多个资源实例存入资源保存总表;资源保存总表以所述第一用例id为键值保存多个资源实例。
在步骤s102中,当资源实例创建时就立马将其存入资源保存总表,此处的资源保存总表是一种资源管理结构,以用例的id作为索引(相当于键值)有序的保存一个用例中所创建的所有资源实例。
如图3所示,资源管理总表中以用例id为键值保存相应用例中的各项资源实例。
进一步地,根据每一个资源实例的类型,标记每一个资源实例的优先级。如图2所示,各种资源实例被标记上了优先级,比如,租户实例的优先级为0;网络实例的优先级为20;服务质量策略qospolicy实例的优先级为40,此处的优先级并不限定,可以根据需要进行调整。
进一步地,当第一用例的状态标记为删除时,访问资源保存总表,依据每一个资源实例优先级的高低,从高到低依次删除多个资源实例。当用例id为1的用例状态标记为删除时,则根据id1来访问资源保存总表,根据其中资源实例的优先级,依次删除资源实例,比如qospolicy实例的优先级为40,网络实例的优先级为20,租户实例的优先级为0...则依次删除qospolicy、网络实例、租户实例。
进一步地,在第二用例需要创建资源实例的情况下;依据用例id访问资源保存总表,遍历资源保存总表的资源实例,直到获取符合第二用例所需的资源实例。第二用例调用实例获取接口object_get,指定了用例id与实例类型;访问资源保存总表,按用例id访问资源保存总表,按顺序遍历实例、按实例类型过滤实例,直至获取到符合第二用例的实例,返回作为object_get的返回值;用例可以将object_get的返回值作为第二用例创建的资源一样去使用,直至用例执行结束。
当创建第二用例时,不需要在其中重新创建所有新的资源实例,第二实例调用object_get,可以指定第一用例的id,并指定实例类型;再访问资源保存总表,按照第一用例的id访问总表,按需求过滤,获取到第二用例所需的实例,返回作为object_get的返回值,并可以将获取的资源等同于第二用例自我创建的资源实例。这样省去了新建实例时对所有资源实例重新创建的步骤。
进一步地,当删除多个资源实例时,删除所有相关设备上的资源实例。本发明用于自动化测试,其中会涉及多种设备,可能有网络设备,也有用户设备。在删除资源实例时,将所有测试相关设备的相关资源实例全部删除。
进一步地,删除所述多个资源实例时,将所述多个资源实例的数据结构作为入参,调用统一删除接口删除所述多个资源实例。在执行删除操作时,资源删除接口的统一是指删除资源时调用接口的唯一性。本方法在进行资源实例删除动作时会根据图3的资源保存总表逐一取出残留资源并作为入参传入资源删除接口,资源删除接口是一个以待删除资源实例为唯一入参的函数。原生的openstackrestconf或是其他的资源删除接口往往不以待删除资源为唯一入参,用户删除资源往往既要提供其实例id,又要提供其关联资源作为辅助参数,为实现删除自动化,本发明对删除接口进行了入参统一。入参统一的基本原理是资源关联记录,在资源被创建或是更新时,本发明会时刻记录与删除接口相关的关联关系变化,并时刻记录、更新前述关联关系,并将其作为资源实例的一个属性。在调用删除接口时,原生接口所需的其他辅助入参将从传入的待删除实例属性中取出。在完成删除接口入参统一后,再调用删除接口进行删除操作。本发明实现了资源删除调用接口的函数入口统一,即在一个统一资源实例删除方法ins_delete(instance)中,按删除实例的类别进行区分,分别调用各自的删除方法,从而实现了资源调用接口的唯一性。
通过本发明实施例所提供的方法,通过建立起有序的资源实例保存方法,提高了资源实例管理的效率,在删除资源实例时也能调用统一接口,整体上提高了自动化测试的效率。
实施例二
本发明实施例还提供了一种管理资源实例的方法,该方法包括如下步骤:
步骤s201,自动化框架执行至用例执行部分,用例开始进行资源创建;
步骤s202,用例调用创建租户的接口tenant_add,捕获该接口的返回值tenant_obj;
步骤s203,自动化框架拿到租户资源实例,判断租户实例类型为tenant,以“tenant”为索引查找资源优先级表,拿到租户资源的优先级(该优先级定位0),保存至租户的属性priority中;
步骤s204,将租户实例有序插入至一个临时列表tmp_instance_list中;
步骤s205,单个资源维护动作完成,用例调用创建网络接口network_add,捕获到该接口的返回值net_obj;
步骤s206,自动化框架拿到网络资源实例,判断实例类型为network,以“network”为索引查找资源优先级表,拿到网络资源的优先级为20,保存至租户的属性priority中;
步骤s207,将网络资源实例有序插入至步骤s204中的临时列表中;
步骤s208,如以上步骤创建子网实例、虚机实例等资源实例,调用业务测试接口完成此用例执行,同理,在执行资源删除接口的时候也将资源及时从tmp_instance_list中移除;
步骤s209,将列表tmp_instance_list作为值,以用例id作为键,按此结构将刚刚记录的资源实例保存至资源保存总表;
步骤s210,如用例状态标记为删除,执行步骤s211;如用例状态标记为不删除,执行步骤s212。
步骤s211,访问资源保存总表,按需拿出指向用例的残留资源列表,按顺序遍历此列表,列表会优先拿出优先级大的资源,随后本发明将当前遍历得到的实例作为入参调用统一删除接口ins_delete(instance),此时框架捕捉到资源删除接口被执行,获取入参实例,从总表中将入参实例维护、移除;
步骤s212,第二个用例调用实例获取接口object_get,指定了用例id、名称与实例类型。访问资源保存总表,按用例id访问指定残留资源列表,按顺序遍历实例、按名称与实例类型过滤实例,直至获取到符合用户预期的实例,返回作为object_get函数的返回值。object_get的返回值可以作为第二个用例创建的资源去使用。
实施例三
本发明实施例还提供了一种管理资源实例的装置,该装置包括如下模块:
创建模块,所述创建模块在第一用例中创建多个资源实例,并在每一个资源实例上标记优先级;所述优先级用于有序管理所述每一个资源实例;
记录模块,用于将所述多个资源实例存入资源保存总表;所述资源保存总表以所述第一用例id为键值保存所述多个资源实例。
进一步地,该装置还包括删除模块:用于访问所述资源保存总表,当所述第一用例的标记为删除时,依据所述每一个资源实例优先级的高低,从高到低依次删除所述多个资源实例;或,当所述第一用例标记为保留时,则不删除所述资源实例。
实施例四
本发明实施例还提供了一种资源实例管理的实现设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现资源实例管理的方法。
实施例五
本发明实施例还一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行资源实例管理的实现方法。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
1.一种管理资源实例的方法,包括:
在第一用例中创建多个资源实例,并在每一个资源实例上标记优先级,所述优先级用于有序管理所述每一个资源实例;
将所述多个资源实例存入资源保存总表;所述资源保存总表以所述第一用例id为键值保存所述多个资源实例。
2.如权利要求1所述的方法,在第一用例中创建所述资源实例,并在所述资源实例上标记优先级,包括:
根据所述每一个资源实例的类型,标记所述每一个资源实例的优先级。
3.如权利要求1或2所述的方法,还包括:
当所述第一用例的状态标记为删除时,访问所述资源保存总表,依据所述每一个资源实例优先级的高低,从高到低依次删除所述多个资源实例。
4.如权利要求1所述的方法,还包括:
在第二用例需要创建资源实例的情况下;
依据用例id访问所述资源保存总表,遍历所述资源保存总表的资源实例,直到获取符合所述第二用例所需的资源实例。
5.如权利要求3所述的方法,包括:
当删除所述多个资源实例时,删除所有相关设备上的资源实例。
6.如权利要求3所述的方法,从高到低依次删除所述多个资源实例,包括:
删除所述多个资源实例时,将所述多个资源实例的数据结构作为入参,调用统一删除接口删除所述多个资源实例。
7.一种管理资源实例的装置,包括:
创建模块,所述创建模块在第一用例中创建多个资源实例,并在每一个资源实例上标记优先级;所述优先级用于有序管理所述每一个资源实例;
记录模块,用于将所述多个资源实例存入资源保存总表;所述资源保存总表以所述第一用例id为键值保存所述多个资源实例。
8.如权利要求7所述的装置,包括:
删除模块,用于访问所述资源保存总表,当所述第一用例的标记为删除时,依据所述每一个资源实例优先级的高低,从高到低依次删除所述多个资源实例;
或,当所述第一用例标记为保留时,则不删除所述资源实例。
9.一种资源实例管理的实现设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1~6中任意一项所述资源实例管理的方法。
10.一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求1~6中任意一项所述资源实例管理的实现方法。
技术总结