一种异常断电模拟测试装置
技术领域
本发明涉及一种模拟测试装置,尤其是涉及一种异常断电模拟测试装置。
背景技术
随着工业信息技术的推广普及,越来越多的数据通过互联网、局域网、传感器物联网、移动网络等形式快速汇集,基于大数据分析处理、云计算网格技术的信息设备和业务系统逐渐获得了各行业的认可。其中,作为基础设施的各类数据存储、备份业务系统,在这场变革中的重要地位日趋凸显;如何保证数据存储与备份的安全性、可靠性,也已经被摆上了最醒目的位置,成为各数据存储与备份解决方案提供商、硬件设备平台供应商、软件产品供应商作为产品主要卖点和竞相提高技术实力的主要参考参数之一。
无论是解决方案提供商,还是软硬件产品供应商,安全、可靠、稳定的产品都是赢取市场和客户的最犀利法宝;特别是目前电子政务已经普及和深入人心、电子商务形式已经成为中国民众日常生活的基本部分、电子信息服务己经在各行各业成为趋势和主流方式的大背景下,不安全、不可靠、不稳定的数据业务系统肯定是被市场淘汰,并很可能引来法律纠纷的,最后在商海中被吞没。安全、可靠、稳定的产品离不开测试,其中很重要的一环,就是异常场景下数据传输、存储与备份的业务健壮性能力测试,包括异常掉电、异常电源闪跳等场景下的模拟测试。这类与电源相关的模拟测试,使用人工操作测试过程,即使最简单的一个测试用例就让一位经验丰富的测试工程师不堪重负,疲于奔命。
对于电源异常掉电等模拟测试,目前的做法有两种:
(1)一个人(测试者A)负责恢复与运行业务的测试流程,另一个人(测试者B)依据A的指示,在服务器边上开关电源。
优点:简单直接,可以模拟高重现频率的简单故障场景。
缺点:a.占用人工量多,一人无法独立完成;b.模拟次数有限,接近客户业务场景的成百上千次异常掉电等低概率异常事件的模拟根本做不到;c.测试过程枯燥,不能实现连续性的异常测试、电源闪跳等模拟方式,专门安排至少4人2班倒进行测试,也不现实;d.模拟结果的可信度不高,人为的配合误差大,低样本数量下更是极速放大了结果样本的失真程度。
(2)测试者A事先选择支持IPMI v2.0协议的服务器,并配置好远程控制工具参数,操作远程控制端上电、下电。
优点:具有一定的便捷性,部分可自动化,操作简单易行。
缺点:a.支持IPMI v2.0的服务器很多,但绝大多数经过了协议封装,无法使用标准的bmc工具直接命令行调用操作,可选的设备有限,不具有通用性;b.模拟效果与实际效果不完全一致,延迟、机器性能不理想时的假死状态,都会导致错过模拟的最佳时期。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种异常断电模拟测试装置,用于模拟测试异常掉电、上电、电源闪跳等业务场景,并提供日志记录追溯;并且通过脚本同步业务系统的事件触发指令,转化为信令来控制单片机去操作电源的供电状态,解决模拟的真实有效性;
通过应用本发明方案,不仅避免了目前掉电模拟测试的全部缺点与困境,并且可以自动智能的与其他被测系统进行联动测试,可以极大的推动产品品质的提升。
本发明的目的可以通过以下技术方案来实现:
一种异常断电模拟测试装置,其特征在于,包括控制处理模块、电源控制模块和被测用电设备开关控制模块,
所述控制处理模块用于运行预设的测试脚本并将脚本中的电源控制命令和被测用电设备开关命令通过无线通讯方式分别发给电源控制模块和被测用电设备开关控制模块;
所述电源控制模块用于接收和执行电源控制命令;
所述被测用电设备开关控制模块用于接收和执行被测用电设备开关命令。
所述电源控制命令包括上电、下电和电源闪跳(电源闪跳通过先下电后上电来模拟,下电和上电之间的间隔时间为300-500ms)。
所述无线通讯方式可以为蓝牙通讯。
所述控制处理模块由主控服务器和板载蓝牙芯片的单片机通过有线连接构成,所述主控服务器上运行有守护进程,该守护进程执行并解析所述预设的测试脚本并将脚本中的电源控制命令和被测用电设备开关命令发送给单片机,单片机通过蓝牙芯片向电源控制模块和被测用电设备开关控制模块分别发送电源控制命令和被测用电设备开关命令;
所述电源控制模块为继电器,该继电器上带有第一蓝牙收发器,该第一蓝牙收发器接收所述电源控制命令来控制电源电路;
所述被测用电设备开关控制模块为异步马达撞杆装置,该异步马达撞杆装置上带有第二蓝牙收发器,该第二蓝牙收发器用于接收被测用电设备开关命令并控制异步马达推动撞杆开始移动设定的距离来模拟人用手指压迫用电设备电源按键的动作。
当所述继电器执行完上电命令后,有以下两种方式来通知异步马达撞杆装置:
通过第一蓝牙收发器向第二蓝牙收发器直接发送被测用电设备开启命令;
或者通过第一蓝牙收发器向单片机蓝牙芯片发送通电完成信息,单片机蓝牙芯片接到所述通电完成信息后向第二蓝牙收发器发送被测用电设备开启命令。
异步马达撞杆装置的具体过程如下:
1.异步马达撞杆装置上的蓝牙收发器收到操作命令后,命令异步马达推动撞杆开始位移额定的距离,并保持额定的时间(2秒);
2.蓝牙收发器的时钟电路计时结束后,命令异步马达撞杆装置复位,撞杆回缩到默认初始位置;
所述第一蓝牙收发器或者第二蓝牙收发器在异步马达撞杆装置完成被测用电设备开启命令后向单片机发送开机完成消息并由单片机通知给主控服务器。
所述主控服务器还包括:
测试单元,用于在收到所述开机完成消息后对被测用电设备的状态检测;
日志单元,用于将测试进程检测的结果记录到日志中。
所述主控服务器和所述单片机通过有线连接具体为通过Micro-USB数据线连接;通过所述数据线为单片机主控电路板卡提供+5V电压输入,同时提供双向的通讯传输:指令流从主控服务器的USB口输入到单片机驱动执行,数据流从单片机通过USB口返回到主控服务器的日志进程保存执行结果与异常状况
所述蓝牙收发器均为51单片机进行封装过的功能单元,通过蓝牙4.0协议与所述单片机的蓝牙芯片通信。
所述预设脚本可以为shell脚本。
与现有技术相比,本发明可以达到如下效果:。
1)可以完全无需人工参与,完全接受输入脚本中信令的控制,来操作电源电路,去模拟电源上电、下电、电源闪跳等各类异常掉电、掉电恢复等场景的测试;
2)测试周期与模拟次数不受限制,可以长时间、高频率多次模拟;
3)控制精确,可以精确控制上电时机、时间、延时等参数,并与业务系统的事件触发同步操作,测试模拟的针对性更强;
4)真实场景与模拟动作一致,结果可信,数据真实,报告准确可溯;
5)模拟测试方案具有极强的通用性,有无IPMI等协议支持、是否经过封装定制已经无关紧要;
6)投入成本极小,产生的经济效益却是巨大的,可以真实模拟评估出产品各类异常掉电测试的场景,推断出未做异常掉电测试的产品将在客户现场发生的故障,并自动记录细节信息提供到研发进行分析,避免产品上市后给客户和本公司造成经济、商誉的巨大损失。
附图说明
图1为本发明实施例的守护进程程序流程图;
图2为本发明实施例的各个模块结构图;
图3为本发明实施例的单片机程序流程图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。
本发明与存储、备份、网络数据传输业务系统联动,接受其以shell脚本形式的控制输入,以模拟测试异常掉电、上电、电源闪跳场景下的场景,或进行故障重现模拟实验。
本发明通过USB数据线,从主控服务器HM的USB端口获取电源输入驱动整套系统运行,从HM的USB端口读取脚本输入的控制信令传输给单片机执行,单片机依据信令去控制内嵌在电源电路中的继电器执行开启与闭合动作,单片机上蓝牙芯片BT接收到执行结果信息后,发送给USB端口的守候进程DP通知相关进程检测和记录执行结果。
如图2所示,本发明由主控服务器HM上的DP进程、Micro-USB母座及其连接数据线(取电、传输数据和指令)、单片机控制模块、继电器控制模块、蓝牙收发器控制模块、异步马达撞杆装置共计6个部分组成。
其中各模块的功能如下:
(1)异步马达撞杆装置:使用异步马达推动撞杆挤压服务器上的电源按钮,模拟人工按电源开机的动作;
(2)单片机主控电路板卡:程序指令处理单元,使用单片机处理指令流;
(3)220V继电器受控电路:串联在服务器电源输入端的电源电路控制器,使用耦合电路控制串联通路的切断、闭合;
(4)受控被测客户机CM:被模拟测试的客户机对象,给异步马达供电,并接受(3)对其电源输入的控制;
(5)主控服务器HM:给单片机主控电路板卡发送指令流以控制(1)和(3)动作的主机;发送指令流的动作由HM上运行的守护进程DP执行;数据流为单片机返回的操作日志,由HM上的进程LP接收和记录;HM上的另外一个进程TP,负责测试客户机CM的运行状态,并反馈给DP。
主控服务器HM上的DP进程,是接受Shell指令、解析shell脚本指令为控制信令、向连接单片机的USB口发送控制信令和接收执行结果等活动的执行主体。其为一个守护进程,在后台工作,是一个多线程后台服务进程。其流程图如图1所示。
通过使用随手可见的Micro-USB手机数据线,为单片机主控电路板卡提供+5V电压输入;通过手机数据线,同时提供双向的通讯传输:指令流从主控服务器HM的USB口输入到单片机驱动执行,数据流从单片机通过USB口返回到主控服务器HM的日志进程LP保存执行结果与异常状况。
单片机控制模块,是本发明的中央处理单元类似的功能模块。通讯流向上,一方面,接收从主控服务器HM输入的指令流,并执行信令;另一方面,将执行的结果从单片机传输给主控服务器HM的日志模块进行记录。外部设备管上,通过板载蓝牙芯片BT,与继电器蓝牙收发器B1联机通讯,使其依据单片机信令控制继电器RSS的开启、闭合以及以上两个状态间的时间间隔(比如,300-500ms的间隔来模拟电源闪跳);通过板载蓝牙芯片BT,与异步马达撞杆装置上蓝牙收发器B2联机通讯,使其依据单片机的信令,和客户机CM的实际状态,控制异步马达的撞杆装置模拟开机动作。其中单片机的部分,其内部烧入的程序如图3所示。
继电器控制模块,是接受低电压(3v-5v)控制高电压(220V左右)的电源电路控制模块。通过接受单片机输入的信令,继电器RSS操作耦合电路实现220V电源电路的开启和闭合。
(1)继电器RSS闭合,客户机CM电源电路连通上电。
①闭合前,原来的客户机CM电源电路应该是断开的,无电源输入,继电器蓝牙模块B1接收到上电信令,并通知继电器耦合电路执行闭合操作;②闭合后瞬间,有电源输入,客户机CM通电但未开机;③闭合数秒后,继电器上的检测电路发现到电压变化,通知蓝牙收发器B1向异步马达撞杆装置上的蓝牙模块B2发送撞杆操作指令挤压客户机CM电源按钮;④撞杆移位执行挤压电源按钮操作,继电器上蓝牙模块B2等待异步马达复位信号返回;⑤继电器上的蓝牙模块B2接收到了异步马达发回的复位信号后,向单片机发送开机完成消息;⑥单片机将此消息复制并传输给主控服务器HM的DP进程;⑦DP进程新建测试进程TP验证客户机是否真的可连通,并将结果传给日志进程LP记录;⑧LP进程记录操作最终结果,本次电源电路操作结束,本条Shell脚本指令完成。
(2)继电器开启断开
①断开前,客户机CM电源电路是通电的,蓝牙模块B1接收到开机信令;②断开时,单片机发送一个低电平信号给继电器RSS的耦合电路,吸合控制消失,耦合电路断开,客户机CM电源电路随之断开,客户机CM处于异常掉电状态,服务器异常关闭,异常掉电场景模拟完成。
蓝牙收发器模块,包括继电器上的B1模块和异步马达撞杆装置上的B2模块,都是使用51单片机进行封装过的功能模块,通过蓝牙4.0协议与单片机主控板卡通信。通信过程如上,不再赘述。
异步马达撞杆装置,是帮助客户机CM开机的装置。因为每一个厂商服务器上PW_SW、PW_RESET等电源控制信号的引脚定义稍不相同,而且已经被封装到前面板中了;如果要使用信号引脚线,需要破拆,--这个是不可取的。异步马达撞杆装置,就是模拟人用手指压迫电源按键的动作,过程如下:
(1)异步马达撞杆装置上的蓝牙模块的收发器收到操作命令后,命令异步马达推动撞杆开始位移额定的距离,并保持额定的时间(2秒);
(2)蓝牙模块的时钟电路计时结束后,命令异步马达撞杆装置复位,撞杆回缩到默认初始位置;
(3)蓝牙模块的收发器发送复位信息给单片机主控板卡后结束指令执行流程。
具体实施例
1.以Shell脚本控制模拟异常掉电。
1.1编写shell脚本,在合适的行上添加异常掉电指令”pwcdp off”;
1.2将继电器一端接入220V电源插座,一端插上用电设备电源线,开启继电器开关,继电器默认闭合通电,蓝牙收发器等待被测客户机开机成功后再进入下一步动作;
1.3将单片机接入主控服务器;
1.4在主控服务器上启动守护进程:pwcdp,等待初始化结束,提示发现了单片机控制端的信息;
1.5运行脚本,观察pwcdp的前台进程的输出,留意pwcdp中关于pwcdp off的执行情况;
1.6执行到pwcdp off时,主控服务器控制终端提示正在执行,数秒后被测客户机电源输入被切断,观察到被测客户机掉电关机;
1.7主控服务器HM控制终端提示掉电完成,并读入下一条指令等待执行。
2.以shell脚本模拟给服务器上电
2.1编写shell脚本,在脚本的合适行上添加上电指令”pwcdp on”;
2.2同1.2~1.4的操作
2.3将异步马达撞杆装置调整到到合适位置并固定;
2.4运行脚本,观察pwcdp的前台进程的输出,留意pwcdp中关于pwcdp on的执行情况;
2.5执行到pwcdp on时,主控服务器控制终端提示正在执行;数秒后,继电器耦合电路闭合,被测客户机的电源电路通电,电源指示提示通电;
2.5异步马达上数秒后启动撞杆,被测客户机电源按钮被压下,2秒左右后撞杆缩回复位,被测客户机上电开机;
2.6主控服务器HM的pwcdp前台进程提示执行上电成功,并测试网络连接被测客户机;
2.7如果网络连接被测客户机失败,会尝试5次,如果第五次仍失败,记录上电但开机失败信息到日志,并在终端显示出来;如果有一次连接成功,完成连接客户端的尝试,记录上电和开机成功信息到日志,并在终端显示出来;
2.8主控服务器HM上的守护进程读取shell脚本的下一条指令准备执行。
3以shell脚本模拟电源闪跳测试
3.1编写shell脚本,在脚本的合适行上添加上电指令”pwcdp flash 3”表示进行三次电源闪跳模拟测试,每次闪跳之间的时间间隔最小300ms是固定值不能修改,以免因电涌现象损坏被测服务器;
3.2同2.2~2.3的操作;
3.3运行脚本,观察pwcdp的前台进程的输出,留意pwcdp中关于pwcdp flash3的执行情况;
3.4执行到pwcdp flash 3时,主控服务器控制终端提示正在执行;数秒后,观察到被测客户机首先完成了一个异常掉电动作后马上又再次通电、被撞杆装置按压电源按键后上电,撞杆装置复位;
3.5 pwcdp前台线程信息提示第一轮异常掉电开始、完成、上电完成、测试进程输出的测试网络状态(一般是失败);随后如此类似地自动连续重复3.4的操作两次,提示信息显示第二轮、第三轮信息;
3.6 pwcdp提示模拟3次闪跳完成;
3.7主控服务器HM上的DP进程读取shell脚本的下一条指令准备执行。