一种bmcoem命令返回值与固定信息比对的自动化测试方法

文档序号:9631484阅读:282来源:国知局
一种bmc oem命令返回值与固定信息比对的自动化测试方法
【技术领域】
[0001] 本发明涉及计算机技术领域,具体地说是一种实用性强、BMCOEM命令返回值与固 定信息比对的自动化测试方法。
【背景技术】
[0002] BMC是一个安装在服务器主板上的独立的板卡,现在也有服务器主板提供对IPMI 支持的。IPMI良好的自治特性便克服了以往基于操作系统的管理方式所受的限制,并且芯 片上除出厂已定义的寄存器地址,还提供了大量未定义功能,可由用户进行二次开发的寄 存器。在服务器研发过程中,为满足客户某些复杂的自定义要求,需要开发这些寄存器的资 源。这些寄存器需要通过OEM命令来访问,由于OEM命令未经过宏定义、返回值也未被解析, 人工完成对这一部分的测试是一项耗时费力的工作。
[0003] 在对大量的OEM命令的测试中,通过自动化测试脚本,尽可能减少人工交互过程, 来实现对产品的BMCOEM命令功能性检测目的。基于此,现提供一种BMCOEM命令返回值 与固定信息比对的自动化测试方法。

【发明内容】

[0004] 本发明的技术任务是针对以上不足之处,提供一种实用性强、BMCOEM命令返回值 与固定信息比对的自动化测试方法。
[0005] -种BMCOEM命令返回值与固定信息比对的自动化测试方法,其具体实现过程 为: 搭建测试环境; 构建测试库文件; 运行测试库文件,该测试库文件包括测试进度断点文件和测试结果输出文件,然后进 行测试: 依次对每个测试库进行测试,完成后退出; 测试完成后测试结果在测试程序中显示。
[0006] 所述测试环境的搭建过程为: 首先准备测试环境,该测试环境包括操作系统的选择、磁盘分区及软件包的选择、BIOS中设置项修改确认; 然后进行操作系统的安装配置,安装完操作系统后,系统自带Ipmitool工具。
[0007] 所述测试库文件内容通过表格表示,该表格内容包括:序号、命令功能名称、访问 序列、期待值、是否测试标志,其中是否测试标识通过CHECK标记,当标记CHECK时,则忽略 该测试项。
[0008] 所述测试库文件存储的文件名分别为读取BIOS设置参数和写入BIOS设置参数的 命令集库。
[0009] 在测试库测试前,测试库文件需要进行预处理,该预处理的过程为:在excel中编 辑,转换文件格式以兼容Linux,并在测试库中每行末尾处通过CHECK标志代表该测试项的 使能。
[0010] 所述测试库测试的具体过程为: 首先获取测试断点息; 判断测试库是否需要进行测试; 步进测试断点; 获取测试项名称; 继续获取剩余字节的测试命令列; 获取CHECK标志; 获取期待值; 返回值初始化; 无CHECK标志时则命令运行结果赋值给RESPONSE对象与期待值比对,测试通过则赋值 测试结果变量RESULT为PASS;不通过则FAIL,并将访问所用的命令列赋值给check_raw, 之后在测试结果输出文件中体现以方便测试人员手动复检; 有CHECK标志则忽略该测试项,测试结果为N/A; 将测试结果定向入测试结果输出文件; 重新获取测试进度; 初始化测试项进度; 步进测试库进度,循环进行测试。
[0011] 本发明的一种BMCOEM命令返回值与固定信息比对的自动化测试方法,具有以下 优点: 高效率,测试过程与结果分析过程全部由脚本自动完成;高准确性,测试无人机交互过 程,避免人为因素产生的失误;通用性,定义测试库规范,针对不同客户的自定义需求,只需 根据规范维护表格形式测试命令集库即可,无需对脚本进行任何更改;可观性,测试结果输 出文件内容简单明了,便于快速定位结果异常的测试项,实用性强,易于推广。
【具体实施方式】
[0012] 下面结合具体实施例对本发明作进一步说明。
[0013]IPMI是智能型平台管理接口(IntelligentPlatformManagementInterface)的 缩写,是管理基于Intel结构的企业系统中所使用的外围设备采用的一种工业标准,该标 准由英特尔、惠普、NEC、美国戴尔电脑和SuperMicro等公司制定。用户不仅可以利用IPMI 监视服务器的物理健康特征,还可以使用raw参数直接向BMC发送16进制的命令列以访问 其对应的寄存器。
[0014] Ipmitool工具是业界公认的BMC工具之一,支持对BMC的很全面的控制及设置等 操作。
[0015] 根国际IPMI2. 0规范,据通过Ipmitool工具对BMC发送访问命令,模拟客户应用 场景。运行此工具可以实现通过BMC0EM命令发送BIOS配置写命令,重启后自动重新运行 脚本并进入读BIOS配置阶段,通过返回值判断设置是否生效,在测试断点文件的控制下如 此循环,全面覆盖测试内容。
[0016]基于此,本发明提供一种BMCOEM命令返回值与固定信息比对的自动化测试方法, 使用自动化测试脚本访问测试库文件中的OEM命令集,通过IPMIT00L工具对BMC发送访问 命令,模拟客户实际中的应用动作获得返回值,并与测试库文件中期待的返回值比对,给出 测试结果,完成对BMC0EM命令功能性进行科学有效性的测试,其具体实现过程为: 搭建测试环境; 构建测试库文件; 运行测试库文件,该测试库文件包括测试进度断点文件和测试结果输出文件,然后进 行测试: 依次对每个测试库进行测试,完成后退出; 测试完成后测试结果在测试程序中显示。
[0017]所述测试环境的搭建过程为: 首先准备测试环境,该测试环境包括操作系统的选择、磁盘分区及软件包的选择、BIOS中设置项修改确认; 然后进行操作系统的安装配置,安装完操作系统后,系统自带Ipmitool工具。
[0018]所述测试库文件内容通过表格表示,该表格内容包括:序号、命令功能名称、访问 序列、期待值、是否测试标志,其中是否测试标识通过CHECK标记,当标记CHECK时,则忽略 该测试项。
[0019] 表1测试库文件标准举例
所述测试库文件存储的文件名分别为读取BIOS设置参数和写入BIOS设置参数的命令 集库。
[0020] 在测试库测试前,测试库文件需要进行预处理,该预处理的过程为:在excel中编 辑,转换文件格式以兼容Linux,并在测试库中每行末尾处通过CHECK标志代表该测试项的 使能。
[0021] 所述测试库测试的具体过程为: 所述测试库测试的具体过程为: 首先获取测试断点息; 判断测试库是否需要进行测试; 步进测试断点; 获取测试项名称; 继续获取剩余字节的测试命令列; 获取CHECK标志; 获取期待值; 返回值初始化; 无CHECK标志时则命令运行结果赋值给RESPONSE对象与期待值比对,测试通过则赋值 测试结果变量RESULT为PASS;不通过则FAIL,并将访问所用的命令列赋值给check_raw, 之后在测试结果输出文件中体现以方便测试人员手动复检; 有CHECK标志则忽略该测试项,测试结果为N/A; 将测试结果定向入测试结果输出文件; 重新获取测试进度; 初始化测试项进度; 步进测试库进度,循环进行测试。
[0022] 其中测试库测试的具体实例如下: 获取工具所在文件夹位置。
[0023] Cur_Dir=$(cd〃$(dirname〃$0")";pwd) 〇
[0024] #构建测试进度断点文件和测试结果输出文件。
[0025] if[ !-e$Cur_Dir/Count.tmp] ;then touch$Cur_Dir/Count.tmp touch$Cur_Dir/OEM_Result.csv#测试断点文件第一行记录测试库编号(此处仅一个测试库)。
[0026] echo 1 >$Cur_Dir/Count.tmp #第二行记录测试项编号,测试库文件第1行为表头,测试项由2开始。
[0027] echo 2 >>$Cur_Dir/Count. tmp #第三行记录测试选项进度,很多BIOS设置项具有多个选项。
[0028] echo 1 >>$Cur_Dir/Count. tmp #第四行记录测试总进度。
[0029] echo 1 >>$Cur_Dir/Count. tmp echo〃Ν0·,CommandName,EXPECT,RESPONSE,RESULT,check_raw〃 >$Cur_Dir/0EM_Result,csv fi #依次对每个测试库进行测试(此处仅一个测试库),完成后退出。
[0030] whiletrue do CMD_Count='cat$Cur_Dir/Count.tmp|awk'NR==1{print$1}''case$CMD_Countin 1)Rff_BI〇S_configuration;; #2)氺氺氺氺氺氺氺;; #3)氺氺氺氺氺氺氺;; #4)氺氺氺氺氺氺氺;; #5)氺氺氺氺氺氺氺;; #测试完成后取消开机运行脚本。
[0031] *)sed_i'/RUN-OEM-test,sh/d' /etc/rc.d/rc.local echoOEMCommandtestcompleted. exit;; esac done ######测试函数###### functionRW-BI0S_configuration() { #测试库文件存储在当前目录的〇EM_TestLib文件夹中,文件名为GetOEM supportstatus.csv〇
[0032] #测试库在excel中编辑,由于windows与Linux对文件换行符的识别有差异,所 以先转换文件格式以兼容Linux,测试库中每行末尾的CHECK标志代表该测试项的使能,文 件格式兼容性会影响对此标志的判断。
[0033]dos2unix$Cur_Dir/0EM_TestLib/Get\ 0EM\support\status.csv #获取测试断点信息。
[0034]OFFSET-Count='cat$Cur-Dir/
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1