本发明涉及计算机技术领域,特别涉及一种对脚本运行过程中的异常处理方法及装置。
背景技术:
在计算机技术领域中,脚本(script)是一种批处理文件的延伸,是一种纯文本保存的程序,一般来说脚本是确定的一系列控制计算机进行运算操作动作的组合,在其中可以实现一定的逻辑分支等。脚本在运行过程中会出现很多异常情况,这时,就需要对异常情况进行处理,使得脚本可以正常运行。
目前,对脚本运行过程中的异常处理都是在每个脚本中分别进行的,也就是在每个脚本中都设置异常处理的命令行,当运行脚本出现异常时,调用所设置的对应异常处理的命令行后执行。但是,这种对脚本运行过程中的异常处理方式存在缺点:异常处理使得脚本的命令行增加,且容易出现漏掉处理某些脚本异常的情况。进一步地说,当需要增加、修改或删除某些异常处理时,需要对每个脚本中对于要增加、修改或删除处理对应的命令行进行修改,这不仅仅增加了不必要的工作量,而且也增加了出现修改错误的概率和验证脚本的时间。
技术实现要素:
有鉴于此,本发明实施例提供一种对脚本运行过程中的异常处理方法,该方法能够对所有脚本运行过程中的异常进行统一处理,对异常处理的更改易于操作及减少脚本的命名行。
本发明实施例还提供一种对脚本运行过程中的异常处理装置,该装置能够对所有脚本运行过程中的异常进行统一处理,对异常处理的更改易于操作及减少脚本的命名行。
本发明实施例是这样实现的:
一种对脚本运行过程中的异常处理方法,包括:
设置脚本函数,其中包括对应处理不同异常类型的操作命令;
当脚本运行过程中捕获到异常时,调用该脚本函数,执行对应该异常类型的操作命令,进行异常处理。
所述异常类型包括:
脚本基础配置失败的异常,异常类型设置为flaga;
脚本执行结束后进行配置恢复时失败的异常,类型设置为flagd;
脚本执行过程中遇到突发问题无法继续运行的异常,异常类型设置为flage;
脚本测试过程中上传设备配置文件失败的异常,类型设置为flagf。
当异常类型为脚本基础配置失败的异常时,所述进行异常处理包括:
调用脚本函数在采用对应的操作命令进行异常处理,当基础配置成功,则上报成功;当脚本基础配置失败,则上报失败,在测试报告中设置失败信息;控制脚本停止运行并下载所有被测试设备的初始化文件;对测试报告和日志log文件进行重命名,使文件名称包含运行异常类型,通知主进程,脚本运行异常。
当异常类型为脚本执行结束后进行配置恢复时失败的异常时,所述进行异常处理包括:
调用脚本函数执行对应的操作命令进行异常处理,如果恢复配置成功,则上报成功,如果恢复配置失败,则上报失败,在测试报告中设置失败信息;控制脚本停止运行并下载所有被测试设备的初始化文件,通知主进程,脚本运行异常。
当异常类型为脚本遇到突发问题无法继续运行的异常时,所述进行异常处理包括:
调用脚本函数分析该类型异常的种类,翻译异常错误的详细原因,发送给脚本;所述脚本函数控制脚本停止运行并下载所有被测试设备的初始化文件;对测试报告和log文件进行重命名,使文件名称包含运行异常类型,通知主进程,脚本运行异常。
当异常类型为上传设备配置文件失败的异常时,所述进行异常处理包括:
脚本执行完成后,调用脚本函数进行检查是否所有配置文件都上传成功,脚本函数采用对应的操作命令进行异常处理,如果检查所有配置文件都上传成功,则上报成功;如果配置文件有上传失败的情况,上报失败报告中设置所有上报失败的配置文件名称。
所述脚本函数中的对应处理不同异常类型的操作命令,针对异常类型被增加、修改或删除。
一种对脚本运行过程中的异常处理装置,包括:脚本函数设置单元及异常处理单元,其中,
脚本函数设置单元,用于设置脚本函数,其中包括对应处理不同异常类型的操作命令;
异常处理单元,用于当脚本运行过程中捕获到异常时,调用脚本函数设置单元中的该脚本函数,执行对应该异常类型的操作命令,进行异常处理。
所述异常类型包括:
脚本基础配置失败的异常,异常类型设置为flaga;
脚本执行结束后进行配置恢复时失败的异常,类型设置为flagd;
脚本执行过程中遇到突发问题无法继续运行的异常,异常类型设置为flage;
脚本测试过程中上传设备配置文件失败的异常,类型设置为flagf。
所述脚本函数中的对应处理不同异常类型的操作命令,针对异常类型被增加、修改或删除。
如上所见,本发明实施例设置脚本函数,其中包括对应处理不同异常类型的命令行,当脚本运行过程中捕获到异常,则调用该脚本函数,执行对应该异常类型的命令行,进行异常处理。这样,由于采用一个脚本函数处理脚本运行过程中出现的所有异常,且该脚本函数可以被所有的脚本调用,可以对所有脚本运行过程中的异常进行统一处理,对异常处理易于操作及减少脚本的命名行。
附图说明
图1为本发明实施例提供的一种对脚本运行过程中的异常处理方法流程图;
图2为本发明实施例提供的脚本运行过程调用脚本函数的过程示意图;
图3为本发明实施例提供的一种对脚本运行过程中的异常处理装置结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
背景技术中对脚本运行过程中的异常处理的缺点主要是因为对脚本运行过程中的异常处理都是在每个脚本中分别进行的,所以在异常处理进行更新时,就需要对每个脚本进行修改,且每个脚本会出现处理同一异常的重复命令行。为了解决这个问题,本发明实施例设置脚本函数,其中包括对应处理不同异常类型的命令行,当脚本运行过程中捕获到异常,则调用该脚本函数,执行对应该异常类型的命令行,进行异常处理。
这样,由于采用一个脚本函数处理脚本运行过程中出现的所有异常,且该脚本函数可以被所有的脚本调用,可以对所有脚本运行过程中的异常进行统一处理,对异常处理易于操作及减少脚本的命名行。
本发明实际上就是设置脚本函数,其中具有脚本异常情况处理操作流程信息,是所有脚本共用一套的异常处理机制,增加脚本的可靠性及提高工作效率。
图1为本发明实施例提供的一种对脚本运行过程中的异常处理方法流程图,其具体步骤为:
步骤101、设置脚本函数,其中包括对应处理不同异常类型的操作命令;
步骤102、当脚本运行过程中捕获到异常时,调用该脚本函数,执行对应该异常类型的操作命令,进行异常处理。
在该方法中,异常主要包括4种,脚本函数对这4种异常处理设置了操作命令。异常类型包括:脚本基础配置失败的异常,异常类型设置为flaga;脚本执行结束后进行配置恢复时失败的异常,类型设置为flagd;脚本执行过程中遇到突发问题无法继续运行的异常,异常类型设置为flage;脚本测试过程中上传设备配置文件失败的异常,类型设置为flagf。
当进行异常处理为脚本基础配置失败的异常处理时,整个过程为:
脚本运行开始,先进行测试基础配置。脚本基础配置完成后调用脚本函数,这是因为脚本基本配置失败会影响本脚本的后续测试结果,所以要对脚本基础配置失败进行异常处理。脚本函数在采用对应的操作命令进行异常处理时,当基础配置成功,则上报成功;当脚本基础配置失败,则上报失败,在测试报告中设置失败信息;控制脚本停止运行并下载所有被测试设备的初始化文件;对测试报告和日志(log)文件进行重命名,使文件名称包含运行异常类型,通知主进程,脚本运行异常。
当进行异常处理为脚本执行结束后进行配置恢复时失败的异常时,整个过程为:
脚本运行结束后,要删除所有设备配置,如果清空配置失败会影响下一个脚本的执行,所以在脚本运行过程中捕获配置恢复时失败异常时就调用脚本函数进行异常处理。在脚本函数执行对应的操作命令进行异常处理时,如果恢复配置成功,则上报成功,如果恢复配置失败,则上报失败,在测试报告中设置失败信息;控制脚本停止运行并下载所有被测试设备的初始化文件,通知主进程,脚本运行异常。
当进行异常处理为脚本执行过程中遇到突发问题无法继续运行的异常时,整个过程为:
脚本运行过程中有可能会出现诸如互联网远程登录服务标准协议(telnet)中断、变量错误、测试仪连接错误或测试配置错误等异常,一旦出现这些问题,脚本无法继续运行,需要上报给主进程并进行相应处理。因此,脚本一旦出现上述突发异常,进行如下处理。
脚本调用脚本函数,脚本函数分析该类型异常的种类,翻译异常错误的详细原因,发送给脚本,便于脚本执行人员进行错误定位;控制脚本停止运行并下载所有被测试设备的初始化文件;对测试报告和log文件进行重命名,使文件名称包含运行异常类型,通知主进程,脚本运行异常。
当进行异常处理为脚本测试过程中上传设备配置文件失败的异常时,则整个过程为:
脚本运行的每一个阶段(case)运行完成后都会上传一份所有被测设备的配置文件和测试仪的配置文件,方便后续定位。脚本执行完成后,调用脚本函数进行检查是否所有配置文件都上传成功,脚本函数采用对应的操作命令进行异常处理,如果检查所有配置文件都上传成功,则上报成功;如果配置文件有上传失败的情况,上报失败报告中设置所有上报失败的配置文件名称。
在该方法中,所述脚本函数中的对应处理不同异常类型的操作命令,针对异常类型被增加、修改或删除。
图2为本发明实施例提供的脚本运行过程调用脚本函数的过程示意图,其具体步骤为:
步骤201、脚本执行开始;
步骤202、脚本进行基础配置,完成后,捕获是否有类型为flaga的异常,如果否,执行步骤203;如果是,执行步骤209;
步骤203、脚本执行case1的命令行过程中,捕获是否有类型为flage的异常,如果否,则执行步骤204;如果是,执行步骤210;
步骤204、脚本执行上传设备配置的过程,捕获是否有类型为flagf的异常,如果否,执行步骤205;如果是,执行步骤211;
步骤205、脚本执行case2的命令行过程中,捕获是否有类型为flage的异常,如果否,则执行步骤206;如果是,执行步骤212;
步骤206、脚本执行上传设备配置的过程,捕获是否有类型为flagf的异常,如果否,执行步骤207;否则,执行步骤213;
步骤207、脚本的case都执行完,进行配置恢复过程,捕获是否有类型为flagd的异常,如果否,执行步骤208;否则,执行步骤214;
步骤208、脚本执行结束;
步骤209、脚本调用脚本函数进行基础配置失败的异常处理;
步骤210、脚本调用脚本函数进行遇到case1的突发问题无法继续运行的异常处理;
步骤211、脚本调用脚本函数进行case1的上传设备配置文件失败的异常处理;
步骤212、脚本调用脚本函数进行遇到case2的突发问题无法继续运行的异常处理;
步骤213、脚本调用脚本函数进行case2的上传设备配置文件失败的异常处理;
步骤214、脚本调用脚本函数进行配置恢复时失败的异常处理。
脚本函数的具体实现如下所述。
脚本函数功能:测试报告中打印的异常输出
输入参数:fileid:测试报告的文件描述符
fd_log:测试log的文件描述符
flagerr:测试结果
flagtype:答应的错误类型
startseconds:脚本开始运行的时间,单位s
printword1:测试结果错误打印的字符串\
(如果flagtype=flagf此变量为上传失败的配置文件名称列表)
printword2:测试结果正确打印的字符串
filename:测试报告的名字(不包含_report_log字段)
lspawn_id:设备spawn_id的列表
lmatchtype:匹配命令行节点用字符串列表
lduttype:设备类型列表
lip:设备telnetip列表
lfilename:设备初始化文件列表
输出参数:无
#返回值:0/1。
脚本函数具体采用的命令为:
#函数功能:脚本常见错误分析、
#输入参数:err:tcl返回的错误信息
#输出参数:printerr
#返回值:无
举一个具体例子进行说明
该例子为当脚本在运行过程中,设备的telnet连接中断的异常处理过程,其具体过程包括:
第一个步骤,脚本捕获异常信息后调用所设置的脚本函数gwpublic_printabnormal,并将异常类型“flage”和异常信息“spawnidexp4notopen”作为入参传输到脚本函数的本体中;
第二个步骤,在脚本函数处理过程中,根据异常类型“flage”找到对应的操作命令,调用其中的函数gwpublic_erranalyer,在此函数中比对异常信息,匹配到匹配项{spawnidexp/d+notopen},然后对异常进行分类和翻译;
第三个步骤,重新命名脚本测试报告和log文件的名称表明脚本未完成并将异常退出信息通知给设备的主进程。
图3为本发明实施例提供的一种对脚本运行过程中的异常处理装置结构示意图,包括:脚本函数设置单元及异常处理单元,其中,
脚本函数设置单元,用于设置脚本函数,其中包括对应处理不同异常类型的操作命令;
异常处理单元,用于当脚本运行过程中捕获到异常时,调用脚本函数设置单元中的该脚本函数,执行对应该异常类型的操作命令,进行异常处理。
在该装置中,所述异常类型包括:
脚本基础配置失败的异常,异常类型设置为flaga;
脚本执行结束后进行配置恢复时失败的异常,类型设置为flagd;
脚本执行过程中遇到突发问题无法继续运行的异常,异常类型设置为flage;
脚本测试过程中上传设备配置文件失败的异常,类型设置为flagf。
在该装置中,所述脚本函数中的对应处理不同异常类型的操作命令,针对异常类型被增加、修改或删除。
本发明实施例提供的脚本函数具有很好的扩展性和可移植性,可以任意添加多种异常处理过程所需的操作命令,在添加异常处理时无需修改脚本,只需要在本脚本函数中阔成异常类型和异常处理的操作命令即可,对于突发异常的处理也可以随意添加。由于本发明实施例提供的脚本函数不依赖于具体设备,所以可以很好的移植到其他平台和其他模块中,
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。