一种BMC测试ME状态异常的方法与流程

文档序号:11230314阅读:3352来源:国知局

本发明涉及测试资源优化技术领域,具体涉及一种bmc测试me状态异常的方法。



背景技术:

me作为bios的核心模块,bmc与硬件间的通信很多通过me获取,故监控管理中需要对me的状态实时进行监控,但是出于实际的技术考量,监控管理界面对数据的刷新以分钟计,所以对于各模块短暂的异常很难在界面中实时的反应出来。



技术实现要素:

本发明要解决的技术问题是:本发明针对以上问题,提供一种bmc测试me状态异常的方法,可解决bmc对于me_fw_status正常及异常状态的检测,增加测试覆盖率。

本发明所采用的技术方案为:

一种bmc测试me状态异常的方法,所述方法通过在系统下刷新me,发生短暂的bmc—me连接中断,短暂触发me_fw_status异常,通过ipmi对bmc中me_fw_statussensor的不间断读取,并通过对返回结果的判断sensor的状态,达到监控该sensor测试的效果。

所述方法通过实时侦测me状态的脚本实现,测试过程中,操作人员根据脚本运行的实际情况,同步刷新web界面,查看对应的sensor状态,对比ipmi读取结果,达到测试me状态的效果。

所述脚本通过sdr实时读取,截取me_fw_status的状态信息,通过对me_fw_status返回信息的读取判断,从而得出me_fw_status的实际状态。

所述方法通过在预留的短接跳冒,触发me异常。

所述方法实现步骤如下:

1)通过host端远程登陆服务器,运行脚本,得出me_fw_status的状态显示,脚本根据提前预设的测试次数进行测试;

2)在待测端系统下运行me刷新的命令,更新me;

3)当me完成更新之后,me与bmc断开连接,me_fw_status状态异常,me重启之后恢复正常;

4)根据脚本运行的实际情况,同步刷新web界面,查看对应的sensor状态,对比ipmi读取结果;

5)每次读取me_fw_status状态的判断在屏幕上输出判断结果,若发生错误,根据cycletest的数量及时定位出log的位置,分析log出错的原因,快速定位;若发生me—bmc连接中断,屏幕上同步输出判断结果,提示测试人员连接已经中断。

本发明的有益效果为:

本发明方法可以持续验证me_fw_status的状态,可以自主设定运行的次数和读取的机台,可以判断me_fw_status异常情况,可以快速定位问题log,分析问题原因。

具体实施方式

根据具体实施方式对本发明进一步说明:

实施例1

一种bmc测试me状态异常的方法,基于“系统下刷新me,可短暂的触发me异常”的情况,所述方法通过在系统下刷新me,发生短暂的bmc—me连接中断,短暂触发me_fw_status异常,通过ipmi对bmc中me_fw_statussensor的不间断读取,并通过对返回结果的判断sensor的状态,达到监控该sensor测试的效果。

me在系统下的更新时,会发生短暂的bmc—me连接中断,通过对bmc中me_fw_statussensor的不间断读取,从而判断sensor的状态,达到监控该sensor测试的效果。

实施例2

在实施例1的基础上,本实施例所述方法通过实时侦测me状态的脚本实现,测试过程中,操作人员根据脚本运行的实际情况,同步刷新web界面,查看对应的sensor状态,对比ipmi读取结果,达到测试me状态的效果。

通过在系统下刷新me,ipmi不间断的读取me_fw_status信息,通过返回结果的判断直接得出结果判断

me正常返回值:me_fw_status|c0h|ok|34.0|0reserved

me异常返回值:me_fw_status|c0h|unc|34.0|0reserved

me_fw_status|c0h|ns|34.0|noreadin

实施例3

在实施例1或2的基础上,本实施例所述脚本通过sdr实时读取,截取me_fw_status的状态信息,通过对me_fw_status返回信息的读取判断,从而得出me_fw_status的实际状态。

ipmitoolpath=(r'd:\study\python\ipmitool\ipmitool.exe')

//ipmi路径

bmcip='192.168.0.102

///ip输出

defsendcmd(cmd):

p=subprocess.popen(cmd,shell=true,stdout=subprocess.pipe)

returnp.stdout.read()

//命令发送函数定义

defme_status_count()

sdr_read=sendcmd('{0}-ilanplus-h{1}-uadmin-padminsdrelist'.format(ipmitoolpath,bmcip)).decode('utf-8')

//sdr读取

f=open(r'd:\test\sdrelist.txt','a')

f.write(sdr_read)

f.close()

读取内容存储

sdr_count=len(open(r'd:\test\sdrelist.txt').readlines())

//文件行数读取

forninrange(0,sdr_count+1):

line=linecache.getline(r'd:\test\sdrelist.txt',n)

//me_status状态行读取

ifline.find("me_fw_status")!=-1:

foriinrange(1,9000000000):

//测试次数设置

print("testcycle{0}".format(i))

sdr_reading=sendcmd('{0}-ilanplus-h{1}-uadmin-padminsdrelist'.format(ipmitoolpath,bmcip)).decode('utf-8')

f=open(r'd:\test\sdrelist.txt','a')

f.write(sdr_reading)

f.close()

me_status_read=linecache.getline(r'd:\test\sdrelist.txt',(sdr_count*(i-1)+n))

print(me_status_read)

if((me_status_read.find("unc"))or(me_status_read.find("ns"))):

//结果判断

print("mestatuschange")

defmain():

file1=r'd:\test\sdrelist.txt'

ifos.path.exists(file1):

os.remove(file1)

存储文件判断及清楚

me_status_count()

实施例4

在实施例3的基础上,本实施例所述方法通过在预留的短接跳冒,触发me异常。

实施例5

在实施例4的基础上,本实施例所述方法实现步骤如下:

1)通过host端远程登陆服务器,运行脚本,得出me_fw_status的状态显示,脚本根据提前预设的测试次数进行测试;

2)在待测端uefi或者windows系统下运行me刷新的命令,更新me;

3)当me完成更新之后,me与bmc断开连接,me_fw_status状态异常,me重启之后恢复正常;

4)根据脚本运行的实际情况,同步刷新web界面,查看对应的sensor状态,对比ipmi读取结果;

5)每次读取me_fw_status状态的判断在屏幕上输出判断结果,若发生错误,根据cycletest的数量及时定位出log的位置,分析log出错的原因,快速定位;若发生me—bmc连接中断,屏幕上同步输出判断结果,提示测试人员连接已经中断。

实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。

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