[0026] 以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
[0027] 请参阅图1,本发明提供一种集成测试仪表的测试方法。所述测试方法主要由安装在测试平台中的测试系统来执行。其中,所述测试平台可以是基于RobotFramework(自动测试框架)、QTP(Quick Test Professional快速测试专业版)的测试平台、或自主研发的层次化的测试框架等。所述测试仪表包括但不限于:基于CDRouter、IXIA、或SmartBits的自动化测试仪表
[0028] 其中,所述测试仪表主要用来对被测设备进行所述测试系统无法进行、或者利用所述测试系统不便于进行的测试。例如,所述测试系统用来测试被测设备的功能,而所集成的测试仪表为用于测试被测设备的协议一致性,当所述测试系统在测试过程中需要所述测试仪表的测试结果或测试过程中的抓包数据时,其采用了如下方法将与自身测试环境完全不同的测试仪表予以集成,以实现自动测试。其中,所述被测设备可以为任何通信类的电子设备,其包括但不限于:路由器、交换机等。
[0029] 在步骤S1中,所述测试系统在测试被测设备的过程中通过调用预配置的与测试仪表中各测试模块的接口启动相应的测试模块。
[0030] 其中,所述接口可以是所述测试系统和测试仪表之间的硬件接口。这里优选的,所述接口为测试人员预先根据测试仪表中的各测试模块和所述测试系统中的各测试模块中的对应关系在所述测试系统中预先配置的。例如,所述测试人员利用配置文件将所述测试系统中的各测试模块的调用指令与所述测试仪表中的对应测试模块的启动代码相匹配。更为优选地,所述接口为配置对应于各所述测试模块的启动代码的关键字。例如,测试人员在所述测试系统中配置了对应于各所述测试模块的启动代码的关键字,则所述测试系统在运行过程中通过调用相应的关键字来启动所述测试仪表中对应测试模块的运行。
[0031] 在此,所述测试系统和测试仪表之间的指令可以通过硬件接口(如USB等串行总线接口)来传输。优选地,所述测试系统采用SSH(安全外壳协议)技术将所调用的测试模块的启动代码传递至所述测试仪表,以便所述测试仪表启动相应的测试模块。例如,所述测试系统与测试仪表网络连接,则所述测试系统采用SSH框架,将加密的启动代码传递至所述测试仪表。
[0032] 由上可见,所述测试系统在执行测试脚本时,根据脚本设置通过调用所配置的关键字,采用SSH技术将所述关键字所对应的启动代码传递给测试仪表,则所述测试仪表启动并运行对应的测试模块,与此同时,所述测试系统暂停当前测试,并等待相应测试模块的测试完成。
[0033] 在步骤S2中,所述测试系统在确定所启动的测试模块运行完成时,获取所述测试模块所记录的包含测试过程和/或测试结果的测试日志。
[0034] 具体地,当所述测试仪表中的测试模块被启动运行时,所述测试仪表将测试过程及测试结果以日志的形式保存在预设的文件夹中,当所述测试仪表执行完相应的测试模块,可以主动将所述测试日志提供给所述测试系统,以便所述测试系统重新恢复并继续执行后续测试。其提供方式也可以采用SSH技术,以确保安全。
[0035] 事实上,大多数测试仪表并不具备主动输出测试日志的功能。所述测试系统在暂停测试的同时,通过远程登陆、或接口访问等方式监测所启动的测试模块在所述测试仪表中的进程,当所述进程消失,则确定所启动的测试模块运行完成。
[0036] 本实施例中,所述测试系统利用远程登陆等技术进入所述测试仪表的操作系统中,并监测所述测试仪表中的进程名称,当所启动的测试模块的进程名称消失时,确定其运行完成,此时,从预设的文件夹中提取相应的测试日志。
[0037] 例如,所述测试系统在启动测试模块A后远程进入所述测试仪表,并循环执行ps-auwx|grep buddy的指令来监控buddy的执行进程,并读取PS指令的结果,通过返回值用正则表达式去匹配tclsh进程,如果匹配成功说明相应的测试模块A还在运行,反之则从预设的文件夹中提供所述测试模块A所对应的测试日志,并执行步骤S3。
[0038] 在步骤S3中,所述测试系统基于所获取的测试日志继续执行对所述被测设备的测试。
[0039] 具体地,所述测试系统在获取了测试日志后,通过对测试日志的分析,从中提取测试结果或者所记载的抓包数据等测试信息,并将所提取的测试信息作为参数代入暂停的测试脚本中,以便继续执行所述测试脚本。
[0040] 例如,所述测试系统在所获取的测试日志中提取被测设备将地址IP1所发送的数据转发至地址IP2过程中所有转发数据,并将所提取的转发数据送入暂停的测试脚本中,并继续执行该测试脚本,以检测所提取的转发数据与预设的期望是否一致,并得到相应的测试结果。
[0041] 请参阅图2,本发明提供一种集成测试仪表的测试系统。所述测试系统1包含由安装在测试平台中的软件和硬件。其中,所述测试平台可以是基于RobotFramework(自动测试框架)、QTP(Quick Test Professional快速测试专业版)的测试平台、或自主研发的层次化的测试框架等。所述测试仪表2包括但不限于:基于CDRouter、IXIA、或SmartBits的自动化测试仪表2
[0042] 其中,所述测试仪表2主要用来对被测设备3进行所述测试系统1无法进行、或者利用所述测试系统1不便于进行的测试。例如,所述测试系统1用来测试被测设备3的功能,而所集成的测试仪表2为用于测试被测设备3的协议一致性,当所述测试系统1在测试过程中需要所述测试仪表2的测试结果或测试过程中的抓包数据时,其调用了如下模块将与自身测试环境完全不同的测试仪表2予以集成,以实现自动测试。其中,所述被测设备3可以为任何通信类的电子设备,其包括但不限于:路由器、交换机等。
[0043] 所述测试系统1包括:第一模块11、第二模块12和第三模块13。
[0044] 所述第一模块11用于在测试被测设备3的过程中通过调用预配置的与测试仪表2中各测试模块的接口启动相应的测试模块。
[0045] 其中,所述接口可以是所述测试系统1和测试仪表2之间的硬件接口。这里优选的,所述接口为测试人员预先根据测试仪表2中的各测试模块和所述第一模块11中的各测试模块中的对应关系在所述第一模块11中预先配置的。例如,所述测试人员利用配置文件将所述第一模块11中的各测试模块的调用指令与所述测试仪表2中的对应测试模块的启动代码相匹配。更为优选地,所述接口为配置对应于各所述测试模块的启动代码的关键字。例如,测试人员在所述第一模块11中配置了对应于各所述测试模块的启动代码的关键字,则所述第一模块11在运行过程中通过调用相应的关键字来启动所述测试仪表2中对应测试模块的运行。
[0046] 在此,所述第一模块11和测试仪表2之间的指令可以通过硬件接口(如USB等串行总线接口)来传输。优选地,所述第一模块11采用SSH(安全外壳协议)技术将所调用的测试模块的启动代码传递至所述测试仪表2,以便所述测试仪表2启动相应的测试模块。例如,所述第一模块11与测试仪表2网络连接,则所述第一模块11采用SSH框架,将加密的启动代码传递至所述测试仪表2。
[0047] 由上可见,所述第一模块11在执行测试脚本时,根据脚本设置通过调用所配置的关键字,采用SSH技术将所述关键字所对应的启动代码传递给测试仪表2,则所述测试仪表2启动并运行对应的测试模块,与此同时,所述第一模块11暂停当前测试,并等待相应测试模块的测试完成。
[0048] 所述第二模块12用于在确定所启动的测试模块运行完成时,获取所述测试模块所记录的包含测试过程和/或测试结果的测试日志。
[0049] 具体地,当所述测试仪表2中的测试模块被启动运行时,所述测试仪表2将测试过程及测试结果以日志的形式保存在预设的文件夹中,当所述测试仪表2执行完相应的测试模块,可以主动将所述测试日志提供给所述第二模块12,以便所述第二模块12重新恢复并继续执行后续测试。其提供方式也可以采用SSH技术,以确保安全。
[0050] 事实上,大多数测试仪表2并不具备主动输出测试日志的功能。所述第二模块12在暂停测试的同时,通过远程登陆、或接口访问等方式监测所启动的测试模块在所述测试仪表2中的进程,当所述进程消失,则确定所启动的测试模块运行完成。
[0051] 本实施例中,所述第二模块12利用远程登陆等技术进入所述测试仪表2的操作系统中,并监测所述测试仪表2中的进程名称,当所启动的测试模块的进程名称消失时,确定其运行完成,此时,从预设的文件夹中提取相应的测试日志。
[0052] 例如,所述第二模块12在启动测试模块A后远程进入所述测试仪表2,并循环执行ps-auwx|grep buddy的指令来监控buddy的执行进程,并读取PS指令的结果,通过返回值用正则表达式去匹配tclsh进程,如果匹配成功说明相应的测试模块A还在运行,反之则从预设的文件夹中提供所述测试模块A所对应的测试日志,并启动所述第三模块13。
[0053] 所述第三模块13用于基于所获取的测试日志继续执行对所述被测设备3的测试。
[0054] 具体地,所述第三模块13在获取了测试日志后,通过对测试日志的分析,从中提取测试结果或者所记载的抓包数据等测试信息,并将所提取的测试信息作为参数代入暂停的测试脚本中,以便继续执行所述测试脚本。
[0055] 例如,所述第三模块13在所获取的测试日志中提取被测设备3将地址IP1所发送的数据转发至地址IP2过程中所有转发数据,并将所提取的转发数据送入暂停的测试脚本中,并继续执行该测试脚本,以检测所提取的转发数据与预设的期望是否一致,并得到相应的测试结果。
[0056] 综上所述,本发明的集成测试仪表的测试方法及系统,通过配置与测试仪表中各测试模块的接口将两个执行环境完全不同的测试设备相结合,有效避免了两个测试设备的不协调,有效提高了对被测设备的测试效率;同时,所述测试系统利用所述测试仪表中的测试日志,自动提取所需的测试记录并继续进行测试,实现了在两个完全不同的测试环境之间完全自动化的测试;另外,通过监测测试仪表中的进程来确定所启动的测试模块已完成测试,再获取测试日志,不仅能及时获取测试日志以进行后续测试,还能有效防止因无法得知测试仪表是否完成测试而盲目获取测试日志所带来的数据不全等缺陷;还有,采用SSH技术,能安全的进行远程控制测试仪表,减少了测试系统和测试仪表由硬件连接所带来的场地等麻烦。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
[0057] 上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。