本发明涉及服务器测试领域,具体地说是一种具备防呆功能的服务器uidled灯功能测试方法。
背景技术:
在当前计算机服务器整机系统生产中,大都要进行fct功能测试。在当前计算机uidled工厂大规模fct功能测试中,uidled由检测操作人员手工判定其功能的完整性。需要由操作人员按uidled按钮,点亮uidled,肉眼观察led是否被点亮,确认测试结果,操作人员的动手速度直接影响测试所需时间。在以上测试过程中,对操作人员的动作准确性依赖程度高,若操作人员不按uidled按钮,不去观察led灯是否被点亮,直接确认灯已被点亮,就可能导致假测,影响对产品质量的管控。故如何能够解决当前计算机服务器uidled大规模fct功能测试时与操作员交互过多,过重依赖操作员的动作准确程度,测试时间长、准确率低、缺少防呆手段以及容易产生假测的问题。
技术实现要素:
本发明的技术任务是提供一种具备防呆功能的服务器uidled灯功能测试方法,来解决当前计算机服务器uidled大规模fct功能测试时与操作员交互过多,过重依赖操作员的动作准确程度,测试时间长、准确率低、缺少防呆手段以及容易产生假测的问题。
本发明的技术任务是按以下方式实现的,一种具备防呆功能的服务器uidled灯功能测试方法,该方法包括如下步骤:
(1)、将uidled测试程序镜像放在服务器上,服务器上电开机启动,引导进入测试程序;
(2)、测试程序开始自动执行,随机自动点亮或关闭uidled,测试程序直接读取uidled硬件状态信息;
(3)、操作人员根据实际观测值输入测试结果;
(4)、将操作人输入的测试结果与通过测试程序直接读取uidled硬件状态信息结果进行对比是否相同:
①、若相同,则uidled测试通过;
②、若不相同,则uidled测试不良。
作为优选,所述步骤(1)中的服务器采用pxe启动服务器。
作为优选,所述步骤(2)中测试程序使用ipmi协议自动点亮或关闭uidled。
作为优选,所述步骤(2)中测试程序使用ipmi协议读取uidled当前状态信息。
本发明的具备防呆功能的服务器uidled灯功能测试方法具有以下优点:
1、本发明实现了uidled自动点亮,无需操作人员手动点亮,降低了操作人员的劳动强度,自动化程度高,减少了测试时间,提高了测试效率;当大规模测试产品时,可极大减少测试时间,降低测试成本,提高测试精准度;
2、本发明随机点亮或关闭uidled,测试过程中所需输入不固定,操作人员不能靠猜测输入规律的假测,有效避免了假测,增加了防呆机制;
3、本发明通过测试城区读取uidled硬件状态信息和操作人员实际观测的输入结果的双重检验机制,增加了测试准确性;
4、本发明涉及计算机uidled工厂大规模测试领域,利用bmc控制uidled灯开关和查询状态,实现计算机uidled大规模生产测试时操作简单、速度快、节省测试时间以及测试准确,使uidled测试流程简单化快捷化。
故本发明具有设计合理、结构简单、使用方便、一物多用等特点,因而,具有很好的推广使用价值。
附图说明
下面结合附图对本发明进一步说明。
附图1为具备防呆功能的服务器uidled灯功能测试方法的流程框图。
具体实施方式
参照说明书附图和具体实施例对本发明的具备防呆功能的服务器uidled灯功能测试方法作以下详细地说明。
实施例:
如附图1所示,本发明的具备防呆功能的服务器uidled灯功能测试方法,该方法包括如下步骤:
(1)、将uidled测试程序镜像放在pxe启动服务器上,服务器上电开机启动,引导进入测试程序;
(2)、测试程序开始自动执行,随机自动点亮或关闭uidled,测试程序直接读取uidled硬件状态信息;其中,测试程序使用ipmi协议自动点亮或关闭uidled,部分代码示例如下:
ipmicomm*opipmi=ipmicomm::getinstance();
if(null==opipmi)
{
cerr<<”cannotgettheobjectofipmicommandclass”<<endl;
return1;
}
ret=opipmi->initkcs(0x20);
if(0!=ret)
{
cerr<<“initializebmcerror,ret:”<<ret<<endl;
returnret;
}
szcmd[0]=0x00;
szcmd[1]=0x04;
szcmd[2]=0x00;
szcmd[3]=operate;
ret=opipmi->operatecmd(szcmd,4,szrecv,sizeof(szrecv),&recvcount);
returnret;
(3)、操作人员根据实际观测值输入测试结果;代码示例如下:
srand(time(null));
unsignedintopt=rand()/2;
updateprogress(0);
nerr=uidoperate(opt);
result=promptmessage(“led-uid”,“istheuidledon”,prompt-yesno);
actled=checkuidstatus();
测试程序使用ipmi协议读取uidled当前状态信息,部分代码示例如下:
szcmd[0]=0x00;
szcmd[1]=0x01;
ret=opipmi->operatecmd(szcmd,2,szrecv,sizeof(szrecv),&recvcount);
if(0!=ret)
{
//snprintf(szerrcode,codesize-1,“psuinf0/02d”,errcode-psu-initbmc);
cerr<<“operatecmderror,ret:”<<ret<<endl;
return2;
}
if(szrecv[5]==0x40)
{
return0;
}
if(szrecv[5]==0x60
{
return1
};
(4)、将操作人输入的测试结果与通过测试程序直接读取uidled硬件状态信息结果进行对比是否相同:
①、若相同,则uidled测试通过;
②、若不相同,则uidled测试不良。
部分代码示例如下:
result=promptmessage(“led-uid”,“istheuidledoff”,prompt-yesno);
switch(result)
{
casediag-yes:
expled=1;
break;
casediag-no:
expled=0;
break;
default:
expled=2;
break;
}
if(actlced!=expled)
{
reporterror(nerr,-t(“leduid01”),-t(“uidledoutofwork”));
return;
}
if(result!=diag-yes)
{
reporterror(nerr,-t(“leduid01”),-t(“uidledoutofwork”));
return;
}
updateprogress(100)。
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的一种具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。除说明书所述的技术特征外,均为本专业技术人员的已知技术。