[0047] 为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0048] 本发明公开了一种DUT端口冲突处理能力的测试方法,实施例一如图1所示,包括:
[0049] S100配置DUT端口转发规则和DMZ主机功能;
[0050] S200调用命令监听测试系统上对应的测试端口;
[0051] S300通过telnet协议与陪测PC建立连接,创建多线程;
[0052] S400调用命令从陪测PC向所述DUT发起所述多线程进行测试;
[0053] S500断开与陪测PC的连接,获取对应的测试端口的监听结果;
[0054] S600根据所述监听结果,判断所述DUT的端口冲突处理能力是否合格。
[0055] 本发明的思想是在待测设备(DUT)上配置多条端口规则,这几条端口规则是相冲突的,DUT会将接收的数据包发送到规则约定的测试端口去,因此,只需监听测试端口的数据包接收情况,就可以知道待测设备是按照哪条规则转发的。一个合格的产品在遇到冲突的端口规则时,会按照先配置的规则来进行端口转发,因此,只需要检测测试端口的监听结果就可以判断出这个待测设备的端口冲突处理能力是否合格。
[0056] 上述实施例1中的步骤S100包括:
[0057] S110在DUT上配置一条端口转发规则,配置服务器IP为DUT分配给测试系统的IP,并配置DUT的WAN侧IP的第一端口映射测试系统的第二端口;以便将向DUT的WAN侧IP的第一端口请求的包转发至映射的测试系统的第二端口;
[0058] S120开启DMZ主机功能,配置DMZ主机功能的DMZ IP为测试系统的IP,以便将向DUT的WAN侧IP的第一端口请求的包转发至对应的测试系统的第三端口。
[0059] 测试系统调用函数在DUT上配置一条端口转发规则,服务器IP为DUT分配给测试系统的IP,假如作为内部端口的第二端口为80,作为外部端口的第一端口为8000;那么第一条端口规则即为:将向DUT的WAN侧IP的8000端口请求的包转发至服务器IP的80端口,也就是说将待测设备的外部端口8000请求的包转发到测试系统的内部端口80。
[0060] 配置好第一条端口转发规则后,再开启DMZ主机功能,将DMZ主机功能的DMZ IP设置成与端口转发功能的内部IP一致,因此,设置的第二条端口规则是:将向DUT的WAN侧IP的任意端口请求的包转发至服务器IP的对应端口,DUT的WAN侧IP的第一端口与测试系统的第三端口是对应的,即,DUT的WAN侧第一端口为8000,对应的测试系统第三端口亦为8000。转发时,将向DUT的WAN侧IP的端口8000请求的包转发至对应的测试系统的端口8000。
[0061] 配置好这两条规则后,则只需要监听测试系统的80端口和8000端口,测试后便可以根据这两个端口监听到的情况获得测试结果。
[0062] 上述实施例1中的步骤S200,可以通过调用nc命令在测试系统端对测试系统的80端口和8000端口进行监听。
[0063] nc是netcat的简写,有着网络界的瑞士军刀美誉。因为它短小精悍、功能实用,被设计为一个简单、可靠的网络工具。nc的作用有:
[0064] (1)实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口
[0065] (2)端口的扫描,nc可以作为client发起TCP或UDP连接
[0066] (3)机器之间传输文件
[0067] (4)机器之间网络测速。
[0068] 上述实施例1中的步骤S300包括:
[0069] S310调用telnet函数通过telnet协议连接陪测PC;
[0070] S320通过命令启动陪测PC上的测试脚本;
[0071] S330所述测试脚本调用thread函数创建两个线程,所述两个线程均为调用nc命令从陪测PC发出向DUT的WAN侧IP的第一端口进行请求的包。
[0072] 测试系统调用telnet函数通过telnet协议连接陪测PC,并通过命令启动在陪测PC上的脚本;脚本调用thread函数创建两个线程(比如根据前面设置的端口规则,可创建线程1的内容为:调用nc命令从陪测PC发出向DUT的WAN侧IP的8000端口进行请求的包;线程2的内容为:调用nc命令从陪测PC发出向DUT的WAN侧IP的8000端口进行请求的包)。
[0073] 上述实施例1中的步骤S400包括:
[0074] S410调用thread.start命令同时发起上一步骤中创建的两个线程,通过陪测PC同时发出两个向DUT WAN侧IP的第一端口进行请求的包。
[0075] 采用thread.start方式来启动线程,真正实现了多线程运行。
[0076] 上述实施例1中的步骤S600包括:
[0077] S610判断所述监听结果是否满足端口冲突规则,所述端口冲突规则为先配置的规则生效;
[0078] S620当监听到所述第二端口接收到发来的请求包,且所述第三端口未接收到发来的请求包,则判断所述DUT满足端口冲突规则,所述DUT端口冲突处理能力合格;
[0079] S630当监听到所述第三端口接收发来的请求包,则判断所述DUT不满足端口冲突规则,所述DUT端口冲突处理能力不合格。
[0080] 根据前面的步骤可知,设置的第一条端口转发规则为将向DUT的WAN侧IP的第一端口请求的包转发至映射的测试系统的第二端口。根据先配置的规则生效的端口冲突规则,可知只有第二端口监听到发来的请求包,且第三端口未接收到请求包,才可以验证出待测设备(DUT)的端口冲突处理能力是OK的;如果从第三端口监听到发来的请求包,则说明没有满足端口冲突规则,那么,说明待测设备的端口冲突处理能力是不合格的。
[0081] 监听测试系统的第二端口和测试系统的第三端口会出现以下几种情况:
[0082] 1、监听到第二端口接收到发来的请求包,第三端口则没有接收到请求包;
[0083] 2、监听到第二端口和第三端口均接收到了发来的请求包;
[0084] 3、监听到第二端口未接收到发来的请求包,第三端口却接收到了请求包;
[0085] 4、监听到第二端口和第三端口均没有接收到请求包。
[0086] 上述四种情况中,除了第一种情况是测试合格外,另外三种均是测试不合格。因为之前设定的规则是冲突的,之前先设置的端口转发规则是,将DUT的WAN侧IP的第一端口接收的请求包转发给测试系统的第二端口,因此,如果检测到了第三端口有接收到发来的数据包,则说明没有按照先配置的规则先生效的原则,也就可以判定待测设备处理端口冲突能力不合格了。
[0087] 这里有必要说明一下,本实施例没有只发起一个线程来测试。而是采用了两个线程,且是同时向DUT的第一端口同时发起的,也是为了构造出端口冲突的测试环境,另外,之前设置的两条端口规则也是冲突的,测试被测设备在遇到同一接口同时遇到多个线程时处理端口冲突处理能力。
[0088] 本发明的第二实施例,如图2所示,包括步骤:
[0089] S110在DUT上配置一条端口转发规则,配置服务器IP为DUT分配给测试系统的IP,并配置DUT的WAN侧IP的第一端口映射测试系统的第二端口;以便将向DUT的WAN侧IP的第一端口请求的包转发至映射的测试系统的第二端口;
[0090] S120开启DMZ主机功能,配置DMZ主机功能的DMZ IP为测试系统的IP,以便将向DUT的WAN侧IP的第一端口请求的包转发至对应的测试系统的第三端口;
[0091] S210调用命令监听测试系统上的第二端口和第三端口;
[0092] S310调用telnet函数通过telnet协议连接陪测PC;
[0093] S320通过命令启动陪测PC上的测试脚本;
[0094] S330所述测试脚本调用thread函数创建两个线程,所述两个线程均为调用nc命令从陪测PC发出向DUT的WAN侧IP的第一端口进行请求的包;
[0095] S410调用thread.start命令同时发起上一步骤中创建的两个线程,通过陪测PC同时发出两个向DUT WAN侧IP的第一端口进行请求的包;
[0096] S510断开与陪测PC的连接,获取所述第二端口和第三端口的监听结果;
[0097] S610判断所述监听结果是否满足端口冲突规则,所述端口冲突规则为先配置的规则生效;
[0098] S620当监听到所述第二端口接收发来的请求包,且所述第三端口未接收到发来的请求包,则判断所述DUT满足端口冲突规则,所述DUT端口冲突处理能力合格;
[0099] S630当监听到所述第三端口接收发来的请求包,则判断所述DUT不满足端口冲突规则,所述DUT端口冲突处理能力不合格。
[0100] 为了更好地说明本发明的预期效果,本发明的第三实施例以K3C的自动化测试说明,根据本发明的技术方案,做进一步的详细说明。
[0101] 测试拓扑示意图如图3所示。
[0102] 测试准备:测试人员将DUT获取的WAN侧地址输入测试系统并启动测试系统;测试方法流程如图4所示,包括:
[0103] 步骤S1,系统调用函数在DUT上配置一条端口转发规则,服务器IP为DUT分配给测试系统的IP,内部端口为90、外部端口为9000,再开启DMZ主机功能,将DMZ主机功能的DMZ IP设置成与端口转发功能的内部IP一致;(两条规则内容为:端口转发,将向DUT的WAN侧IP的9000端口请求的包转发至服务器IP的90端口;DMZ主机功能,将向DUT的WAN侧IP的任意端口请求的包转发至服务器IP的对应端口,即DUT的WAN侧端口为9000,对应端口亦为9000)[0104] 步骤S2,测试系统调用nc命令在测试系统端对测试系统的90和9000端口进行监听;
[0105] 步骤S3,测试系统调用telnet函数通过telnet协议连接陪测PC,并通过命令启动在陪测PC上的脚本;脚本调用thread函数创建两个线程,(线程1的内容为:调用nc命令从陪测PC发出向DUT的WAN侧IP的9000端口进行请求的包;线程2的内容为:调用nc命令从陪测PC发出向DUT的WAN侧IP的9000端口进行请求的包。)
[0106] 步骤S4,调用thread.start命令同时发起两个线程,即陪测PC同时发出两个向DUT WAN侧IP的9000端口进行请求的包;
[0107] 步骤S5,调用命令断开测试系统和陪测电脑间的telnet连接;
[0108] 步骤S6,检查测试系统端nc监听的结果,判断是否满足冲突规则。如果测试系统的90端口接收发来的请求包,且测试系统的9000端口没有收到请求包,则为PASS,如果测试系统的9000端口接收发来的请求包则为FAIL;(端口冲突规则为先配置的规则生效。)[0109] 步骤S7,返回测试结果并结束测试。
[0110] 本发明的关键点在于通过同时向DUT的同一端口发送请求包测试DUT端口冲突处理能力;利用多线程的方法实现同时向DUT同一端口发送请求。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围
[0111] 基于相同的技术构思,本发明实施例还提供一种DUT端口冲突处理能力的测试系统,该测试系统可执行上述方法实施例。本发明第四实施例提供的测试系统如图5所示,包括:规则配置模块10、监听模块20、线程创建模块30、测试模块40、控制模块50,所述控制模块50分别与所述规则配置模块10、监听模块20、线程创建模块30及测试模块40相连;其中:所述规则配置模块10调用函数在DUT上配置DUT端口转发规则和开启DMZ主机功能;所述监听模块20调用命令监听测试系统上对应的测试端口;所述线程创建模块30通过telnet协议与陪测PC建立连接,创建多线程;所述测试模块40调用命令从陪测PC向所述DUT发起所述多线程进行测试;所述控制模块50调用命令断开所述测试系统与陪测PC的连接,并通过所述监听模块20获取测试端口的监听结果;所述控制模块50根据所述监听结果,判断所述DUT的端口冲突处理能力是否合格。
[0112] 本发明的第五实施例,如图6所示,在上述实施例四的基础上,所述测试系统的规则配置模块10包括:第一规则配置子模块11、第二规则配置子模块12,其中:所述第一规则配置子模块11调用函数在DUT上配置一条端口转发规则,配置服务器IP为DUT分配给测试系统的IP,并配置DUT的WAN侧IP的第一端口映射测试系统的第二端口;以便将向DUT的WAN侧IP的第一端口请求的包转发至映射的测试系统的第二端口;所述第二规则配置子模块开启DMZ主机功能,配置DMZ主机功能的DMZ IP为测试系统的IP,以便将向DUT的WAN侧IP的第一端口请求的包转发至对应的测试系统的第三端口。
[0113] 较佳的,所述线程创建模块30包括:连接子模块31、脚本启动子模块32及线程建立子模块33,所述脚本启动子模块32分别与所述连接子模块31、所述线程建立子模块33相连,其中:所述连接子模块31调用telnet函数通过telnet协议连接陪测PC;所述脚本启动子模块32通过命令启动陪测PC上的测试脚本;所述线程建立子模块33通过所述测试脚本调用thread函数创建两个线程,所述两个线程均为调用nc命令从陪测PC发出向DUT的WAN侧IP的第一端口进行请求的包。
[0114] 较佳的,所述测试模块40调用thread.start命令同时发起上一步骤中创建的两个线程,通过陪测PC同时发出两个向DUT WAN侧IP的第一端口进行请求的包。
[0115] 较佳的,所述控制模块50包括:操作子模块51、与所述操作子模块51相连的判断子模块52;其中:所述操作子模块51在所述测试模块40发起测试后,断开与陪测PC的连接,通过所述监听模块20获取第二端口、第三端口的监听结果;所述判断子模块52判断所述第二端口、第三端口的监听结果是否满足端口冲突规则,所述端口冲突规则为先配置的规则生效;当所述监听模块20监听到所述第二端口接收发来的请求包,且所述第三端口未接收发来的请求,则所述判断子模块52判断所述DUT满足端口冲突规则,所述DUT端口冲突处理能力合格;当所述监听模块20监听到所述第三端口接收发来的请求包,则所述判断子模块52判断所述DUT不满足端口冲突规则,所述DUT端口冲突处理能力不合格。
[0116] 本发明实施例的测试系统用于对待测设备的端口冲突能力的测试,待测设备包括SOHO产品,比如交换机、路由器等。
[0117] 尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0118] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。