一种基于通用平台的BMC测试系统实现的方法和装置与流程

文档序号:18101422发布日期:2019-07-06 11:23阅读:375来源:国知局
一种基于通用平台的BMC测试系统实现的方法和装置与流程

本发明涉及服务器技术领域,尤其涉及一种基于通用平台的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芯片在故障场景下的预期输出。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1