CN105389255B - 一种bmc oem命令返回值与固定信息比对的自动化测试方法 - Google Patents

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

Info

Publication number
CN105389255B
CN105389255B CN201510687497.3A CN201510687497A CN105389255B CN 105389255 B CN105389255 B CN 105389255B CN 201510687497 A CN201510687497 A CN 201510687497A CN 105389255 B CN105389255 B CN 105389255B
Authority
CN
China
Prior art keywords
test
library
file
tested
check
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510687497.3A
Other languages
English (en)
Other versions
CN105389255A (zh
Inventor
张贺
肖欢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN201510687497.3A priority Critical patent/CN105389255B/zh
Publication of CN105389255A publication Critical patent/CN105389255A/zh
Application granted granted Critical
Publication of CN105389255B publication Critical patent/CN105389255B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种BMC OEM命令返回值与固定信息比对的自动化测试方法,其实现过程为:搭建测试环境;构建测试库文件;运行测试库文件,该测试库文件包括测试进度断点文件和测试结果输出文件,然后进行测试:依次对每个测试库进行测试,完成后退出;测试完成后测试结果在测试程序中显示。该一种BMC OEM命令返回值与固定信息比对的自动化测试方法与现有技术相比,具有高效率、高准确性、高通用性、高可观性等优点,实用性强,易于推广。

Description

一种BMC OEM命令返回值与固定信息比对的自动化测试方法
技术领域
本发明涉及计算机技术领域,具体地说是一种实用性强、BMC OEM命令返回值与固定信息比对的自动化测试方法。
背景技术
BMC是一个安装在服务器主板上的独立的板卡,现在也有服务器主板提供对IPMI支持的。IPMI良好的自治特性便克服了以往基于操作系统的管理方式所受的限制,并且芯片上除出厂已定义的寄存器地址,还提供了大量未定义功能,可由用户进行二次开发的寄存器。在服务器研发过程中,为满足客户某些复杂的自定义要求,需要开发这些寄存器的资源。这些寄存器需要通过OEM命令来访问,由于OEM命令未经过宏定义、返回值也未被解析,人工完成对这一部分的测试是一项耗时费力的工作。
在对大量的OEM命令的测试中,通过自动化测试脚本,尽可能减少人工交互过程,来实现对产品的BMC OEM命令功能性检测目的。基于此,现提供一种BMC OEM命令返回值与固定信息比对的自动化测试方法。
发明内容
本发明的技术任务是针对以上不足之处,提供一种实用性强、BMC OEM命令返回值与固定信息比对的自动化测试方法。
一种BMC OEM命令返回值与固定信息比对的自动化测试方法,其具体实现过程为:
搭建测试环境;
构建测试库文件;
运行测试库文件,该测试库文件包括测试进度断点文件和测试结果输出文件,然后进行测试:
依次对每个测试库进行测试,完成后退出;
测试完成后测试结果在测试程序中显示。
所述测试环境的搭建过程为:
首先准备测试环境,该测试环境包括操作系统的选择、磁盘分区及软件包的选择、BIOS中设置项修改确认;
然后进行操作系统的安装配置,安装完操作系统后,系统自带Ipmitool工具。
所述测试库文件内容通过表格表示,该表格内容包括:序号、命令功能名称、访问序列、期待值、是否测试标志,其中是否测试标识通过CHECK标记,当标记CHECK时,则忽略该测试项。
所述测试库文件存储的文件名分别为读取BIOS设置参数和写入BIOS设置参数的命令集库。
在测试库测试前,测试库文件需要进行预处理,该预处理的过程为:在excel中编辑,转换文件格式以兼容Linux,并在测试库中每行末尾处通过CHECK标志代表该测试项的使能。
所述测试库测试的具体过程为:
首先获取测试断点信息;
判断测试库是否需要进行测试;
步进测试断点;
获取测试项名称;
继续获取剩余字节的测试命令列;
获取CHECK标志;
获取期待值;
返回值初始化;
无CHECK标志时则命令运行结果赋值给RESPONSE对象与期待值比对,测试通过则赋值测试结果变量RESULT为PASS;不通过则FAIL,并将访问所用的命令列赋值给check_raw,之后在测试结果输出文件中体现以方便测试人员手动复检;
有CHECK标志则忽略该测试项,测试结果为N/A;
将测试结果定向入测试结果输出文件;
重新获取测试进度;
初始化测试项进度;
步进测试库进度,循环进行测试。
本发明的一种BMC OEM命令返回值与固定信息比对的自动化测试方法,具有以下优点:
高效率,测试过程与结果分析过程全部由脚本自动完成;高准确性,测试无人机交互过程,避免人为因素产生的失误;通用性,定义测试库规范,针对不同客户的自定义需求,只需根据规范维护表格形式测试命令集库即可,无需对脚本进行任何更改;可观性,测试结果输出文件内容简单明了,便于快速定位结果异常的测试项,实用性强,易于推广。
具体实施方式
下面结合具体实施例对本发明作进一步说明。
IPMI是智能型平台管理接口(Intelligent Platform Management Interface)的缩写,是管理基于 Intel结构的企业系统中所使用的外围设备采用的一种工业标准,该标准由英特尔、惠普、NEC、美国戴尔电脑和SuperMicro等公司制定。用户不仅可以利用IPMI监视服务器的物理健康特征,还可以使用raw参数直接向BMC发送16进制的命令列以访问其对应的寄存器。
Ipmitool工具是业界公认的BMC工具之一,支持对BMC的很全面的控制及设置等操作。
根国际IPMI 2.0规范,据通过Ipmitool工具对BMC发送访问命令,模拟客户应用场景。运行此工具可以实现通过BMCOEM命令发送BIOS配置写命令,重启后自动重新运行脚本并进入读BIOS配置阶段,通过返回值判断设置是否生效,在测试断点文件的控制下如此循环,全面覆盖测试内容。
基于此,本发明提供一种BMC OEM命令返回值与固定信息比对的自动化测试方法,使用自动化测试脚本访问测试库文件中的OEM命令集,通过IPMITOOL工具对BMC发送访问命令,模拟客户实际中的应用动作获得返回值,并与测试库文件中期待的返回值比对,给出测试结果,完成对BMCOEM命令功能性进行科学有效性的测试,其具体实现过程为:
搭建测试环境;
构建测试库文件;
运行测试库文件,该测试库文件包括测试进度断点文件和测试结果输出文件,然后进行测试:
依次对每个测试库进行测试,完成后退出;
测试完成后测试结果在测试程序中显示。
所述测试环境的搭建过程为:
首先准备测试环境,该测试环境包括操作系统的选择、磁盘分区及软件包的选择、BIOS中设置项修改确认;
然后进行操作系统的安装配置,安装完操作系统后,系统自带Ipmitool工具。
所述测试库文件内容通过表格表示,该表格内容包括:序号、命令功能名称、访问序列、期待值、是否测试标志,其中是否测试标识通过CHECK标记,当标记CHECK时,则忽略该测试项。
表1测试库文件标准举例
所述测试库文件存储的文件名分别为读取BIOS设置参数和写入BIOS设置参数的命令集库。
在测试库测试前,测试库文件需要进行预处理,该预处理的过程为:在excel中编辑,转换文件格式以兼容Linux,并在测试库中每行末尾处通过CHECK标志代表该测试项的使能。
所述测试库测试的具体过程为:
所述测试库测试的具体过程为:
首先获取测试断点信息;
判断测试库是否需要进行测试;
步进测试断点;
获取测试项名称;
继续获取剩余字节的测试命令列;
获取CHECK标志;
获取期待值;
返回值初始化;
无CHECK标志时则命令运行结果赋值给RESPONSE对象与期待值比对,测试通过则赋值测试结果变量RESULT为PASS;不通过则FAIL,并将访问所用的命令列赋值给check_raw,之后在测试结果输出文件中体现以方便测试人员手动复检;
有CHECK标志则忽略该测试项,测试结果为N/A;
将测试结果定向入测试结果输出文件;
重新获取测试进度;
初始化测试项进度;
步进测试库进度,循环进行测试。
其中测试库测试的具体实例如下:
获取工具所在文件夹位置。
Cur_Dir=$(cd "$(dirname "$0")";pwd)。
#构建测试进度断点文件和测试结果输出文件。
if [ ! -e $Cur_Dir/Count.tmp ] ; then
touch $Cur_Dir/Count.tmp
touch $Cur_Dir/OEM_Result.csv
#测试断点文件第一行记录测试库编号(此处仅一个测试库)。
echo 1 >$Cur_Dir/Count.tmp
#第二行记录测试项编号,测试库文件第1行为表头,测试项由2开始。
echo 2 >>$Cur_Dir/Count.tmp
#第三行记录测试选项进度,很多BIOS设置项具有多个选项。
echo 1 >>$Cur_Dir/Count.tmp
#第四行记录测试总进度。
echo 1 >>$Cur_Dir/Count.tmp
echo "NO.,Command Name,EXPECT,RESPONSE,RESULT,check_raw" >$Cur_Dir/OEM_Result.csv
fi
#依次对每个测试库进行测试(此处仅一个测试库),完成后退出。
while true
do
CMD_Count=`cat $Cur_Dir/Count.tmp |awk 'NR==1{print $1}'`
case $CMD_Count in
1)RW_BIOS_configuration ;;
#2) ******* ;;
#3) ******* ;;
#4) ******* ;;
#5) ******* ;;
#测试完成后取消开机运行脚本。
*) sed -i '/RUN_OEM_test.sh/d' /etc/rc.d/rc.local
echo OEM Command test completed.
exit ;;
esac
done
######测试函数######
function RW_BIOS_configuration()
{
#测试库文件存储在当前目录的OEM_TestLib文件夹中,文件名为Get OEMsupportstatus.csv。
#测试库在excel中编辑,由于windows与Linux对文件换行符的识别有差异,所以先转换文件格式以兼容Linux,测试库中每行末尾的CHECK标志代表该测试项的使能,文件格式兼容性会影响对此标志的判断。
dos2unix $Cur_Dir/OEM_TestLib/Get\ OEM\ support\ status.csv
#获取测试断点信息。
OFFSET_Count=`cat $Cur_Dir/Count.tmp |awk 'NR==2{print $1}'`
CHOISE_Count=`cat $Cur_Dir/Count.tmp |awk 'NR==3{print $1}'`
NO=`cat $Cur_Dir/Count.tmp |awk 'NR==4{print $1}'`
#获取测试命令列,进入循环前先进行一个字节的命令列获取以判断该测试库是否需要进行测试。
NetFn=`cat $Cur_Dir/OEM_TestLib/Get\ OEM\ support\ status.csv |awk -F,
NR=='$OFFSET_Count'{print $3}'`
while [[ $NetFn != "" ]]
do
#步进测试断点。
sed -i '2c '$[$OFFSET_Count+1]'' $Cur_Dir/Count.tmp
sed -i '4c '$[$NO + 1]'' $Cur_Dir/Count.tmp
#获取测试项名称。
Command=`cat $Cur_Dir/OEM_TestLib/Get\ OEM\ support\ status.csv |awk-F,
NR=='$OFFSET_Count'{print $2}'`。
#继续获取剩余字节的测试命令列,由于举例中的测试库的访问命令仅两个字节,此处忽略Req1-3字节。
CMD=`cat $Cur_Dir/OEM_TestLib/Get\ OEM\ support\ status.csv |awk -F,
NR=='$OFFSET_Count'{print $4}'`
#Req1=`cat $Cur_Dir/OEM_TestLib/Get\ OEM\ support\ status.csv |awk -F,
NR=='$OFFSET_Count'{print $5}'`
#Req2=`cat $Cur_Dir/OEM_TestLib/Get\ OEM\ support\ status.csv |awk -F,
NR=='$OFFSET_Count'{print $6}'`
#Req3=`cat $Cur_Dir/OEM_TestLib/Get\ OEM\ support\ status.csv |awk -F,
NR=='$OFFSET_Count'{print $7}'`
#获取CHECK标志。
CHECK=`cat $Cur_Dir/OEM_TestLib/Get\ OEM\ support\ status.csv |awk -F,
NR=='$OFFSET_Count'{print $9}' |awk '{print $1}'`
#获取期待值。
EXPECT=`cat $Cur_Dir/OEM_TestLib/Get\ OEM\ support\ status.csv |awk -F,
'NR=='$OFFSET_Count'{print $8}' |awk -F "#" '{print $2}'`
#返回值初始化。
RESPONSE=""
#无CHECK标志则。
if [ "$CHECK" != "CHECK" ] ;then
#命令运行结果赋值给RESPONSE与期待值比对,测试通过则赋值测试结果变量RESULT为PASS;不通过则FAIL,并将访问所用的命令列赋值给check_raw,之后在测试结果输出文件中体现以方便测试人员手动复检。
RESPONSE=`ipmitool raw $NetFn $CMD`
if [ x"$RESPONSE" = x"$EXPECT" ] ;then
RESULT=PASS
check_raw=""
else
RESULT=FAIL
check_raw="$NetFn $CMD"
fi
#有CHECK标志则,忽略该测试项,测试结果为N/A。
Else
RESULT=N/A
check_raw=""
fi
#将测试结果定向入测试结果输出文件OEM_Result.csv。
echo "$NO,$Command,#$EXPECT,#$RESPONSE,$RESULT,$check_raw" >>$Cur_Dir/OEM_Result.csv
#重新获取测试进度。
OFFSET_Count=`cat $Cur_Dir/Count.tmp |awk 'NR==2{print $1}'`
CHOISE_Count=`cat $Cur_Dir/Count.tmp |awk 'NR==3{print $1}'`
NO=`cat $Cur_Dir/Count.tmp |awk 'NR==4{print $1}'`
NetFn=`cat $Cur_Dir/OEM_TestLib/Get\ OEM\ support\ status.csv |awk -F,
NR=='$OFFSET_Count'{print $3}'`
Done
#初始化测试项进度。
sed -i '2c 2' $Cur_Dir/Count.tmp
#步进测试库进度。
sed -i '1c '$[$CMD_Count+1]'' $Cur_Dir/Count.tmp
}
测试方法及结果说明。
赋予脚本可执行权限后,直接运行脚本即可,测试过程中系统会反复重启;
当测试项期待值与返回值相同时,测试结果为PASS;
当测试项具有CHECK标志时(在测试库文件中体现),忽略当前测试项,测试结果为N/A;
当测试项期待值与返回值不同时,测试结果为FAIL,并在check_raw中将测试所使用的命令列体现出来,便于人工复检。
本发明通过自动化测试脚本,实现了在Linux平台下完成返回值为固定信息的OEM命令的自动测试比对过程。针对不同用户下发的OEM规范构建测试命令集库,测试过程完全由脚本程序来完成,不再需要任何人为的交互过程,即测试命令集库的构建过程成为失误发生的唯一阶段。测试命令集库为表格形式,便于维护。
综上,该测试方法具有高准确率,高效率,高通用性等特点,适用于所有服务器产品,目前已广泛运用到RACK产品的BMC测试中。
上述具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述具体实施方式,任何符合本发明的一种BMC OEM命令返回值与固定信息比对的自动化测试方法的权利要求书的且任何所述技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。

Claims (1)

1.一种BMC OEM命令返回值与固定信息比对的自动化测试方法,其特征在于,其具体实现过程为:
搭建测试环境;
构建测试库文件;
运行测试库文件,该测试库文件包括测试进度断点文件和测试结果输出文件,然后进行测试:
依次对每个测试库进行测试,完成后退出;
测试完成后测试结果在测试程序中显示;
所述测试环境的搭建过程为:
首先准备测试环境,该测试环境包括操作系统的选择、磁盘分区及软件包的选择、BIOS中设置项修改确认;
然后进行操作系统的安装配置,安装完操作系统后,系统自带Ipmitool工具;
所述测试库文件内容通过表格表示,该表格内容包括:序号、命令功能名称、访问序列、期待值、是否测试标志,其中是否测试标志通过CHECK标记,当标记CHECK时,则忽略该测试项;
所述测试库文件存储的文件名分别为读取BIOS设置参数和写入BIOS设置参数的命令集库;
在测试库测试前,测试库文件需要进行预处理,该预处理的过程为:在excel中编辑,转换文件格式以兼容Linux,并在测试库中每行末尾处通过CHECK标志代表该测试项的使能;
所述测试库测试的具体过程为:
首先获取测试断点信息;
获取测试命令列,首先进行一个字节的命令列获取以判断该测试库是否需要进行测试,该字节是指测试库的访问命令字节;
步进测试断点;
获取测试项名称;
继续获取剩余测试库访问命令字节的测试命令列;
获取CHECK标志;
获取期待值;
返回值初始化;
无CHECK标志时则命令运行结果赋值给RESPONSE对象与期待值比对,测试通过则赋值测试结果变量RESULT为PASS;不通过则FAIL,并将访问所用的命令列在测试结果输出文件中体现,以方便测试人员手动复检;
有CHECK标志则忽略该测试项,测试结果为N/A;
将测试结果定向入测试结果输出文件;
重新获取测试进度;
初始化测试项进度;
步进测试库进度,循环进行测试。
CN201510687497.3A 2015-10-21 2015-10-21 一种bmc oem命令返回值与固定信息比对的自动化测试方法 Active CN105389255B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510687497.3A CN105389255B (zh) 2015-10-21 2015-10-21 一种bmc oem命令返回值与固定信息比对的自动化测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510687497.3A CN105389255B (zh) 2015-10-21 2015-10-21 一种bmc oem命令返回值与固定信息比对的自动化测试方法

Publications (2)

Publication Number Publication Date
CN105389255A CN105389255A (zh) 2016-03-09
CN105389255B true CN105389255B (zh) 2017-11-21

Family

ID=55421561

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510687497.3A Active CN105389255B (zh) 2015-10-21 2015-10-21 一种bmc oem命令返回值与固定信息比对的自动化测试方法

Country Status (1)

Country Link
CN (1) CN105389255B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108768759A (zh) * 2018-04-03 2018-11-06 郑州云海信息技术有限公司 一种基于ipmi协议的黑盒测试方法及其终端测试平台
CN111694616A (zh) * 2019-03-12 2020-09-22 福建天晴在线互动科技有限公司 命令执行结果的获取方法及计算机可读存储介质
CN111010308B (zh) * 2019-10-29 2021-09-14 苏州浪潮智能科技有限公司 一种kvm服务测试方法与装置
CN112463818B (zh) * 2020-11-24 2022-07-12 苏州浪潮智能科技有限公司 一种存储底层信息查询方法、介质、设备及系统
CN113157594B (zh) * 2021-05-24 2024-05-24 宁畅信息产业(北京)有限公司 一种用户权限测试方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1369802A (zh) * 2001-02-14 2002-09-18 英业达股份有限公司 记录并自动恢复流程状态的方法
CN102215501A (zh) * 2010-04-09 2011-10-12 希姆通信息技术(上海)有限公司 实现无线模块at命令自动化测试的方法
CN104954504A (zh) * 2015-05-05 2015-09-30 浪潮电子信息产业股份有限公司 一种自动化进行bmc管理ip配置的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7913230B2 (en) * 2007-01-31 2011-03-22 Oracle International Corporation Computer-implemented methods and systems for generating software testing documentation and test results management system using same

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1369802A (zh) * 2001-02-14 2002-09-18 英业达股份有限公司 记录并自动恢复流程状态的方法
CN102215501A (zh) * 2010-04-09 2011-10-12 希姆通信息技术(上海)有限公司 实现无线模块at命令自动化测试的方法
CN104954504A (zh) * 2015-05-05 2015-09-30 浪潮电子信息产业股份有限公司 一种自动化进行bmc管理ip配置的方法

Also Published As

Publication number Publication date
CN105389255A (zh) 2016-03-09

Similar Documents

Publication Publication Date Title
CN105224459B (zh) 一种linux平台下测试bmc通过oem命令读写bios配置功能的方法
CN105389255B (zh) 一种bmc oem命令返回值与固定信息比对的自动化测试方法
CN1997909B (zh) 用于控制模块化测试系统中可互换部件的方法和系统
Torrez et al. HPC container runtimes have minimal or no performance impact
Shi et al. Evaluating scalability bottlenecks by workload extrapolation
CN105008943A (zh) 对在fpga块内分组创建加速的测试仪
CN104484274B (zh) 一种基于itp工具的内存轮巡检查功能测试方法
EP1214656A1 (en) Method and system for web based software object testing
CN101799506B (zh) 基于脚本控制的芯片测试方法、装置及系统
US9645911B2 (en) System and method for debugging firmware/software by generating trace data
US20140149728A1 (en) Data driven hardware chips initialization via hardware procedure framework
CN106093897B (zh) 一种雷达系统的测试系统及测试方法
CN105760296A (zh) 自动化测试控制方法、装置及终端
CN110235393A (zh) 自动化测试方法及系统
CN110543400A (zh) 一种服务器测试平台、服务器配置信息测试方法及系统
CN107451058A (zh) 一种软件开发方法和装置
CN109656756A (zh) 多核cpu板卡调试方法及装置、移动存储介质
CN112527247B (zh) Led显示控制系统模拟方法、装置以及系统
CN104572289A (zh) 基于虚拟化的服务器配置测算处理方法与装置
CN103425580A (zh) 一种自动快速获取和校验云计算设备配置信息的方法
CN102055780A (zh) 磁盘阵列测试系统及方法
CN117215932A (zh) 代码增量覆盖信息的展示方法及其装置、电子设备
CN109582347B (zh) 一种获取前端代码的方法及装置
CN117111907A (zh) 一种软件开发系统
CN104239170A (zh) Pci设备测试方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant