本發(fā)明涉及服務器測試領域,具體地說是一種具備防呆功能的服務器uidled燈功能測試方法。
背景技術:
在當前計算機服務器整機系統(tǒng)生產中,大都要進行fct功能測試。在當前計算機uidled工廠大規(guī)模fct功能測試中,uidled由檢測操作人員手工判定其功能的完整性。需要由操作人員按uidled按鈕,點亮uidled,肉眼觀察led是否被點亮,確認測試結果,操作人員的動手速度直接影響測試所需時間。在以上測試過程中,對操作人員的動作準確性依賴程度高,若操作人員不按uidled按鈕,不去觀察led燈是否被點亮,直接確認燈已被點亮,就可能導致假測,影響對產品質量的管控。故如何能夠解決當前計算機服務器uidled大規(guī)模fct功能測試時與操作員交互過多,過重依賴操作員的動作準確程度,測試時間長、準確率低、缺少防呆手段以及容易產生假測的問題。
技術實現(xiàn)要素:
本發(fā)明的技術任務是提供一種具備防呆功能的服務器uidled燈功能測試方法,來解決當前計算機服務器uidled大規(guī)模fct功能測試時與操作員交互過多,過重依賴操作員的動作準確程度,測試時間長、準確率低、缺少防呆手段以及容易產生假測的問題。
本發(fā)明的技術任務是按以下方式實現(xiàn)的,一種具備防呆功能的服務器uidled燈功能測試方法,該方法包括如下步驟:
(1)、將uidled測試程序鏡像放在服務器上,服務器上電開機啟動,引導進入測試程序;
(2)、測試程序開始自動執(zhí)行,隨機自動點亮或關閉uidled,測試程序直接讀取uidled硬件狀態(tài)信息;
(3)、操作人員根據(jù)實際觀測值輸入測試結果;
(4)、將操作人輸入的測試結果與通過測試程序直接讀取uidled硬件狀態(tài)信息結果進行對比是否相同:
①、若相同,則uidled測試通過;
②、若不相同,則uidled測試不良。
作為優(yōu)選,所述步驟(1)中的服務器采用pxe啟動服務器。
作為優(yōu)選,所述步驟(2)中測試程序使用ipmi協(xié)議自動點亮或關閉uidled。
作為優(yōu)選,所述步驟(2)中測試程序使用ipmi協(xié)議讀取uidled當前狀態(tài)信息。
本發(fā)明的具備防呆功能的服務器uidled燈功能測試方法具有以下優(yōu)點:
1、本發(fā)明實現(xiàn)了uidled自動點亮,無需操作人員手動點亮,降低了操作人員的勞動強度,自動化程度高,減少了測試時間,提高了測試效率;當大規(guī)模測試產品時,可極大減少測試時間,降低測試成本,提高測試精準度;
2、本發(fā)明隨機點亮或關閉uidled,測試過程中所需輸入不固定,操作人員不能靠猜測輸入規(guī)律的假測,有效避免了假測,增加了防呆機制;
3、本發(fā)明通過測試城區(qū)讀取uidled硬件狀態(tài)信息和操作人員實際觀測的輸入結果的雙重檢驗機制,增加了測試準確性;
4、本發(fā)明涉及計算機uidled工廠大規(guī)模測試領域,利用bmc控制uidled燈開關和查詢狀態(tài),實現(xiàn)計算機uidled大規(guī)模生產測試時操作簡單、速度快、節(jié)省測試時間以及測試準確,使uidled測試流程簡單化快捷化。
故本發(fā)明具有設計合理、結構簡單、使用方便、一物多用等特點,因而,具有很好的推廣使用價值。
附圖說明
下面結合附圖對本發(fā)明進一步說明。
附圖1為具備防呆功能的服務器uidled燈功能測試方法的流程框圖。
具體實施方式
參照說明書附圖和具體實施例對本發(fā)明的具備防呆功能的服務器uidled燈功能測試方法作以下詳細地說明。
實施例:
如附圖1所示,本發(fā)明的具備防呆功能的服務器uidled燈功能測試方法,該方法包括如下步驟:
(1)、將uidled測試程序鏡像放在pxe啟動服務器上,服務器上電開機啟動,引導進入測試程序;
(2)、測試程序開始自動執(zhí)行,隨機自動點亮或關閉uidled,測試程序直接讀取uidled硬件狀態(tài)信息;其中,測試程序使用ipmi協(xié)議自動點亮或關閉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)、操作人員根據(jù)實際觀測值輸入測試結果;代碼示例如下:
srand(time(null));
unsignedintopt=rand()/2;
updateprogress(0);
nerr=uidoperate(opt);
result=promptmessage(“l(fā)ed-uid”,“istheuidledon”,prompt-yesno);
actled=checkuidstatus();
測試程序使用ipmi協(xié)議讀取uidled當前狀態(tài)信息,部分代碼示例如下:
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硬件狀態(tài)信息結果進行對比是否相同:
①、若相同,則uidled測試通過;
②、若不相同,則uidled測試不良。
部分代碼示例如下:
result=promptmessage(“l(fā)ed-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(“l(fā)eduid01”),-t(“uidledoutofwork”));
return;
}
if(result!=diag-yes)
{
reporterror(nerr,-t(“l(fā)eduid01”),-t(“uidledoutofwork”));
return;
}
updateprogress(100)。
通過上面具體實施方式,所述技術領域的技術人員可容易的實現(xiàn)本發(fā)明。但是應當理解,本發(fā)明并不限于上述的一種具體實施方式。在公開的實施方式的基礎上,所述技術領域的技術人員可任意組合不同的技術特征,從而實現(xiàn)不同的技術方案。除說明書所述的技術特征外,均為本專業(yè)技術人員的已知技術。