本发明涉及服务器技术领域,尤其涉及一种基于通用平台的bmc测试系统实现的方法,还涉及一种基于通用平台的bmc测试系统实现的装置。
背景技术:
在当今互联网时代,各大行业和公司需要大量的服务器来支持自己的产品或平台。bmc是服务器的监控管理的芯片,负责监控整个机箱的实时状态,保证服务器的正常运行。bmc的测试面临着多种挑战,首先,bmc模拟需要专用的测试硬件平台,其功能需在芯片开发完成之后才能够进行,导致测试进度后延;其次,bmc测试过程中,需要频繁对系统进行重启,降低测试效率;另外,由于bmc芯片相对比较封闭,对外提供的接口有限,不利于对系统进行故障模拟。
基于上述背景,对于本领域技术人员而言,如何更好的突破上述限制,提升bmc自动化测试能力,提升bmc的开发测试效率,是亟需解决的技术问题。
技术实现要素:
基于背景技术存在的技术问题,本发明提出了一种基于通用平台的bmc测试系统实现的方法装置,实现了不限于服务器硬件,可以及时对bmc进行测试,不受硬件的约束,提高效率,可避免因硬件原因导致无法保证bmc功能的情况。
本发明提出的一种基于通用平台的bmc测试系统实现的装置,包括:
自动化测试子系统,用于bmc测试用例的激发;
故障测试子系统,用于故障数据集的管理以及故障的激发;
故障注入子系统,用于将故障注入到模拟驱动中;
监控器驱动模拟子系统,用于实现bmc所访问硬件的模拟;
可配置的编译系统,用于实现系统的代码能够在目标平台和测试平台能够通运行。
优选地,自动化测试子系统在执行ipmi命令或者bmc其它访问接口之前,进行测试环境初始化:为对故障模拟子系统和监控器驱动模拟子系统的初始化、状态调整及故障注入,实现模拟系统外用户或者系统对bmc芯片的应用场景。
优选地,故障测试子系统将故障数据集存于数据库中,待故障数据集注入后,自动测试子系统所获取值应与故障注入值一致。
优选地,故障注入子系统接收故障测试子系统的故障数据,通过用户内核空间通信机制将数据传递到内核空间,进而通过系统预留的故障注入点,将数据注入到驱动模拟系统中。
优选地,监控器驱动模拟子系统代理bmcfirmware对硬件操作接口的实现。
优选地,可配置的编译系统通过主编译脚本,根据编译选项选择不同的编译组件进行编译构建其系统。
优选地,可配置的编译系统基于gccmake机制实现;在目标平台的场景下,可配置的编译系统调用bmc专用的交叉编译工具集进行编译;在测试场景下,可配置的编译系统调用通用的gcc,结合通用的glibc进行编译。
本发明还提出了一种基于通用平台的bmc测试系统实现的方法,包括以下步骤:
准备测试环境;
根据测试用例选择对应的测试数据;
故障激发;
将故障数据发送到故障注入模块;
确认是否完成准备,若是,则激发测试用例;
bmc访问层接收到请求指令;
根据bmc具体功能访问相关驱动;
请求传递到模拟驱动;
读取模拟数据;
返回结果。
本发明中提供的一种基于通用平台的bmc测试系统实现的方法和装置,可以在无硬件设备的情况下可以对bmc功能进行测试,得到准确的测试数据,正确的验证bmc的功能,节省人力和时间,也可以提高测试效率,减轻测试人员繁重的任务和负担。
附图说明
图1为本发明提出的一种基于通用平台的bmc测试系统实现的方法的流程图。
具体实施方式
如图1所示,图1为本发明提出的一种基于通用平台的bmc测试系统实现的方法的流程图。
下面结合附图和实施例对本发明进行详细的描述。
一种基于通用平台的bmc测试系统实现的方法,包括以下步骤:
准备测试环境;
根据测试用例选择对应的测试数据;
故障激发;
将故障数据发送到故障注入模块;
确认是否完成准备,若是,则激发测试用例;
bmc访问层接收到请求指令;
根据bmc具体功能访问相关驱动;
请求传递到模拟驱动;
读取模拟数据;
返回结果。
一种基于通用平台的bmc测试系统实现的装置,包括:
自动化测试子系统,用于bmc测试用例的激发;
故障测试子系统,用于故障数据集的管理以及故障的激发;
故障注入子系统,用于将故障注入到模拟驱动中;
监控器驱动模拟子系统,用于实现bmc所访问硬件的模拟;
可配置的编译系统,用于实现系统的代码能够在目标平台和测试平台能够通运行。
在进一步的实施方式中,自动化测试子系统在执行ipmi命令或者bmc其它访问接口之前,进行测试环境初始化:为对故障模拟子系统和监控器驱动模拟子系统的初始化、状态调整及故障注入,实现模拟系统外用户或者系统对bmc芯片的应用场景。
在进一步的实施方式中,故障测试子系统将故障数据集存于数据库中,待故障数据集注入后,自动测试子系统所获取值应与故障注入值一致。
在进一步的实施方式中,故障注入子系统接收故障测试子系统的故障数据,通过用户内核空间通信机制将数据传递到内核空间,进而通过系统预留的故障注入点,将数据注入到驱动模拟系统中。
在进一步的实施方式中,监控器驱动模拟子系统代理bmcfirmware对硬件操作接口的实现。
在进一步的实施方式中,可配置的编译系统通过主编译脚本,根据编译选项选择不同的编译组件进行编译构建其系统。
在进一步的实施方式中,可配置的编译系统基于gccmake机制实现;在目标平台的场景下,可配置的编译系统调用bmc专用的交叉编译工具集进行编译;在测试场景下,可配置的编译系统调用通用的gcc,结合通用的glibc进行编译。
上述实施方式中提供的一种基于通用平台的bmc测试系统实现的方法和装置,建立在bmc核心功能的分析基础上,通过以下机制实现了自动化测试框架:
1、建立多平台编绎系统,通过专用的测试编绎流程,使得bmc代码能够在通用的平台进行运行;
2、采用虚拟驱动技术,在保证测试平台与目标平台接口统一的环境下,能够通过软件模拟硬件的输出,使得整体测试流程不依赖于具体的硬件;所述需模拟的硬件包括但不限于i2c驱动、cpu、内存、串口;
3、在硬件层实现故障注入机制,便于测试打桩;
4、实现故障测试子系统,通过增量实现故障测试数据集,通过故障注入机制,按照需要模拟系统故障,以测试bmc芯片在故障场景下的预期输出。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。