一种自动化测试方法及装置的制造方法

文档序号:10534719阅读:380来源:国知局
一种自动化测试方法及装置的制造方法
【专利摘要】本发明提供一种自动化测试方法及装置,该方法包括:通过控制通道向目标DUT发送测试命令,以使目标DUT执行本地的测试脚本,并阻塞目标DUT和执行机之间的控制通道;对各数据通道进行监听;判断是否从数据通道接收到所述至少两台目标DUT发送的状态锁定通知,所述状态锁定通知用于告知执行机相对应的目标DUT暂停测试脚本的执行;若是,则通过相应的数据通道向目标DUT发送解锁通知,以使目标DUT继续执行测试脚本;获取执行完成的测试脚本的运行结果。应用本发明实施例可以提高网络设备自动化测试的效率。
【专利说明】
一种自动化测试方法及装置
技术领域
[0001]本发明涉及网络通信技术领域,尤其涉及一种自动化测试方法及装置。
【背景技术】
[0002]当前的网络设备的自动化测试框架由执行机集中控制各个网络设备的运行,即由执行机串行执行所有的测试脚本,并将测试命令依次下发给DUT(Device Under Test,被测试设备)。
[0003]然而,随着自动化规模的扩大,为了满足大规模自动化测试的需求,被测试设备不断增加,所有的测试脚本均在执行机上串行执行的实现方式会增加大量的等待时间,如执行机在执行测试脚本时,DUT需要等待执行机下发测试命令;执行机向DUT下发测试命令之后,需要等待DUT返回结果等,大大降低了自动化测试的执行效率。

【发明内容】

[0004]本发明提供一种自动化测试方法及装置,以解决现有技术中自动化测试执行效率低的问题。
[0005]根据本发明实施例的第一方面,提供一种自动化测试方法,应用于测试系统中的执行机,所述测试系统包括至少两台目标被测设备DUT,所述执行机和各目标DUT之间建立有控制通道和数据通道,所述方法包括:
[0006]通过控制通道向目标DUT发送测试命令,以使目标DUT执行本地的测试脚本,并阻塞目标DUT和执行机之间的控制通道;
[0007]对各数据通道进行监听;
[0008]判断是否从数据通道接收到所述至少两台目标DUT发送的状态锁定通知,所述状态锁定通知用于告知执行机相对应的目标DUT暂停测试脚本的执行;
[0009]若是,则通过相应的数据通道向目标DUT发送解锁通知,以使目标DUT继续执行测试脚本;
[0010]获取执行完成的测试脚本的运行结果。
[0011]根据本发明实施例的第二方面,提供一种自动化测试方法,应用于测试系统中的目标被测试设备DUT,所述测试系统包括执行机以及至少两台所述目标DUT,所述执行机和各目标DUT之间建立有控制通道和数据通道,所述方法包括
[0012]当通过控制通道接收到执行机发送的测试命令时,执行本地的测试脚本,并阻塞自身与执行机之间的控制通道;
[0013]当需要暂停测试脚本的执行时,通过数据通道向所述执行机发送状态锁定通知,所述状态锁定通知用于告知执行机相对应的目标DUT暂停测试脚本的执行;
[0014]当接收到所述执行机通过数据通道发送的解锁通知时,继续执行测试脚本;
[0015]当测试脚本执行完成时,上报测试脚本运行结果。
[0016]根据本发明实施例的第三方面,提供一种自动化测试装置,应用于测试系统中的执行机,所述测试系统包括至少两台目标被测设备DUT,所述执行机和各目标DUT之间建立有控制通道和数据通道,所述装置包括:
[0017]发送单元,用于通过控制通道向目标DUT发送测试命令,以使目标DUT执行本地的测试脚本,并阻塞目标DUT和执行机之间的控制通道;
[0018]监听单元,用于对各数据通道进行监听;
[0019]判断单元,用于判断是否从数据通道接收到所述至少两台目标DUT发送的状态锁定通知,所述状态锁定通知用于告知执行机相对应的目标DUT暂停测试脚本的执行;
[0020]所述发送单元,还用于若所述判断单元判断为是,则通过相应的数据通道向目标DUT发送解锁通知,以使目标DUT继续执行测试脚本;
[0021]获取单元,用于获取执行完成的测试脚本的运行结果。
[0022]根据本发明实施例的第四方面,提供一种自动化测试装置,应用于测试系统中的目标被测试设备DUT,所述测试系统包括执行机以及至少两台所述目标DUT,所述执行机和各目标DUT之间建立有控制通道和数据通道,所述装置包括:
[0023]接收单元,用于通过控制通道接收执行机发送的测试命令;
[0024]执行单元,用于当所述接收单元通过控制通道接收到执行机发送的测试命令时,执行本地的测试脚本,并阻塞自身与执行机之间的控制通道;
[0025]发送单元,用于当需要暂停测试脚本的执行时,通过数据通道向所述执行机发送状态锁定通知,所述状态锁定通知用于告知执行机相对应的目标DUT暂停测试脚本的执行;
[0026]所述执行单元,还用于当所述接收单元接收到所述执行机通过数据通道发送的解锁通知时,继续执行测试脚本;
[0027]所述发送单元,还用于当测试脚本执行完成时,上报测试脚本运行结果。
[0028]应用本发明实施例,目标DUT在执行测试脚本的过程中,当需要暂停执行测试脚本时,通过数据通道向执行机发送状态锁定通知,以保证全局运行结果检查的准确性,进而实现了测试脚本在设备上的分布式执行,提高了网络设备自动化测试的效率。
【附图说明】
[0029]图1是本发明实施例提供的一种自动化测试的网络架构示意图;
[0030]图2是本发明实施例提供的一种自动化测试方法的流程示意图;
[0031]图3是本发明实施例提供的另一种自动化测试方法的流程示意图;
[0032]图4是本发明实施例提供的一种自动化测试装置的结构示意图;
[0033]图5是本发明实施例提供的另一种自动化测试装置的结构示意图;
[0034]图6是本发明实施例提供的一种自动化测试装置的结构示意图。
【具体实施方式】
[0035]为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。
[0036]请参见图1,为本发明实施例提供的一种自动化测试的网络架构示意图,如图1所示,该网络架构示意图可以包括执行机以及至少两个目标DUT。其中,每个目标DUT均作为分布式TCL(Tool Command Language,工具命令语言)自动化框架的Client(客户端),内置TCL解释器,可以本地执行TCL脚本和TCL命令;执行机上运行给予TCL的Server程序,控制Client的运行。其中,执行机可以包括PC(Personal Computer,个人计算机)或服务器等。
[0037]本发明实施例中,执行机和目标DUT(即TCL Server和TCL Client)之间可以分别建立数据通道和控制通道;执行机可以通过与目标DUT之间的控制通道向目标DUT发送TCL命令,以使目标DUT执行本地的测试脚本,并阻塞目标DUT和执行机之间的控制通道;执行机还可以通过控制通道向Client发送控制命令,控制Client的运行状态。其中,数据通道可以是FTP(File Transfer Protocol,文件传输协议)/TFTP(Trivial File TransferProtocol,简单文件传输协议)通信信道。
[0038]基于图1所示的网络架构,本发明实施例提供了一种自动化测试方法,该自动化测试方法可以应用于分布式网络设备自动化测试系统,请参见图2,为本发明实施例提供的一种自动化测试方法的流程示意图,其中,该方法可以应用于图1所示网络架构中的执行机,如图2所示,该方法可以包括以下步骤:
[0039]步骤201、通过控制通道向目标DUT发送TCL命令,以使目标DUT执行本地的测试脚本,并阻塞目标DUT和执行机之间的控制通道。
[0040]本发明实施例中,为了减少自动测试化过程中的等待时间,提高自动化测试的执行效率,可以预先将部分测试脚本(如用于配置下发的测试脚本)下发至目标DUT上执行。
[0041]例如,可以把需要下发的配置,以功能为单位写成接口函数,并以模块为单位将接口函数写入不同的测试脚本,并存放在目标DUT的存储介质中。
[0042]需要注意的是,在本发明实施例中,对于需要在执行机上执行的测试脚本,其具体执行流程以及对应的结果检查流程可以参见现有自动化测试方案中的相关描述,本发明实施例在此不再赘述。例如,QoS(Quality of Service,服务质量)测试脚本,需要测试仪器向DUT发送数据流量,因此,需要在执行机上执行。
[0043]本发明实施例中,执行机可以通过与目标DUT之间的控制通道向目标DUT发送TCL命令,以启动目标DUT执行本地的测试脚本。
[0044]目标DUT接收到执行机发送的TCL命令后,可以执行本地的测试脚本,并阻塞目标DUT和执行机之间的控制通道。
[0045]步骤202、对各数据通道进行监听。
[0046]步骤203、判断是否从数据通道接收到上述至少两台目标DUT发送的状态锁定通知,该状态锁定通知用于告知执行机相对应的目标DUT暂停测试脚本的执行。若是,转至步骤204 ;否则,转至步骤202。
[0047]本发明实施例中,考虑到分布式网络设备自动化测试实现中,对测试脚本的运行结果的检查可以包括本地运行结果检查以及全局运行结果检查。其中,本地运行结果的检查,是对DUT本地意义上的配置结果或运行状态的检查,比如配置的下发是否正确,本地的电源、风扇、温度、端口状态是否正确等,本地运行结果的检查与组网中的其它设备没有关系,不存在时序问题。而全局运行结果的检查,是指对整个组网运行结果的全面检查,例如,两台被测试设备(如DUTl和DUT2)间的0SPF(0pen Shortest Path First,开放式最短路径优先)邻居关系测试,若要在DUTl上检查OSPF的FULL状态,则需要在DUT2配置完成后,才能进行检查,否则结果就是错误的,也就是说,一个DUT做全局运行结果的检查的时候,需要确认其他相关设备(包括DUT或执行机)的配置已经符合预期。因此,在分布式网络设备自动化测试(测试脚本为分布式执行)实现方案中,一个DUT上对全局运行结果进行检查的时候,需要和组网中相关设备进行一次运行状态同步。
[0048]为了达到上述目的,在本发明实施例中,目标DUT在执行测试脚本时,若需要进行全局运行结果检查,则目标DUT可以暂停测试脚本的执行,并通过数据通道向执行机发送状态锁定通知,该状态锁定通知用于告知执行机相对应的目标DUT暂停测试脚本的执行,即告知执行机发送该状态锁定通知的目标DUT暂停测试脚本的执行,等待其他设备。
[0049]例如,可以在下发给目标DUT的测试脚本中设置预设字段,该预设字段可以设置在需要进行全局运行结果检查的字段之后,目标DUT在执行本地的测试脚本的过程中,若执行到该预设字段,则可以通过数据通道向执行机发送状态锁定通知,以告知执行机自身暂停测试脚本的执行,从而实现多个目标DUT之间的运行状态同步。
[0050]其中,全局运行结果检查所涉及的多个目标DUT均需要向执行机发送状态锁定通知,该多个目标DUT发送的状态锁定通知包括一个主动锁定通知以及至少一个被动锁定通知;同一全局运行结果检查对应的状态锁定通知中需要包括相同的通知标识,该通知标识用于执行机识别对应于同一全局运行结果检查的状态锁定通知,且主动锁定通知中还可以携带有所有需要发送被动锁定通知的目标DUT的标识。
[0051]相应地,执行机向目标DUT发送测试命令之后,可以对各数据通道进行监听,以检测是否存在状态锁定通知。当执行机从数据通道接收到目标DUT发送的状态锁定通知时,执行机可以进一步判断是否从数据通道接收到上述至少两台目标DUT发送的状态锁定通知,即判断涉及全局运行结果检查的测试设备是否完成了状态同步。若是,则确定需要通知目标DUT解除锁定状态,继续执行测试脚本;否则,继续对数据通道进行监听。
[0052]作为一种可选的实施方式,在本发明实施例中,对各数据通道进行监听,可以包括:
[0053]当从数据接收到被动锁定通知时,则记录该被动锁定通知中的全局锁编号和本机DUT编号;
[0054]当从数据通道接收到主动锁定通知,则记录该主动锁定通知中的全局所编号、本机DUT编号和DUT列表。
[0055]相应地,判断是否从数据通道接收到所述至少两台目标DUT发送的状态锁定通知,具体为:
[0056]根据所述DUT列表和所述全局锁编号,判断是否接收到所述至少两台目标DUT发送的状态锁定通知。
[0057]在该实施方式中,状态锁定通知可以分为主动锁定通知和被动锁定通知,执行机可以根据状态锁定通知中的锁类型确定状态锁定通知为主动锁定通知或被动锁定通知;其中,主动锁定通知至少可以包含全局锁编号、锁类型、本机DUT编号和DUT列表;被动锁定通知至少可以包含全局锁编号和本机DUT编号等。
[0058]其中,全局锁编号可以用于标识某一全局运行结果,在一个测试脚本的执行过程中,可能会多次进行状态锁定,每一次的状态锁定对应一个全局锁编号,比如OSPF的邻居关系为一个全局运行结果;本机DUT编号用于标识发送状态锁定通知的DUT设备;DUT列表可以包括DUT编号或执行机标识(或称为Server标识),用于标识同一全局运行结果所涉及的其它DUT设备或执行机。
[0059]可选地,状态锁定通知中还可以包括锁类型,锁类型可以包括主动锁或被动锁,用于标识状态锁定通知为主动锁定通知或被动锁定通知。
[0060]在该实施方式中,当执行机接收到状态锁定通知时,执行机可以根据该状态锁定通知中的锁类型确定该状态锁定通知为主动锁定通知或被动锁定通知。
[0061 ]当执行机接收到被动锁定通知时,可以记录该被动锁定通知中的全局锁编号和本机DUT编号;当执行机接收到主动锁定通知时,可以记录该主动锁定通知中的全局锁编号、本机DUT编号和DUT列表。
[0062]相应地,执行机可以自身记录的全局锁编号以及DUT列表,判断是否接收到上述至少两台目标DUT发送的锁定通知。
[0063]本发明实施例中,若执行机判断未从数据通道接收到上述至少两台目标DUT发送的状态锁定通知(如未接收到主动锁定通知、未接收到部分或全部被动锁定通知、或主动锁定通知和被动锁定通知均为接收到),则执行机可以继续对数据通道进行监听。
[0064]举例来说,假设主动锁定通知中依次包括全局锁编号、锁类型、本机DUT编号以及DUT列表;被动锁定通知中依次包括全局锁编号、锁类型、本机DUT编号;其中,不同字段之间通过“!”为分隔符,主动锁对应的锁类型为O,被动锁对应的锁类型为I,被动锁定DUT列表的成员用分隔,则当执行机接收到的状态锁定通知的通知内容中包括“I !O! I !3.4”时,执行机可以确认该状态锁定通知为主动锁定通知,全局锁编号为“I”,发送主动锁定通知的设备为DUT1,DUT3和DUT4需要发送被动锁定通知,进而,执行机可以判断是否已接收到DUT3和DUT4发送的被动锁定通知(通知内容分别为“I! I! 3! 3”和“I! I!4!4” ),并当均已接收到时,进行解除锁定处理。
[0065]需要注意的是,在本发明实施例中,若执行机接收到主动锁定通知之后,未在预设时间(第一预设时间)内接收到DUT列表中某目标DUT发送的被动锁定通知时,执行机可以向该目标DUT发送被动锁定请求消息,以使该目标DUT收到该被动锁定请求消息后,暂停测试脚本的执行,并回复被动锁定通知。
[0066]步骤204、通过相应的数据通道向目标DUT发送解锁通知,以使目标DUT继续执行测试脚本。
[0067]本发明实施例中,当执行机确定从数据通道接收到上述至少两台目标DUT发送的状态锁定通知时,执行机可以通过相应的数据通道向目标DUT发送解锁通知,以使接收到该解锁通知的目标DUT继续执行测试脚本,例如向一个目标DUT发送解锁通知时,是通过执行机与该目标DUT所建立的数据通道发送。
[0068]作为一种可选的实施方式,上述步骤203中,通过相应的数据通道向目标DUT发送解锁通知,可以包括:
[0069]根据主动锁定通知中的本机DUT编号,通过对应的数据通道向目标DUT发送解锁通知,以使该目标DUT接收到该解锁通知时,继续执行测试脚本;
[0070]当接收到该DUT发送的解锁确认通知后,根据该解锁确认通知中的DUT列表,通过对应的数据通道向目标DUT发送解锁通知,以使该目标DUT接收到该解锁通知时,继续执行测试。
[0071 ]在该实施方式中,当执行机需要解除目标DUT的状态锁定时,执行机可以根据接收到的主动锁定通知中的本机DUT编号(即发送主动锁定通知的DUT的编号),通过对应的数据通道向目标DUT解锁通知;其中,该解锁通知中可以包括全局锁编号、通知类型标识以及DUT列表。
[0072]DUT接收到解锁通知后,可以继续执行测试脚本,并向执行机发送解锁确认通知;其中,该解锁确认通知可以包括全局锁编号、DUT列表以及通知类型标识。
[0073]执行机接收到DUT发送的解锁确认通知后,根据该解锁确认通知中的DUT列表,通过对应的数据通道向目标DUT发送解锁通知,以使接收到该目标DUT继续执行测试脚本。
[0074]优选地,在本发明实施例中,主动锁定通知、被动锁定通知,解锁通知和解锁确认通知的形式相同,即均为“全局锁编号!通知类型标识(O为主动锁定通知,I为被动锁定通知,2为解锁通知,3为解锁确认通知)!本机编号!被动锁DUT列表或被动锁DUT编号”。
[0075]举例来说,仍以上述步骤203中所举示例为例,执行机接收到DUTl发送的主动锁定通知(通知内容为“I! O! I! 3.4”(第一个“I”为全局锁编号;“O”为通知类型标识,表明该通知为主动锁定通知;第二个“I”为本机DUT标识,表明该主动锁定通知由DUTl发送;“3.4”为DUT列表,S卩DUT3和DUT4需要发送被动锁定通知,下同)),以及DUT3和DUT4发送的被动锁定通知(通知内容分别为“I !I !3!3”(第一个“I”为全局锁编号;第二个“I”为通知类型标识,表明该通知为被动锁定通知;第一个“3”为本机DUT标识,表明该被动锁定通知由DUT3发送;第二个“3”表明DUT3需要发送被动锁定通知,下同)和“I! I !4!4”)之后,执行机可以先向DUTl发送解锁通知,其通知内容可以为“I !2!0! I”(假设解锁通知的通知类型标识为2,执行机的标识为O)(第一个“I”为全局锁编号;“2”为通知类型标识,表明该通知为解锁通知;“O”为执行机标识,表明该解锁通知由执行机发送;第二个“I”为解锁DUT标识,即通知DUTl解除锁定,下同),DUTl接收到该解锁通知后,继续执行测试脚本,并向执行机发送解锁确认通知,其通知内容可以为“I !3!1 !3.4”(假设解锁确认通知的通知类型标识为3)(第一个“I”为全局锁编号;“3”为通知类型标识,表明该通知为解锁确认通知;“I”为本机DUT标识,表明该解锁确定通知由DUTl发送;“3,4”为DUT列表,S卩DUT3和DUT4为被动锁定DUT,下同);执行机接收到DUTl发送的解锁确认通知后,可以分别向DUT3和DUT4发送被动锁定解锁通知(通知内容可以分别为“I! 2 !O!3”和“I!2 !O !4”),以使DUT3和DUT4继续执行测试脚本。其中,DUT3和DUT4在接收到被动锁定解锁通知之后,可以分别向DUT3和DUT4发送解锁确认通知(通知内容可以分别为“1!2!3!3” 和“1!2!4!4”)。
[0076]作为一种可选的实施方式,在本发明实施例中,解锁通知(包括主动锁定解锁通知或被动锁定解锁通知)可以为文件名为通知内容的文件;
[0077]步骤205、获取执行完成的测试脚本的运行结果。
[0078]本发明实施例中,目标DUT执行完本地的测试脚本后,可以将测试脚本的运行结果上报给执行机;或者,目标DUT可以在执行完本地的测试脚本后,向执行机发送测试脚本执行完成通知;执行机接收到目标DUT发送的测试脚本执行完成通知后,可以获取该目标DUT的测试脚本运行结果。
[0079]基于图1所示的网络架构,本发明实施例提供了另一种自动化测试方法,请参见图3,为本发明实施例提供的另一种自动化测试方法的流程示意图,其中,该方法可以应用于目标DUT,如图3所示,该方法可以包括以下步骤:
[0080]步骤301、当通过控制通道接收到执行机发送的测试命令时,执行本地的测试脚本,并阻塞自身与执行机之间的控制通道。
[0081 ]本发明实施例中,执行机可以通过与目标DUT之间的控制通道向目标DUT发送TCL命令,以启动目标DUT执行本地的测试脚本;目标DUT接收到该TCL命令时,可以启动本地测试脚本的执行,并阻塞自身与执行机之间的控制通道。需要说明的是,此处所述的目标DUT仅指一般的DUT,该DUT与执行机之间建立有数据通道和控制通道,目标DUT这一名称并不构成对DUT的限制。
[0082]步骤302、当需要暂停测试脚本的执行时,通过数据通道向所述执行机发送状态锁定通知,该状态锁定通知用于告知执行机相对应的目标DUT暂停测试脚本的执行。
[0083]本发明实施例中,目标DUT在执行测试脚本时,若需要进行全局运行结果检查,则目标DUT可以暂停测试脚本的执行,并通过数据通道向执行机发送状态锁定通知,该状态锁定通知用于告知执行机相对应的目标DUT暂停测试脚本的执行。
[0084]其中,全局运行结果检查所涉及的多个目标DUT均需要向执行机发送状态锁定通知,该多个目标DUT发送的状态锁定通知可以包括一个主动锁定通知以及至少一个被动锁定通知,同一全局运行结果检查对应的多个状态锁定通知中需要包括相同的通知标识,该通知标识用于执行机识别对应于同一全局运行结果检查的状态锁定通知,且主动锁定通知中还可以携带有所有需要发送被动锁定通知的设备的标识。
[0085]具体的,为了保证全局运行结果检查的准确性,可以在全局运行结果检查所涉及的测试脚本中设置预设字段,当目标DUT在执行本地的测试脚本的过程中,执行到该预设字段时,可以根据该预设字段向执行机发送主动锁定通知或被动锁定通知
[0086]其中,在测试脚本中,主动锁或被动锁可以通过while循环实现,当相关DUT执行到该while循环后,可以循环检测解锁通知,检测到解锁通知则退出循环,实现解除锁定;否贝IJ,保持锁定状态。
[0087]其中,执行机接收到主动锁定通知或被动锁定通知之后的具体实现可以参见上述步骤203?步骤204中的相关描述,本发明实施例在此不再赘述。
[0088]步骤303、当接收到执行机通过数据通道发送的解锁通知时,继续执行测试脚本。
[0089]本发明实施例中,目标DUT接收到执行机发送的解锁通知时,可以解除锁定状态,继续执行测试脚本。
[0090]作为一种可选的实施方式,当解锁通知为主动锁定解锁通知(当目标DUT向执行机发送的状态锁定通知为主动锁定通知时,该目标DUT接收到的解锁通知可以称为主动锁定解锁通知)时,接收到执行机通过数据通道发送的解锁通知之后,还可以包括:
[0091]向执行机发送解锁确认通知,以使执行机根据解锁确认通知中的DUT列表,通过对应的数据通道向目标DUT发送被动锁解锁通知。
[0092]在该实施方式中,当目标DUT接收到的解锁通知为主动锁定解锁通知时,即该目标DUT为向执行机发送主动锁定通知的目标DUT时,该目标DUT在根据解锁通知解除锁定状态,并继续执行测试脚本之后,还需要向执行机发送解锁确认通知,该解锁确认通知中可以包括DUT列表;执行机接收到该解锁确认通知之后,可以根据该DUT列表,向目标DUT发送被动锁定解锁通知(当目标DUT向执行机发送的状态锁定通知为被动锁定通知时,该目标DUT接收到的解锁通知可以称为被动锁定解锁通知),以指示对应的目标DUT解除锁定,继续执行测试脚本。
[0093]步骤304、当测试脚本执行完成时,上报测试脚本运行结果。
[0094]本发明实施例中,目标DUT执行完本地的测试脚本后,可以将测试脚本的运行结果上报给执行机;或者,目标DUT可以在执行完本地的测试脚本后,向执行机发送测试脚本执行完成通知;执行机接收到目标DUT发送的测试脚本执行完成通知后,可以获取该目标DUT的测试脚本运行结果。
[0095]需要注意的是,在本发明实施例中,DUT向执行机发送主动锁定通知之后,若在预设时间(第二预设时间)内未接收到执行机发送的解锁通知,则可以重新向执行机发送主动锁定通知,其中,重新发送的主动锁定通知的通知格式可以与之前发送的主动锁定通知的格式相同;执行机接收到该主动锁定通知的处理策略可以参见上述实施例中的相关描述。
[0096]此外,DUT向执行机发送主动锁定通知或被动锁定通知之后,若在预设时间(第三预设时间,第三预设时间大于第二预设时间)内未接收到解锁通知,则DUT可以直接解除锁定状态,继续执行测试脚本。
[0097]为了使本领域技术人员更好地理解本发明实施例提供给的技术方案,下面对本发明实施例中的通知通信机制进行举例说明。
[0098]1、在目标DUT和Server上都启动ftp server。
[0099]2、目标DUT的Tclsh(—种脚本解释器)进程在DUT的磁盘上创建空文件,文件名即为Tclsh进程所要发送通知的内容,通知内容字段用“!”号为分割符,主动锁定通知的通知类型标识用O表示,被动锁定通知的通知类型标识用I表示,解锁通知的通知类型标识用2表示,解锁确认通知的通知类型标识用3表示,被动锁定列表的成员用V’号分割。
[0100]例如DUTl的tclsh进程,要创建一个编号为I,主动锁定类型的,被动锁定DUT成员编号分别为3,4的主动锁定通知,则应该在磁盘上创建一个名为:1! O! I! 3.4的空文件。
[0101 ] 3、DUT的Tclsh进程通过ftp把通知文件发送到Server。
[0102]4、执行机监控ftp server的通知接收目录,发现有新通知文件写入,读取文件名(获取通知内容)后,把通知文件拷贝到历史通知目录下,然后在通知接收目录下删除该通知文件。
[0103]5、执行机收到通知后对通知进行分类存储,并根据锁定的类型,做不同的处理:若收到的是主动锁定通知,则根据通知里的全局锁编号以及DUT列表,查找被动锁定通知,如果都能找到,则向通知源发送解锁通知;若收到的是被动锁定通知,则根据全局锁编号查找是否存在对应的主动锁定通知,如果不存在,则不做进一步处理等待对应的主动锁定通知,如果找到对应的主动锁定通知,则根据主动锁定通知中的DUT列表,判断被动锁定通知是否全部接收到,如果没有,也不做进一步处理,等待下个被动锁定通知,否则向通知源发送解锁通知。
[0104]6、解锁通知格式为:全局锁编号,锁定类型,执行机标识(O),解锁DUT编号,分割符仍为!,比如对于I! O! I! 3.4这个主动锁定通知,解锁通知为I! 2! O ! I,在通知发送目录创建文件为I! 2! O! I的空文件,通过ftp把文件传输到发送主动锁定通知的DUTI设备,然后把通知发送目录下的通知文件拷贝到通知历史目录后删除通知文件。
[0105]7、DUT1设备的Tclsh进程读到解锁通知,退出全局锁定,继续执行测试脚本,并发送解锁确认通知:I! 3! I! 3.4。
[0106]8、Server收到解锁确认通知后,向DUT3发送解锁通知I !2!0!3,向DUT3发送解锁通知1!2!0!4。
[0107]9、DUT3、DUT4收到解锁通知后,各自退出全局锁定,继续执行测试脚本。
[0108]通过以上流程可以看出,在本发明实施例中,目标DUT在执行测试脚本的过程中,当需要暂停执行测试脚本时,通过数据通道向执行机发送状态锁定通知,以保证全局运行结果检查的准确性,进而实现了测试脚本在设备上的分布式执行,提高了网络设备自动化测试的效率。
[0109]请参见图4,为本发明实施例提供一种自动化测试装置的结构示意图,其中,该装置可以应用于图1所示网络架构中的执行机,如图4所示,该装置可以包括:
[0110]发送单元410,用于通过控制通道向目标DUT发送测试命令,以使目标DUT执行本地的测试脚本,并阻塞目标DUT和执行机之间的控制通道;
[0111]监听单元420,用于对各数据通道进行监听;
[0112]判断单元430,用于判断是否从数据通道接收到所述至少两台目标DUT发送的状态锁定通知,所述状态锁定通知用于告知执行机相对应的目标DUT暂停测试脚本的执行;
[0113]所述发送单元410,还用于若所述判断单元判断为是,则通过相应的数据通道向目标DUT发送解锁通知,以使目标DUT继续执行测试脚本;
[0114]获取单元440,用于获取执行完成的测试脚本的运行结果。
[0115]在可选实施例中,所述监听单元420,可以具体用于当从数据通道接收到被动锁定通知时,则记录所述被动锁定通知中的全局锁编号和本机DUT编号;当从数据通道接收到主动锁定通知,则记录所述主动锁定通知中的全局所编号、本机DUT编号和DUT列表;
[0116]所述判断单元430,可以具体用于根据所述DUT列表和所述全局锁编号,判断是否接收到所述至少两台目标DUT发送的状态锁定通知。
[0117]请一并参阅图5,图5为本发明实施例提供的另一种自动化测试装置的结构示意图,在图4所示实施例的基础上,图5所示的自动化测试装置中,所述发送单元410可以包括:
[0118]第一发送子单元411,用于根据主动锁定通知中的本机DUT编号,通过对应的数据通道向目标DUT发送解锁通知,以使该目标DUT接收到该解锁通知时,继续执行测试脚本;
[0119]接收子单元412,用于接收该目标DUT发送的解锁确认通知;
[0120]第二发送子单元413,用于当所述接收子单元接收到该目标DUT发送的解锁确认通知时,根据该解锁确认通知中的DUT列表,通过对应的数据通道向目标DUT发送解锁通知,以使该目标DUT接收到该解锁通知时,继续执行测试脚本。
[0121]在可选实施例中,所述数据通道为文件传输协议FTP通道或简单文件传输协议TFTP通道,所述状态锁定通知和所述解锁通知为将文件名作为通知内容的文件。
[0122]请参见图6,为本发明实施例提供一种自动化测试装置的结构示意图,其中,该装置可以应用于目标DUT,如图6所示,该装置可以包括:
[0123]接收单元610,用于通过控制通道接收执行机发送的测试命令;
[0124]执行单元620,用于当所述接收单元610通过控制通道接收到执行机发送的测试命令时,执行本地的测试脚本,并阻塞自身与执行机之间的控制通道;
[0125]发送单元630,用于当需要暂停测试脚本的执行时,通过数据通道向所述执行机发送状态锁定通知,所述状态锁定通知用于告知执行机相对应的目标DUT暂停测试脚本的执行;
[0126]所述执行单元620,还用于当所述接收单元610接收到所述执行机通过数据通道发送的解锁通知时,继续执行测试脚本;
[0127]所述发送单元630,还用于当测试脚本执行完成时,上报测试脚本运行结果。
[0128]在可选实施例中,所述状态锁定通知为被动锁定通知或主动锁定通知,其中,所述被动锁定通知中包含全局锁编号和本机DUT编号,所述主动锁定通知中包含全局锁编号、本机DUT编号和DUT列表。
[0129]在可选实施例中,所述发送单元630,还可以用于当所述接收单元610接收到所述执行机通过数据通道发送的主动锁定解锁通知时,向所述执行机发送解锁确认通知,以使所述执行机根据所述解锁确认通知中DUT列表,通过对应的数据通道向目标DUT发送被动锁解锁通知。
[0130]在可选实施例中,所述数据通道为文件传输协议FTP通道或简单文件传输协议TFTP通道,所述状态锁定通知、所述解锁通知为将文件名作为通知内容的文件。
[0131]上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
[0132]对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0133]由上述实施例可见,目标DUT在执行测试脚本的过程中,当需要暂停执行测试脚本时,通过数据通道向执行机发送状态锁定通知,以保证全局运行结果检查的准确性,进而实现了测试脚本在设备上的分布式执行,提高了网络设备自动化测试的效率。
[0134]本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
[0135]应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
【主权项】
1.一种自动化测试方法,应用于测试系统中的执行机,所述测试系统包括至少两台目标被测设备DUT,所述执行机和各目标DUT之间建立有控制通道和数据通道,其特征在于,所述方法包括: 通过控制通道向目标DUT发送测试命令,以使目标DUT执行本地的测试脚本,并阻塞目标DUT和执行机之间的控制通道; 对各数据通道进行监听; 判断是否从数据通道接收到所述至少两台目标DUT发送的状态锁定通知,所述状态锁定通知用于告知执行机相对应的目标DUT暂停测试脚本的执行; 若是,则通过相应的数据通道向目标DUT发送解锁通知,以使目标DUT继续执行测试脚本; 获取执行完成的测试脚本的运行结果。2.根据权利要求1所述的方法,其特征在于,所述对各数据通道进行监听,包括: 当从数据通道接收到被动锁定通知时,则记录所述被动锁定通知中的全局锁编号和本机DUT编号; 当从数据通道接收到主动锁定通知,则记录所述主动锁定通知中的全局锁编号、本机DUT编号和DUT列表; 所述判断是否从数据通道接收到所述至少两台目标DUT发送的状态锁定通知,具体为:根据所述DUT列表和所述全局锁编号,判断是否接收到所述至少两台目标DUT发送的状态锁定通知。3.根据权利要求2所述的方法,其特征在于,所述通过相应的数据通道向目标DUT发送解锁通知,包括: 根据主动锁定通知中的本机DUT编号,通过对应的数据通道向目标DUT发送解锁通知,以使该目标DUT接收到该解锁通知时,继续执行测试脚本; 当接收到该目标DUT发送的解锁确认通知后,根据该解锁确认通知中的DUT列表,通过对应的数据通道向目标DUT发送解锁通知,以使该目标DUT接收到该解锁通知时,继续执行测试脚本。4.根据权利要求1所述的方法,其特征在于,所述数据通道为文件传输协议FTP通道或简单文件传输协议TFTP通道,所述状态锁定通知和所述解锁通知为将文件名作为通知内容的文件。5.—种自动化测试方法,应用于测试系统中的目标被测试设备DUT,所述测试系统包括执行机以及至少两台所述目标DUT,所述执行机和各目标DUT之间建立有控制通道和数据通道,其特征在于,所述方法包括: 当通过控制通道接收到执行机发送的测试命令时,执行本地的测试脚本,并阻塞自身与执行机之间的控制通道; 当需要暂停测试脚本的执行时,通过数据通道向所述执行机发送状态锁定通知,所述状态锁定通知用于告知执行机相对应的目标DUT暂停测试脚本的执行; 当接收到所述执行机通过数据通道发送的解锁通知时,继续执行测试脚本; 当测试脚本执行完成时,上报测试脚本运行结果。6.根据权利要求5所述的方法,其特征在于,所述状态锁定通知为被动锁定通知或主动锁定通知,其中,所述被动锁定通知中包含全局锁编号和本机DUT编号,所述主动锁定通知中包含全局锁编号、本机DUT编号和DUT列表。7.根据权利要求5所述的方法,其特征在于,当所述解锁通知为主动锁定解锁通知时,所述接收到所述执行机通过数据通道发送的解锁通知之后,还包括: 向所述执行机发送解锁确认通知,以使所述执行机根据所述解锁确认通知中的DUT列表,通过对应的数据通道向目标DUT发送解锁通知。8.—种自动化测试装置,应用于测试系统中的执行机,所述测试系统包括至少两台目标被测设备DUT,所述执行机和各台所述目标DUT之间建立有控制通道和数据通道,其特征在于,所述装置包括: 发送单元,用于通过控制通道向目标DUT发送测试命令,以使目标DUT执行本地的测试脚本,并阻塞目标DUT和执行机之间的控制通道; 监听单元,用于对各数据通道进行监听; 判断单元,用于判断是否从数据通道接收到所述至少两台目标DUT发送的状态锁定通知,所述状态锁定通知用于告知执行机相对应的目标DUT暂停测试脚本的执行; 所述发送单元,还用于若所述判断单元判断为是,则通过相应的数据通道向目标DUT发送解锁通知,以使目标DUT继续执行测试脚本; 获取单元,用于获取执行完成的测试脚本的运行结果。9.根据权利要求8所述的装置,其特征在于, 所述监听单元,具体用于当从数据通道接收到被动锁定通知时,则记录所述被动锁定通知中的全局锁编号和本机DUT编号;当从数据通道接收到主动锁定通知,则记录所述主动锁定通知中的全局所编号、本机DUT编号和DUT列表; 所述判断单元,具体用于根据所述DUT列表和所述全局锁编号,判断是否接收到所述至少两台目标DUT发送的状态锁定通知。10.根据权利要求9所述的装置,其特征在于,所述发送单元包括: 第一发送子单元,用于根据主动锁定通知中的本机DUT编号,通过对应的数据通道向目标DUT发送解锁通知,以使该目标DUT接收到该解锁通知时,继续执行测试脚本; 接收子单元,用于接收该目标DUT发送的解锁确认通知; 第二发送子单元,用于当所述接收子单元接收到该目标DUT发送的解锁确认通知时,根据该解锁确认通知中的DUT列表,通过对应的数据通道向目标DUT发送解锁通知,以使该目标DUT接收到该解锁通知时,继续执行测试脚本。11.根据权利要求8所述的装置,其特征在于,所述数据通道为文件传输协议FTP通道或简单文件传输协议TFTP通道,所述状态锁定通知和所述解锁通知为将文件名作为通知内容的文件。12.—种自动化测试装置,应用于测试系统中的目标被测试设备DUT,所述测试系统包括执行机以及至少两台所述目标DUT,所述执行机和各目标DUT之间建立有控制通道和数据通道,其特征在于,所述装置包括: 接收单元,用于通过控制通道接收执行机发送的测试命令; 执行单元,用于当所述接收单元通过控制通道接收到执行机发送的测试命令时,执行本地的测试脚本,并阻塞自身与执行机之间的控制通道; 发送单元,用于当需要暂停测试脚本的执行时,通过数据通道向所述执行机发送状态锁定通知,所述状态锁定通知用于告知执行机相对应的目标DUT暂停测试脚本的执行; 所述执行单元,还用于当所述接收单元接收到所述执行机通过数据通道发送的解锁通知时,继续执行测试脚本; 所述发送单元,还用于当测试脚本执行完成时,上报测试脚本运行结果。13.根据权利要求12所述的装置,其特征在于,所述状态锁定通知为被动锁定通知或主动锁定通知,其中,所述被动锁定通知中包含全局锁编号和本机DUT编号,所述主动锁定通知中包含全局锁编号、本机DUT编号和DUT列表。14.根据权利要求12所述的装置,其特征在于, 所述发送单元,还用于当所述接收单元接收到所述执行机通过数据通道发送的主动锁定解锁通知时,向所述执行机发送解锁确认通知,以使所述执行机根据所述解锁确认通知中的DUT列表,通过对应的数据通道向目标DUT发送被动锁解锁通知。
【文档编号】G06F11/36GK105893252SQ201610187060
【公开日】2016年8月24日
【申请日】2016年3月28日
【发明人】蒋茂勇, 吴频
【申请人】杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1