发明内容
针对上述现有技术的不足,本发明旨在提供一种特定操作下出现概率性问题的复现方法及系统,以解决目前对于互联网设备低概率性的问题复现困难的问题,实现快速简便的对低概率性问题的复现,便于对低概率性问题的分析和解决。
为了解决上述问题,本发明采用了如下的技术方案:
一方面,本发明提供一种特定操作下出现概率性问题的复现方法,包括:
S10、启动测试设备,执行测试脚本中的登录账号和密码,进入所述测试设备;
S20、通过客户端发送测试数据包测试所述测试设备的管理ip,判断所述测试设备是否正常启动,若是,则进行S30,若否,则结束测试;
S30、发送查看eth、wlan和usb接口的回显值的指令;
S40、使用测试脚本在串行口输入指令,等待所述eth、wlan和usb接口的回显值的返回,若所述eth、wlan、usb接口中任意一个接口无回显值的返回,则结束测试,记录无回显值返回对应的接口及使用测试脚本在串行口输入指令的次数;若所述eth、wlan和usb接口都有回显值的返回,则关闭所述测试设备,返回所述S10。
作为一种可实施方式,所述S20中所述通过客户端发送测试数据包测试所述测试设备的管理ip,判断所述测试设备是否正常启动,包括通过客户端发送测试数据包测试所述测试设备的管理ip,判断br0接口是否正常。
作为一种可实施方式,所述S40包括:
使用测试脚本在串行口输入指令,等待所述eth、wlan和usb接口的回显值的返回,若所述eth、wlan、usb接口中存在一个或两个接口无回显值的返回,则记录无回显值返回对应的接口及使用测试脚本在串行口输入指令的次数,并关闭所述测试设备,返回所述S10;若所述eth、wlan和usb接口都有回显值的返回,则关闭所述测试设备,返回所述S10;若所述eth、wlan和usb接口都无回显值的返回,则记录无回显值返回对应的接口及使用测试脚本在串行口输入指令的次数,结束测试。
作为一种可实施方式,所述S10至S40的一个循环测试时间少于等于200s。
作为一种可实施方式,所述测试脚本采用python语言、c语言或Xshell语言实现。
另一方面,本发明提供一种特定操作下出现概率性问题的复现系统,包括:登录模块、第一循环测试模块、查看指令发送模块和第二循环测试模块;
所述登录模块,用于启动测试设备,执行测试脚本中的登录账号和密码,进入所述测试设备;
所述第一循环测试模块,用于通过客户端发送测试数据包测试所述测试设备的管理ip,判断所述测试设备是否正常启动,若是,则转入查看指令发送模块,若否,则结束测试;
所述查看指令发送模块,用于发送查看eth、wlan和usb接口的回显值的指令;
所述第二循环测试模块,用于使用测试脚本在串行口输入指令,等待所述eth、wlan和usb接口的回显值的返回,若所述eth、wlan、usb接口中任意一个接口无回显值的返回,则结束测试,记录无回显值返回对应的接口及使用测试脚本在串行口输入指令的次数;若所述eth、wlan和usb接口都有回显值的返回,则关闭所述测试设备,返回所述登录模块。
作为一种可实施方式,所述第一循环测试模块中所述通过客户端发送测试数据包测试所述测试设备的管理ip,判断所述测试设备是否正常启动,包括通过客户端发送测试数据包测试所述测试设备的管理ip,判断br0接口是否正常。
作为一种可实施方式,所述第二循环测试模块,用于使用测试脚本在串行口输入指令,等待所述eth、wlan和usb接口的回显值的返回,若所述eth、wlan、usb接口中存在一个或两个接口无回显值的返回,则记录无回显值返回对应的接口及使用测试脚本在串行口输入指令的次数,并关闭所述测试设备,返回所述登录模块;若所述eth、wlan和usb接口都有回显值的返回,则关闭所述测试设备,返回所述登录模块;若所述eth、wlan和usb接口都无回显值的返回,则记录无回显值返回对应的接口及使用测试脚本在串行口输入指令的次数,结束测试。
作为一种可实施方式,所述登录模块至所述第二循环测试模块的一次循环时间少于等于200s。
作为一种可实施方式,所述测试脚本采用python语言、c语言或Xshell语言实现。
本发明的有益效果在于:本发明提供的特定操作下出现概率性问题的复现方法及系统,通过判断br0是否正常来判定测试设备是否启动正常,在设备启动正常的情况下,再判定eth、wlan、usb接口是否有返回值来判断eth、wlan、usb接口是否出现问题,本发明通过设计测试脚本,自动化的对低概率问题进行循环测试,复现低概率问题,轻松解决目前对于对低概率问题复现人工操作费时费力的问题,从而提升效率和质量。
具体实施方式
下面结合具体实施例对本发明作进一步的详细说明。
需要说明的是,这些实施例仅用于说明本发明,而不是对本发明的限制,在本发明的构思前提下本方法的简单改进,都属于本发明要求保护的范围。
参见图1,为一种特定操作下出现概率性问题的复现方法,包括:
S10、启动测试设备,执行测试脚本中的登录账号和密码,进入所述测试设备;
S20、通过客户端发送测试数据包测试所述测试设备的管理ip,判断所述测试设备是否正常启动,若是,则进行S30,若否,则结束测试,检查分析检测设备不能正常启动的原因;
S30、发送查看eth、wlan和usb接口的回显值的指令;
S40、使用测试脚本在串行口输入指令,等待所述eth、wlan和usb接口的回显值的返回,若所述eth、wlan、usb接口中任意一个接口无回显值的返回,则结束测试,即当出现一个接口出现问题,则停止检测,分析该接口出现的问题,记录无回显值返回对应的接口及使用测试脚本在串行口输入指令的次数,通过该次数可以评估出现该问题的频率情况;若所述eth、wlan和usb接口都有回显值的返回,则说明该测试循环中各接口均无问题出现,则关闭所述测试设备,返回所述S10,进行下一轮循环测试。
作为一种可实施方式,所述S20中所述通过客户端发送测试数据包测试所述测试设备的管理ip,判断所述测试设备是否正常启动,包括通过客户端发送测试数据包测试所述测试设备的管理ip,判断br0接口是否正常,可以通过判断br0接口是否正常来判定测试设备是否正常启动。
作为一种可实施方式,参见图2,所述S40还可以为:
使用测试脚本在串行口输入指令,等待所述eth、wlan和usb接口的回显值的返回,若所述eth、wlan、usb接口中存在一个或两个接口无回显值的返回,则记录无回显值返回对应的接口及使用测试脚本在串行口输入指令的次数,分析无回显值返回对应的接口的问题,并关闭所述测试设备,返回所述S10,对余下的接口进行循环测试;若所述eth、wlan和usb接口都无回显值的返回,则记录无回显值返回对应的接口及使用测试脚本在串行口输入指令的次数,结束测试;若所述eth、wlan和usb接口都有回显值的返回,说明各接口都无问题,则关闭所述测试设备,返回所述S10,进行下一轮的循环测试。
作为一种可实施方式,所述S10至S40的一个循环测试时间少于等于200s,其中包含测试设备的初始化时间,一般在90s左右。
作为一种可实施方式,所述测试脚本采用python语言、c语言或Xshell语言实现;具体的,所述测试脚本采用Xshell语言实现,如下:
function Main()
{
while(1)
{
xsh.Screen.Send(String.fromCharCode(13));
xsh.Screen.Send(String.fromCharCode(13));
xsh.Session.Sleep(2000);
xsh.Screen.Send("admin");
xsh.Screen.Send(String.fromCharCode(13));
xsh.Session.Sleep(2000);
xsh.Screen.Send("admin");
xsh.Screen.Send(String.fromCharCode(13));
xsh.Session.Sleep(2000);
xsh.Screen.Send("cat /pro" + chr(9) + "me" + chr(9) + chr(13))
os.system('ipconfig \n')
os.system('ping 192.168.1.1 \n')
xsh.Screen.Send("ifconfig" + chr(13))
xsh.Screen.Send("ifconfig eth &" )
xsh.Screen.WaitForString(" ")
xsh.Screen.Send("ifconfig wlan0 &" )
xsh.Screen.WaitForString(" ")
xsh.Screen.Send("ifconfig usb0 &" )
xsh.Screen.WaitForString(" ")
if ifconfig ; then
echo notify user OK >&2
else
echo notify user FAIL >&2
return -1
Fi
xsh.Screen.Send(String.fromCharCode(13));
xsh.Session.Sleep(1000);
xsh.Screen.Send(String.fromCharCode(13));
xsh.Screen.Send("prolinecmd restore default");
xsh.Screen.Send(String.fromCharCode(13));
xsh.Session.Sleep(200000);
}
}。
参见图3,为一种特定操作下出现概率性问题的复现系统,包括:登录模块10、第一循环测试模块20、查看指令发送模块30、第二循环测试模块40;
所述登录模块10,用于启动测试设备,执行测试脚本中的登录账号和密码,进入所述测试设备;
所述第一循环测试模块20,用于用于通过客户端发送测试数据包测试所述测试设备的管理ip,判断所述测试设备是否正常启动,若是,则转入查看指令发送模块30,若否,则结束测试;
所述查看指令发送模块30,用于发送查看eth、wlan和usb接口的回显值的指令;
所述第二循环测试模块40,用于使用测试脚本在串行口输入指令,等待所述eth、wlan和usb接口的回显值的返回,若所述eth、wlan、usb接口中任意一个接口无回显值的返回,则结束测试,记录无回显值返回对应的接口及使用测试脚本在串行口输入指令的次数;若所述eth、wlan和usb接口都有回显值的返回,则关闭所述测试设备,返回所述登录模块10。
作为一种可实施方式,所述第一循环测试模块20中所述通过客户端发送测试数据包测试所述测试设备的管理ip,判断所述测试设备是否正常启动,包括通过客户端发送测试数据包测试所述测试设备的管理ip,判断br0接口是否正常。
作为一种可实施方式,所述第二循环测试模块40,用于使用测试脚本在串行口输入指令,等待所述eth、wlan和usb接口的回显值的返回,若所述eth、wlan、usb接口中存在一个或两个接口无回显值的返回,则记录无回显值返回对应的接口及使用测试脚本在串行口输入指令的次数,并关闭所述测试设备,返回所述登录模块10;若所述eth、wlan和usb接口都无回显值的返回,则记录无回显值返回对应的接口及使用测试脚本在串行口输入指令的次数,结束测试;若所述eth、wlan和usb接口都有回显值的返回,则关闭所述测试设备,返回所述登录模块10。
作为一种可实施方式,所述登录模块10至所述第二循环测试模块40的一次循环时间少于等于200s。
对于测试脚本的具体内容设置和编写语言的选择,可以由设计人员根据实用场景和用户需求自行设置,如可以使用python语言、c语言或Xshell语言实现的脚本。只要可以使服务器在运行测试脚本的过程中,实现本实施例所提供的循环复现测试方法即可;
作为一种可实施方式,所述测试脚本采用Xshell语言实现,如下:
function Main()
{
while(1)
{
xsh.Screen.Send(String.fromCharCode(13));
xsh.Screen.Send(String.fromCharCode(13));
xsh.Session.Sleep(2000);
xsh.Screen.Send("admin");
xsh.Screen.Send(String.fromCharCode(13));
xsh.Session.Sleep(2000);
xsh.Screen.Send("admin");
xsh.Screen.Send(String.fromCharCode(13));
xsh.Session.Sleep(2000);
xsh.Screen.Send("cat /pro" + chr(9) + "me" + chr(9) + chr(13))
os.system('ipconfig \n')
os.system('ping 192.168.1.1 \n')
xsh.Screen.Send("ifconfig" + chr(13))
xsh.Screen.Send("ifconfig eth &" )
xsh.Screen.WaitForString(" ")
xsh.Screen.Send("ifconfig wlan0 &" )
xsh.Screen.WaitForString(" ")
xsh.Screen.Send("ifconfig usb0 &" )
xsh.Screen.WaitForString(" ")
if ifconfig ; then
echo notify user OK >&2
else
echo notify user FAIL >&2
return -1
Fi
xsh.Screen.Send(String.fromCharCode(13));
xsh.Session.Sleep(1000);
xsh.Screen.Send(String.fromCharCode(13));
xsh.Screen.Send("prolinecmd restore default");
xsh.Screen.Send(String.fromCharCode(13));
xsh.Session.Sleep(200000);
}
}。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管通过参照本发明的优选实施例已经对本发明进行了描述,但本领域的普通技术人员应当理解,可以在形式上和细节上对其作出各种各样的改变,而不偏离所附权利要求书所限定的本发明的精神和范围。