一种基于Python的Redfish自动化测试方法及装置与流程

文档序号:30963003发布日期:2022-07-30 14:47阅读:665来源:国知局
一种基于Python的Redfish自动化测试方法及装置与流程
一种基于python的redfish自动化测试方法及装置
技术领域
1.本发明属于计算机技术领域,公开了一种基于python的redfish自动化测试方法及装置。


背景技术:

2.目前主流的服务器的bmc都支持redfish功能,用来对服务器进行管理。传统测试某个redfish接口的内容与测试用例要求的是否相同,主要有以下两种方法:1、在浏览器输入相应资源的url,通过请求获得相应的响应,然后比对相应的条目。2、通过postman工具来进行,这种方法也是要输入相应的url,只是响应的结果相对更友好一点。以上两种方法都需要人工输入url并且人工对比返回的条目是否与预期的相同。然而redfish将近上百个资源url,所有的字段高达上千个,因此采用现有的测试方法费时费力容易出错,而且效率低下测试结果不直观。
3.因此,现今亟需一种基于python的redfish自动化测试方法及装置,通过python程序进行自动化测试,待测服务器ip地址可以写到配置文件或者通过用户界面输入让程序去读取,测试完之后,可以将测试结果保存到相应的excel文档中,便于用户对问题进行精准定位,提高redfish的测试效率。


技术实现要素:

4.本发明的目的在于提供一种基于python的redfish自动化测试方法及装置,以解决上述背景技术中提出的问题。
5.为实现上述目的,本发明提供如下技术方案:
6.一方面,本技术实施例提供了一种基于python的redfish自动化测试方法,包括:
7.获取预期结果;
8.获取服务器ip地址,基于已知待测试项的url路径,获取返回结果;
9.比较所述返回结果与所述预期结果,若所述返回结果与所述预期结果相等,则所述服务器bmc redfish功能正常;若所述返回结果与所述预期结果不相等,则所述服务器bmc redfish功能异常;
10.保存所述预期结果与所述返回结果的比较记录。
11.在一些实施例中,所述比较所述预期结果与所述返回结果,若所述返回结果与所述预期结果相等,则所述服务器bmc redfish功能正常;若所述返回结果与所述预期结果不相等,则所述服务器bmc redfish功能异常,包括:
12.判断所述返回结果的key是否存在;
13.若是,比较所述预期结果的key与所述返回结果的key是否相等以及相对应key的值是否相等;
14.若否,记录异常结果,获取下一个所述返回结果的key。
15.在一些实施例中,所述比较所述预期结果的key与所述返回结果的key是否相等以
及相对应key的值是否相等,包括:
16.比较所述预期结果的key与所述返回结果的key是否相等以及相对应key的值是否相等;
17.若是,判断所述返回结果的key是否比较完;
18.若否,记录异常结果,获取下一个所述返回结果的key。
19.在一些实施例中,所述判断所述返回结果的key是否比较完,包括:
20.判断所述返回结果的key是否比较完;
21.若是,判定所述服务器bmc redfish功能正常;
22.若否,获取下一个所述返回结果的key进行比较。
23.在一些实施例中,包括:根据所述异常结果记录,判定所述服务器bmc redfish功能异常,并发出告警提示。
24.另一方面,本技术实施例还提供了一种基于python的redfish自动化测试装置,包括:
25.预期结果获取单元,用于获取预期结果;
26.服务器ip地址获取单元,用于获取服务器ip地址;
27.返回结果获取单元,用于获取返回结果;
28.比较单元,用于比较所述返回结果与所述预期结果,若所述返回结果与所述预期结果相等,则服务器bmc redfish功能正常;若所述返回结果与所述预期结果不相等,则服务器bmc redfish功能异常;
29.记录单元,用于记录异常结果;
30.告警单元,用于当所述服务器bmc redfish功能异常时,发出告警提示;
31.显示单元,用于显示异常结果记录。
32.本技术实施例还提供一种存储介质当计算机程序在计算机上运行时,使得所述计算机执行如权利要求1至5中任一项所述的基于python的redfish自动化测试方法。
33.综上所述,与现有技术相比,本发明具有以下有益效果:一种基于python的redfish自动化测试方法及装置,其中包括:获取预期结果;获取服务器ip地址,基于已知待测试项的url路径,获取返回结果;比较所述返回结果与所述预期结果,若所述返回结果与所述预期结果相等,则所述服务器bmc redfish功能正常;若所述返回结果与所述预期结果不相等,则所述服务器bmc redfish功能异常;保存所述预期结果与所述返回结果的比较记录。本发明通过python程序进行自动化测试,提高了redfish的测试效率,待测服务器ip地址可以写到配置文件或者通过用户界面输入让程序去读取,测试完之后,可以将测试结果保存到相应的excel文档中,便于用户对问题进行精准定位。
附图说明
34.图1是本实施例提供的一种基于python的redfish自动化测试方法的流程示意图;
35.图2是本实施例提供的一种基于python的redfish自动化测试方法的流程示意图;
36.图3是本实施例提供的一种基于python的redfish自动化测试方法的流程示意图;
37.图4是本实施例提供的一种基于python的redfish自动化测试装置的结构示意图。
具体实施方式
38.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
39.本技术实施例提供一种基于python的redfish自动化测试方法及装置、及计算机可读存储介质。此外,所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
40.平台管理表示的是一系列的监视和控制功能,操作的对象是系统硬件。比如通过监视系统的温度,电压,风扇、电源等等,并做相应的调节工作,以保证系统处于健康的状态。当然如果系统真的不正常了,也可以通过复位的方式来重新启动系统。同时平台管理还负责记录各种硬件的信息和日志记录,用于提示用户和后续问题的定位。以上的这些功能可以集成到一个控制器上来实现,这个控制器被称为基板管理控制器(baseboard manager controller,简称bmc)。
41.需要说明的是,bmc作为一个独立的系统,它既不依赖于系统上的其它硬件(比如cpu、内存等),也不依赖于bios、os等(但是bmc可以与bios和os交互,这样可以起到更好的平台管理作用,os下有系统管理软件可以与bmc协同工作以达到更好的管理效果)。
42.对于系统要求高的设备,比如服务器,就会用到bmc。当然因为bmc是一个独立的系统,对于某些嵌入式设备,可能不需要其它处理器,光一个bmc就能完成工作。一般我们的电脑不会带bmc,因为用处不大,一些温度、电源等的管理,cpu来控制就够了。
43.说到底bmc本身也是一个带外处理器(一般都是arm处理器)的小系统,单独用来处理某些工作也完全是可以的。不过这里既然叫做bmc,那么总的来说重点还是在平台管理,本技术实施例提供了一种基于python的redfish自动化测试方法所作用的对象即为上述的服务器中的bmc。
44.以下分别进行详细说明。需说明的是,以下实施例的顺序不作为对实施例优选顺序的限定。
45.(图1-图4)本技术实施例提供了一种基于python的redfish自动化测试方法及装置,其中包括:
46.步骤1,获取预期结果;
47.步骤2,获取服务器ip地址,基于已知的待测试项的url路径,获取返回结果;
48.步骤3,比较所述返回结果与所述预期结果,若所述返回结果与所述预期结果相等,则所述服务器bmc redfish功能正常;若所述返回结果与所述预期结果不相等,则所述服务器bmc redfish功能异常;
49.步骤4,保存所述预期结果与所述返回结果的比较记录。
50.需要重点说明的是:可以提供可视化界面让用户输入待测服务器的ip地址,并且可以同时测试多台机器,提高测试效率。关键部分代码说明:
[0051][0052]
上述部分代码表示程序先获取服务器ip地址,由于测试项的url为实现已知的,所以程序获取bmc的ip地址之后,请求某个测试项的redfish的url,根据相应的测试项的url去获取返回结果,并且将结果保存起来。
[0053][0054]
上图这个代码块主要是用来比较测试结果中的key与key的值。
[0055]
在一些实施例中(图2),所述比较所述预期结果与所述返回结果,若所述返回结果与所述预期结果相等,则所述服务器bmc redfish功能正常;若所述返回结果与所述预期结果不相等,则所述服务器bmc redfish功能异常,包括:判断所述返回结果的key是否存在;若是,比较所述预期结果的key与所述返回结果的key是否相等以及相对应key的值是否相等;若否,记录异常结果,获取下一个所述返回结果的key。
[0056]
需要说明的是:不仅要比较所述预期结果的key与所述返回结果的key是否相等,而且要比较相对应key的值(value)是否相等,因为key和value是成对的。
[0057]
在一些实施例中(图3),所述比较所述预期结果的key与所述返回结果的key是否相等以及相对应key的值是否相等,包括:比较所述预期结果的key与所述返回结果的key是否相等以及相对应key的值是否相等;若是,判断所述返回结果的key是否比较完;若否,记录异常结果,获取下一个所述返回结果的key。
[0058]
在一些实施例中(图3),所述判断所述返回结果的key是否比较完,包括:判断所述返回结果的key是否比较完;若是,判定所述服务器bmc redfish功能正常;若否,获取下一个所述返回结果的key进行比较。
[0059]
在一些实施例中,包括:根据所述异常结果记录,判定所述服务器bmc redfish功能异常,并发出告警提示。
[0060]
需要重点说明的是:传统方法要测试某个redfish接口的内容是否是与测试用例要求的相同需要人工对比结果。redfish将近上百个资源url,所有的字段高达上千个,现有的测试方法费时费力,测试结果不直观,易出错,效率低下。
[0061]
本发明通过python程序进行自动化测试,提高了redfish的测试效率,待测服务器ip地址可以写到配置文件或者通过用户界面输入让程序去读取,测试完之后。另外本发明重要改进点之一是可以将测试结果保存到相应的excel文档中,便于用户对问题进行精准定位。
[0062]
由上可知,本技术实施例一种基于python的redfish自动化测试方法及装置,其中包括:获取预期结果;获取服务器ip地址,基于已知待测试项的url路径,获取返回结果;比较所述返回结果与所述预期结果,若所述返回结果与所述预期结果相等,则所述服务器bmc redfish功能正常;若所述返回结果与所述预期结果不相等,则所述服务器bmc redfish功能异常;保存所述预期结果与所述返回结果的比较记录。本发明通过python程序进行自动化测试,提高了redfish的测试效率,待测服务器ip地址可以写到配置文件或者通过用户界面输入让程序去读取,测试完之后,可以将测试结果保存到相应的excel文档中,便于用户对问题进行精准定位。
[0063]
为了更好地实施以上方法,本技术实施例还提供一种基于python的redfish自动化测试装置200(如图4),该装置具体可以集成在电子设备中,该电子设备可以为终端、服务器、个人电脑等设备。比如,在本实施例中,该装置可以包括:预期结果获取单元201、服务器ip地址获取单元202、返回结果获取单元203、比较单元204、记录单元205、告警单元206和显示单元207,具体如下:
[0064]
(1)预期结果获取单元201,用于获取预期结果。
[0065]
在一些实施例中,获取预期结果;获取服务器ip地址,基于已知待测试项的url路径,获取返回结果;比较所述返回结果与所述预期结果,若所述返回结果与所述预期结果相等,则所述服务器bmc redfish功能正常;若所述返回结果与所述预期结果不相等,则所述服务器bmc redfish功能异常;保存所述预期结果与所述返回结果的比较记录。
[0066]
(2)服务器ip地址获取单元202,用于获取服务器ip地址。
[0067]
在一些实施例中,获取预期结果;获取服务器ip地址,基于已知待测试项的url路径,获取返回结果;比较所述返回结果与所述预期结果,若所述返回结果与所述预期结果相等,则所述服务器bmc redfish功能正常;若所述返回结果与所述预期结果不相等,则所述服务器bmc redfish功能异常;保存所述预期结果与所述返回结果的比较记录。
[0068]
(3)返回结果获取单元203,用于获取返回结果。
[0069]
在一些实施例中,获取预期结果;获取服务器ip地址,基于已知待测试项的url路径,获取返回结果;比较所述返回结果与所述预期结果,若所述返回结果与所述预期结果相等,则所述服务器bmc redfish功能正常;若所述返回结果与所述预期结果不相等,则所述
服务器bmc redfish功能异常;保存所述预期结果与所述返回结果的比较记录。
[0070]
(4)比较单元204,用于比较所述返回结果与所述预期结果,若所述返回结果与所述预期结果相等,则服务器bmc redfish功能正常;若所述返回结果与所述预期结果不相等,则服务器bmc redfish功能异常。
[0071]
在一些实施例中,获取预期结果;获取服务器ip地址,基于已知待测试项的url路径,获取返回结果;比较所述返回结果与所述预期结果,若所述返回结果与所述预期结果相等,则所述服务器bmc redfish功能正常;若所述返回结果与所述预期结果不相等,则所述服务器bmc redfish功能异常;保存所述预期结果与所述返回结果的比较记录。
[0072]
在一些实施例中,所述比较所述预期结果与所述返回结果,若所述返回结果与所述预期结果相等,则所述服务器bmc redfish功能正常;若所述返回结果与所述预期结果不相等,则所述服务器bmc redfish功能异常,包括:判断所述返回结果的key是否存在;若是,比较所述预期结果的key与所述返回结果的key是否相等以及相对应key的值是否相等;若否,记录异常结果,获取下一个所述返回结果的key。
[0073]
在一些实施例中,所述比较所述预期结果的key与所述返回结果的key是否相等以及相对应key的值是否相等,包括:比较所述预期结果的key与所述返回结果的key是否相等以及相对应key的值是否相等;若是,判断所述返回结果的key是否比较完;若否,记录异常结果,获取下一个所述返回结果的key。
[0074]
在一些实施例中,所述判断所述返回结果的key是否比较完,包括:判断所述返回结果的key是否比较完;若是,判定所述服务器bmc redfish功能正常;若否,获取下一个所述返回结果的key进行比较。
[0075]
(5)记录单元205,用于记录异常结果。
[0076]
在一些实施例中,获取预期结果;获取服务器ip地址,基于已知待测试项的url路径,获取返回结果;比较所述返回结果与所述预期结果,若所述返回结果与所述预期结果相等,则所述服务器bmc redfish功能正常;若所述返回结果与所述预期结果不相等,则所述服务器bmc redfish功能异常;保存所述预期结果与所述返回结果的比较记录。
[0077]
在一些实施例中,所述比较所述预期结果与所述返回结果,若所述返回结果与所述预期结果相等,则所述服务器bmc redfish功能正常;若所述返回结果与所述预期结果不相等,则所述服务器bmc redfish功能异常,包括:判断所述返回结果的key是否存在;若是,比较所述预期结果的key与所述返回结果的key是否相等以及相对应key的值是否相等;若否,记录异常结果,获取下一个所述返回结果的key。
[0078]
在一些实施例中,所述比较所述预期结果的key与所述返回结果的key是否相等以及相对应key的值是否相等,包括:比较所述预期结果的key与所述返回结果的key是否相等以及相对应key的值是否相等;若是,判断所述返回结果的key是否比较完;若否,记录异常结果,获取下一个所述返回结果的key。
[0079]
(6)告警单元206,用于当所述服务器bmc redfish功能异常时,发出告警提示。
[0080]
在一些实施例中,包括:根据所述异常结果记录,判定所述服务器bmc redfish功能异常,并发出告警提示。
[0081]
(7)显示单元207,用于显示异常结果记录。
[0082]
在一些实施例中,获取预期结果;获取服务器ip地址,基于已知待测试项的url路
径,获取返回结果;比较所述返回结果与所述预期结果,若所述返回结果与所述预期结果相等,则所述服务器bmc redfish功能正常;若所述返回结果与所述预期结果不相等,则所述服务器bmc redfish功能异常;保存所述预期结果与所述返回结果的比较记录。
[0083]
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
[0084]
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于计算机可读存储介质中,并由处理器进行加载和执行。
[0085]
为此,本技术实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本技术实施例所提供的任一种基于python的redfish自动化测试方法中的步骤。例如,该指令可以执行如下步骤:
[0086]
获取预期结果;获取服务器ip地址,基于已知待测试项的url路径,获取返回结果;比较所述返回结果与所述预期结果,若所述返回结果与所述预期结果相等,则所述服务器bmc redfish功能正常;若所述返回结果与所述预期结果不相等,则所述服务器bmc redfish功能异常;保存所述预期结果与所述返回结果的比较记录。
[0087]
其中,该存储介质可以包括:只读存储器(rom,read only memory)、随机存取记忆体(ram,random access memory)、磁盘或光盘等。
[0088]
综上所述,与现有技术相比,本发明具有以下有益效果:一种基于python的redfish自动化测试方法及装置,其中包括:获取预期结果;获取服务器ip地址,基于已知待测试项的url路径,获取返回结果;比较所述返回结果与所述预期结果,若所述返回结果与所述预期结果相等,则所述服务器bmc redfish功能正常;若所述返回结果与所述预期结果不相等,则所述服务器bmc redfish功能异常;保存所述预期结果与所述返回结果的比较记录。本发明通过python程序进行自动化测试,提高了redfish的测试效率,待测服务器ip地址可以写到配置文件或者通过用户界面输入让程序去读取,测试完之后,可以将测试结果保存到相应的excel文档中,便于用户对问题进行精准定位。
[0089]
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1