通信设备的测试方法、装置、介质及电子设备
阅读说明:本技术 通信设备的测试方法、装置、介质及电子设备 (Test method, device, medium and electronic device for communication device ) 是由 刘祥如 陶春雷 于 2020-12-29 设计创作,主要内容包括:本发明提供了一种通信设备的测试方法,包括:控制测试仪,向所述通信设备的第一端口发送测试样本,所述测试样本中包含s个通信源地址;从所述通信设备中获取所述通信地址表的容量值n,所述通信地址表用于存储所述通信源地址;更新所述通信源地址的个数,直至所述通信地址表的容量值和所述通信源地址的个数满足第一预设条件为止;从所述通信设备中获取第三端口的收包速率;更新所述通信源地址的个数,直至所述第三端口的收包速率满足第二预设条件为止,以此方式对通信设备进行测试可以有效地避免哈希冲突的影响,而且提高了测试效率使得测试结果逼近真实值,进而降低测试误差。本发明还提供了通信设备的测试装置、介质以及电子设备。(The invention provides a test method of communication equipment, which comprises the following steps: the control tester sends a test sample to a first port of the communication equipment, wherein the test sample comprises s communication source addresses; acquiring a capacity value n of the communication address table from the communication equipment, wherein the communication address table is used for storing the communication source address; updating the number of the communication source addresses until the capacity value of the communication address table and the number of the communication source addresses meet a first preset condition; acquiring a packet receiving rate of a third port from the communication equipment; and updating the number of the communication source addresses until the packet receiving rate of the third port meets a second preset condition, so that the influence of hash collision can be effectively avoided by testing the communication equipment, the testing efficiency is improved, the testing result approaches to a true value, and the testing error is reduced. The invention also provides a testing device, a medium and electronic equipment of the communication equipment.)
技术领域
本发明涉及通信设备测试的技术领域,具体而言,涉及一种通信设备的测试方法、装置、介质及电子设备。
背景技术
通信设备厂商或者通信设备购买方,会对通信设备的性能规格做详细的测试。目前,通信设备性能规格的测试方法为采用人工和测试仪表的方式,但是,以目前的方法对通信设备进行测试无法有效避免哈希冲突的影响,而且受人工效率的限制也无法进行大量测试使得测试结果逼近真实值,因此测试误差较大。
需要说明的是,在上述
背景技术
部分公开的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本发明实施例的目的在于提供一种通信设备的测试方法、装置、介质及电子设备,进而至少可以在一定程度上有效地避免哈希冲突的影响,而且提高了测试效率使得测试结果逼近真实值,进而降低测试误差。
本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。
根据本发明实施例的第一方面,提供了一种通信设备的测试方法,包括:控制测试仪,向所述通信设备的第一端口发送测试样本,所述测试样本中包含s个通信源地址,所述s大于零;从所述通信设备中获取所述通信地址表的容量值n,所述n大于零,所述通信地址表用于存储所述通信源地址;更新所述通信源地址的个数,直至所述通信地址表的容量值和所述通信源地址的个数满足第一预设条件为止;从所述通信设备中获取第三端口的收包速率;更新所述通信源地址的个数,直至所述第三端口的收包速率满足第二预设条件为止。
在本发明的一些实施例中,在从所述通信设备中获取所述第三端口的收包速率之前,该方法还包括:获取所述通信地址表;向所述测试仪发送所述通信地址表,所述通信地址表中包含n个通信源地址;控制所述测试仪,向所述通信设备的第二端口发送验证样本,以使得所述通信设备根据所述验证样本中的n个通信目的地址通过所述第一端口和/或所述第三端口转发所述验证样本中的数据,所述n个通信目的地址为所述通信地址表中的n个通信源地址。
在本发明的一些实施例中,在从所述通信设备中获取所述通信地址表的容量值n之后,该方法还包括:判断所述通信地址表的容量值和所述通信源地址的个数是否满足第一预设条件;如果所述通信地址表的容量值和所述通信源地址的个数不满足所述第一预设条件,触发更新机制;或者如果所述通信地址表的容量值和所述通信源地址的个数满足所述第一预设条件,设置验证样本中通信目的地址的个数为n。
在本发明的一些实施例中,更新所述通信源地址的个数,直至所述通信地址表的容量值和所述通信源地址的个数满足第一预设条件为止包括:采用二分法更新所述通信源地址的个数;将所述通信设备中通信地址表中的通信源地址删除;将更新后的通信源地址的个数发送至所述测试仪,并控制所述测试仪以更新后的通信源地址的个数向所述通信设备发送通信源地址;从所述通信设备中获取所述通信地址表的容量值n;循环上述步骤直至所述通信地址表的容量值和所述通信源地址的个数满足第一预设条件为止。
在本发明的一些实施例中,在从所述通信设备中获取第三端口的收包速率之后,该方法还包括:判断所述第三端口的收包速率是否满足所述第二预设条件;如果所述第三端口的收包速率不满足所述第二预设条件,触发更新机制;或者如果所述第三端口的收包速率满足所述第二预设条件,记录当前通信源地址的个数。
在本发明的一些实施例中,更新所述通信源地址的个数,直至所述第三端口的收包速率满足第二预设条件为止包括:采用二分法更新所述通信源地址的个数;将所述通信设备中通信地址表中的通信源地址删除;将更新后的通信源地址的个数发送至所述测试仪,并控制所述测试仪以更新后的通信源地址的个数向所述通信设备发送通信源地址;从所述通信设备中获取所述通信地址表的容量值n;判断所述通信地址表的容量值和所述通信源地址的个数是否满足第一预设条件,如果所述通信地址表的容量值和所述通信源地址的个数满足所述第一预设条件,设置验证样本中通信目的地址的个数为n;控制所述测试仪,向所述通信设备的第二端口发送所述验证样本,以使得所述通信设备根据所述验证样本中的n个通信目的地址通过所述第一端口和/或所述第三端口转发所述验证样本中的数据;从所述通信设备中获取所述第三端口的收包速率;循环上述步骤直至所述第三端口的收包速率满足所述第二预设条件为止。
根据本发明实施例的第二方面,提供了一种通信设备的测试装置,包括:第一控制模块,用于控制测试仪,向所述通信设备的第一端口发送测试样本,所述测试样本中包含s个通信源地址,所述s大于零;第一获取模块,用于从所述通信设备中获取所述通信地址表的容量值n,所述n大于零,所述通信地址表用于存储所述通信源地址;第一更新模块,用于更新所述通信源地址的个数,直至所述通信地址表的容量值和所述通信源地址的个数满足第一预设条件为止;第二获取模块,用于从所述通信设备中获取第三端口的收包速率;第二更新模块,用于更新所述通信源地址的个数,直至所述第三端口的收包速率满足第二预设条件为止。
在本发明的一些实施例中,在从所述通信设备中获取所述第三端口的收包速率之前,该装置还包括:第二获取模块,用于获取所述通信地址表;发送模块,用于向所述测试仪发送所述通信地址表,所述通信地址表中包含n个通信源地址;第二控制模块,用于控制所述测试仪,向所述通信设备的第二端口发送验证样本,以使得所述通信设备根据所述验证样本中的n个通信目的地址通过所述第一端口和/或所述第三端口转发所述验证样本中的数据,所述n个通信目的地址为所述通信地址表中的n个通信源地址。
在本发明的一些实施例中,在从所述通信设备中获取所述通信地址表的容量值n之后,该装置还包括:第一判断模块,用于判断所述通信地址表的容量值和所述通信源地址的个数是否满足第一预设条件;第一触发模块,如果所述通信地址表的容量值和所述通信源地址的个数不满足所述第一预设条件,触发更新机制;或者设置模块,如果所述通信地址表的容量值和所述通信源地址的个数满足所述第一预设条件,设置验证样本中通信目的地址的个数为n。
在本发明的一些实施例中,上述第一更新模块被配置为:采用二分法更新所述通信源地址的个数;将所述通信设备中通信地址表中的通信源地址删除;将更新后的通信源地址的个数发送至所述测试仪,并控制所述测试仪以更新后的通信源地址的个数向所述通信设备发送通信源地址;从所述通信设备中获取所述通信地址表的容量值n;循环上述步骤直至所述通信地址表的容量值和所述通信源地址的个数满足第一预设条件为止。
在本发明的一些实施例中,在从所述通信设备中获取第三端口的收包速率之后,该装置还包括:第二判断模块,用于判断所述第三端口的收包速率是否满足所述第二预设条件;第二触发模块,如果所述第三端口的收包速率不满足所述第二预设条件,触发更新机制;或者记录模块,如果所述第三端口的收包速率满足所述第二预设条件,记录当前通信源地址的个数。
在本发明的一些实施例中,上述第二更新模块被配置为:采用二分法更新所述通信源地址的个数;将所述通信设备中通信地址表中的通信源地址删除;将更新后的通信源地址的个数发送至所述测试仪,并控制所述测试仪以更新后的通信源地址的个数向所述通信设备发送通信源地址;从所述通信设备中获取所述通信地址表的容量值n;判断所述通信地址表的容量值和所述通信源地址的个数是否满足第一预设条件,如果所述通信地址表的容量值和所述通信源地址的个数满足所述第一预设条件,设置验证样本中通信目的地址的个数为n;控制所述测试仪,向所述通信设备的第二端口发送所述验证样本,以使得所述通信设备根据所述验证样本中的n个通信目的地址通过所述第一端口和/或所述第三端口转发所述验证样本中的数据;从所述通信设备中获取所述第三端口的收包速率;循环上述步骤直至所述第三端口的收包速率满足所述第二预设条件为止。
根据本发明实施例的第三方面,提供了一种通信设备的测试系统,所述测试系统包括服务器、测试仪和所述通信设备;其中,所述测试仪接收由所述服务器发送的控制指令,并根据所述控制指令向所述通信设备的第一端口发送测试样本,所述测试样本中包含s个通信源地址,所述s大于零;所述通信设备接收所述测试样本,并学习所述测试样本中的通信源地址,将学习到的通信源地址记录到通信地址表;所述服务器从所述通信设备中获取所述通信地址表的容量值n,所述n大于零;所述服务器更新所述通信源地址的个数,直至所述通信地址表的容量值和所述通信源地址的个数满足第一预设条件为止;所述服务器从所述通信设备中获取第三端口的收包速率;所述服务器更新所述通信源地址的个数,直至所述第三端口的收包速率满足第二预设条件为止。
根据本发明实施例的第四方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中第一方面所述的通信设备的测试方法。
根据本发明实施例的第五方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述实施例中第一方面所述的通信设备的测试方法。
本发明实施例提供的技术方案可以包括以下有益效果:
在本发明的一些实施例所提供的技术方案中,控制测试仪,向通信设备的第一端口发送测试样本,所述测试样本中包含s个通信源地址,从通信设备中获取通信地址表的容量值n,更新通信源地址的个数,直至通信地址表的容量值和通信源地址的个数满足第一预设条件为止,从通信设备中获取第三端口的收包速率,更新通信源地址的个数,直至第三端口的收包速率满足第二预设条件为止,以此方式对通信设备进行测试可以有效地避免哈希冲突的影响,而且提高了测试效率使得测试结果逼近真实值,进而降低测试误差。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示意性示出了根据本发明实施例的通信设备的测试系统的示意图;
图2示意性示出了根据本发明的实施例的通信设备的测试方法的流程图;
图3示意性示出了根据本发明的另一个实施例的通信设备的测试方法的流程图;
图4示意性示出了根据本发明的另一个实施例的通信设备的测试方法的流程图;
图5示意性示出了根据本发明的另一个实施例的通信设备的测试方法的流程图;
图6示意性示出了根据本发明的另一个实施例的通信设备的测试方法的流程图;
图7示意性示出了根据本发明的另一个实施例的通信设备的测试方法的流程图;
图8示意性示出了根据本发明的实施例的通信设备的测试装置的方框图;
图9示意性示出了根据本发明的另一个实施例的通信设备的测试装置的方框图;
图10示意性示出了根据本发明的另一个实施例的通信设备的测试装置的方框图;
图11示意性示出了根据本发明的另一个实施例的通信设备的测试装置的方框图;
图12示出了适于用来实现本发明实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
图1示出了根据本发明实施例的通信设备的测试系统的示意图。
如图1所示,通信设备的测试系统100包括服务器101、测试仪120和通信设备103。其中,通信设备的103包括第一端口1、第二端口2、第三端口3,通信设备130的三个端口分别与测试仪102相连。服务器101可以与通信设备103和测试仪102进行交互。例如,服务器101可以向测试仪102发送控制指令,以使得测试仪102可以根据该控制指令向通信设备103发送测试样本。再例如,服务器101还可以从通信设备103中获取通信地址表的容量值。
在本实施例中,在对通信设备103测试之前,需要对通信设备103进行配置。例如,服务器101通信设备远程下发配置,创建VLAN200,配置与测试仪102相连的第一端口1、第二端口2、第三端口3以ACCESS属性加入VLAN200。另外,服务器101可以通过通信设备103的show/display命令验证通信设备103的配置是否正确下发。例如,服务器101获取通信设备103的配置信息,然后采用正则表达式匹配的方式,验证是否与预期结果相同,如果相同,表示配置下发正确。
在本发明的一些实施例中,上述服务器101可以用于向测试仪102和通信设备103提供服务。上述测试仪102可以用于向通信设备103发送随机的通信源地址和通信目的地址。上述通信设备103可以用于接收测试仪102发送的通信源地址和通信目的地址,并对通信源地址进行学习,以及根据通信目的地址通过通信设备103的端口进行转发数据。在本实施例中,通信设备103可以是交互机、路由器等等,但不限于此。
在本发明的一些实施例中,测试仪102接收由服务器101发送的控制指令,并根据控制指令向通信设备103的第一端口1发送测试样本,所述测试样本中包含s个通信源地址,所述s大于零;通信设备103接收测试样本,并学习测试样本中的通信源地址,将学习到的通信源地址记录到通信地址表;服务器101从通信设备103中获取通信地址表的容量值n,所述n大于零;服务器101更新通信源地址的个数,直至所述通信地址表的容量值和所述通信源地址的个数满足第一预设条件为止;服务器101从通信设备103中获取第三端口3的收包速率;服务器101更新通信源地址的个数,直至第三端口3的收包速率满足第二预设条件为止。
图2示意性示出了根据本发明的实施例的通信设备的测试方法的流程图。
如图2所示,通信设备的测试方法可以包括步骤S210~步骤S250。
在步骤S210中,控制测试仪,向所述通信设备的第一端口发送测试样本,所述测试样本中包含s个通信源地址,所述s大于零。
在步骤S220中,从所述通信设备中获取所述通信地址表的容量值n,所述n大于零,所述通信地址表用于存储所述通信源地址。
在步骤S230中,更新所述通信源地址的个数,直至所述通信地址表的容量值和所述通信源地址的个数满足第一预设条件为止。
在步骤S240中,从所述通信设备中获取第三端口的收包速率。
在步骤S250中,更新所述通信源地址的个数,直至所述第三端口的收包速率满足第二预设条件为止。
该方法可以控制测试仪,向通信设备的第一端口发送测试样本,所述测试样本中包含s个通信源地址,从通信设备中获取通信地址表的容量值n,更新通信源地址的个数,直至通信地址表的容量值和通信源地址的个数满足第一预设条件为止,从通信设备中获取第三端口的收包速率,更新通信源地址的个数,直至第三端口的收包速率满足第二预设条件为止,以此方式对通信设备进行测试可以有效地避免哈希冲突的影响,而且提高了测试效率使得测试结果逼近真实值,进而降低测试误差。
在本发明的一个实施例中,上述测试样本中可以包含s个通信源地址。其中,s大于零。在本实施例中的s的初始值可以根据实际情况进行设置。例如,根据通信设备中芯片容量设置通信源地址的个数,即设置初始s。假设通信设备中芯片容量为m,根据通信设备中芯片容量可以将通信源地址的个数设置为2m,即s=2m。
在本发明的一个实施例中,上述通信源地址可以为MAC源地址、ARP源地址、路由源地址等等,但不限于此。
在本发明的一个实施例中,在通信设备接收到测试样本后,该通信设备可以学习该测试样本中的通信源地址,并将学习到的通信源地址记录到通信地址表中。服务器可以实时从通信设备中获取通信地址表的容量值n,待通信地址表的容量值n不再变化时,停止获取。在本实施例中的n可以指通信地址中包含通信源地址的个数。
在本发明的一个实施例中,更新通信源地址的个数,直至通信地址表的容量值和通信源地址的个数满足第一预设条件为止。其中,第一预设条件可以是n=s或n=s,且1-abs(pre_n/n-1)≥99.9%。在本实施实例中,当n=s时,停止更新通信源地址的个数,即停止更新s。或者,当n=s,且1-abs(pre_n/n-1)≥99.9%时,停止更新通信源地址的个数,即停止更新s。其中,pre_n在整个循环测试流程中为上一次测试得到的通信设备中通信地址表的容量值n。一般地,pre_n的初始值设置为0。
在本发明的一个实施例中,上述第三端口的收包速率可以指通过通信设备的第三端口转发数据的转发率。如果没有通过通信设备的第三端口转发数据,则将第三端口的收包速率设置为零。
在本发明的一个实施例中,更新所述通信源地址的个数,直至所述第三端口的收包速率满足第二预设条件为止。其中,第二预设条件为TC3_Rx_Rate=0,或TC3_Rx_Rate=0,且1-abs(pre_s/s-1)≥99.9%。TC3_Rx_Rate为第三端口的收包速率,pre_s在整个循环测试流程中为上一次测试验证样本中通信目的地址的个数,当通信地址表的容量值和通信源地址的个数满足第一预设条件时,pre_s=n。一般地,pre_s的初始值设置为0。在本实施实例中,当TC3_Rx_Rate=0时,停止更新通信源地址的个数,即停止更新s。或者,当TC3_Rx_Rate=0,且1-abs(pre_s/s-1)≥99.9%时,停止更新通信源地址的个数,即停止更新s。
图3示意性示出了根据本发明的另一个实施例的通信设备的测试方法的流程图。
如图3所示,在上述步骤S240之前,上述方法还包括步骤S310~步骤S330。
在步骤S310中,获取所述通信地址表。
在步骤S320中,向所述测试仪发送所述通信地址表,所述通信地址表中包含n个通信源地址。
在步骤S330中,控制所述测试仪,向所述通信设备的第二端口发送验证样本,以使得所述通信设备根据所述验证样本中的n个通信目的地址通过所述第一端口和/或所述第三端口转发所述验证样本中的数据,所述n个通信目的地址为所述通信地址表中的n个通信源地址。
该方法可以将通信地址表中的通信源地址作为验证样本中的通信目的地址,这样有助于通信设备根据验证样本中的n个通信目的地址通过第一端口和/或第三端口转发验证样本中的数据,以便于获取第三端口的收包率。
在本发明的一个实施例中,上述通信地址表用于存储通信源地址和端口标识,具体如表1所示:
表1
通信源地址
端口标识
MAC源地址A
Port1
MAC源地址B
Port1
MAC源地址C
Port1
如表1所示,通信地址表的容量值n=3,由于测试样本是通过通信设备的第一端口接收的,因此表1中的端口标识为第一端口的标识,即Port1。
在本发明的一个实施例中,当测试仪接收到通信地址表时,可以将该通信地址表中的通信源地址作为验证样本中的通信目的地址,并控制测试仪向通信设备发送该验证样本。当通信设备接收到验证样本时,可以根据验证样本中的通信目的地址查询通信地址表,并根据查询结果通过第一端口和/或第三端口转发验证样本的数据。
图4示意性示出了根据本发明的另一个实施例的通信设备的测试方法的流程图。
如图4所示,在步骤S220之后,上述方法还可以包括步骤S410~步骤S430。
在步骤S410中,判断所述通信地址表的容量值和所述通信源地址的个数是否满足第一预设条件。
在步骤S420中,如果所述通信地址表的容量值和所述通信源地址的个数不满足所述第一预设条件,触发更新机制。或者,在步骤S430中,如果所述通信地址表的容量值和所述通信源地址的个数满足所述第一预设条件,设置验证样本中通信目的地址的个数为n。
该方法可以判断通信地址表的容量值和通信源地址的个数是否满足第一预设条件,如果通信地址表的容量值和通信源地址的个数不满足所述第一预设条件,触发更新机制。或者,如果通信地址表的容量值和通信源地址的个数满足第一预设条件,设置验证样本中通信目的地址的个数为n,以此方式可以快速准确的触发更新机制或将验证样本中通信目的地址的个设置为n。
在本发明的一个实施例中,如果通信地址表的容量值和通信源地址的个数不满足所述第一预设条件,触发更新机制。例如,如果n小于s时,触发更新机制,执行更新步骤,即更新通信源地址的个数,直至通信地址表的容量值和通信源地址的个数满足第一预设条件为止。再例如,如果n=s,且1-abs(pre_n/n-1)<99.9%时,触发更新机制,执行更新步骤,即更新通信源地址的个数,直至通信地址表的容量值和通信源地址的个数满足第一预设条件为止。在本实施例中,99.9%为预设的测试精度。该测试精度可以根据实际需求进行调整。
图5示意性示出了根据本发明的另一个实施例的通信设备的测试方法的流程图。
如图5所示,上述步骤S230具体可以包括步骤S510~步骤S550。
在步骤S510中,采用二分法更新所述通信源地址的个数。
在步骤S520中,将所述通信设备中通信地址表中的通信源地址删除。
在步骤S530中,将更新后的通信源地址的个数发送至所述测试仪,并控制所述测试仪以更新后的通信源地址的个数向所述通信设备发送通信源地址。
在步骤S540中,从所述通信设备中获取所述通信地址表的容量值n。
在步骤S550中,循环步骤S510~步骤S540直至所述通信地址表的容量值和所述通信源地址的个数满足第一预设条件为止。
该方法可以通过循环步骤S510~步骤S540来更新通信源地址的个数,直至通信地址表的容量值和通信源地址的个数满足第一预设条件为止,以此方式可以快速的使通信地址表的容量值和通信源地址的个数满足第一预设条件,提升了测试效率。
在本发明的一个实施例中,采用二分法更新通信源地址的个数,这样可以将通信设备的性能规格精度控制在期望值之内。例如,根据通信源地址的个数的最小值min_s和/或通信源地址的个数的最大值max_s更新通信源地址的个数。在本实施例中,min_s的初始值为0,max_s的初始值为2m,s的初始值为2m。
具体地,当n<s时,更新s=(min_s+s)/2,其中,min_s为上一次测试不足满足第一预设条件(n=s,且1-abs(pre_n/n-1)<99.9%)时更新的min_s。另外,当n<s时,还需要将max_s更新为当前的s。
当时n=s,且1-abs(pre_n/n-1)<99.9%时,更新s=(max_s+s)/2,其中,max_s为上一次测试不足满足第一预设条件(n<s)时更新的max_s。另外,当n=s,且1-abs(pre_n/n-1)<99.9%时,还需要将min_s更新为当前的s。
在本发明的一个实施例中,当通信地址表的容量值和通信源地址的个数满足第一预设条件时,将标志位flag设置为1,以及将上述pre_s设置为当前通信地址表的容量值,即设置为当前的n。相反的,当通信地址表的容量值和通信源地址的个数不满足第一预设条件时,将标志位flag设置为0,以及将上述pre_n设置为当前通信地址表的容量值,即设置为当前的n。在本实施例中,flag=1,表示通信地址表的容量值和通信源地址的个数满足第一预设条件。flag=0,表示通信地址表的容量值和通信源地址的个数不满足第一预设条件。
图6示意性示出了根据本发明的另一个实施例的通信设备的测试方法的流程图。
如图6所示,在上述步骤240之后,上述方法还包括步骤S610~步骤S630。
在步骤S610中,判断所述第三端口的收包速率是否满足所述第二预设条件。
在步骤S620中,如果所述第三端口的收包速率不满足所述第二预设条件,触发更新机制。或者,在步骤S630中,如果所述第三端口的收包速率满足所述第二预设条件,记录当前通信源地址的个数。
该方法可以判断第三端口的收包速率是否满足第二预设条件,如果第三端口的收包速率不满足第二预设条件,触发更新机制。或者,如果第三端口的收包速率满足第二预设条件,记录当前通信源地址的个数,以此方式可以快速准确的触发更新机制或记录当前通信源地址的个数。
在本发明的一个实施例中,如果第三端口的收包速率不满足第二预设条件,触发更新机制。例如,如果TC3_Rx_Rate>0时,触发更新机制,执行更新步骤,即更新通信源地址的个数,直至第三端口的收包速率满足第二预设条件为止。再例如,如果TC3_Rx_Rate=0,且1-abs(pre_s/s-1)<99.9%时,触发更新机制,执行更新步骤,即更新通信源地址的个数,直至第三端口的收包速率满足第二预设条件为止。在本实施例中,99.9%为预设的测试精度。该测试精度可以根据实际需求进行调整。
在本发明的一个实施例中,当TC3_Rx_Rate=0,且1-abs(pre_s/s-1≥99.9%时,上述当前通信源地址的个数可以视为无限逼近通信设备的真是性能,在这种情况下,当前通信源地址的个数可以作为通信设备最大限度能承受的通信源地址的个数。
图7示意性示出了根据本发明的另一个实施例的通信设备的测试方法的流程图。
如图7所示,上述步骤S250具体可以包括步骤S710~步骤S780。
在步骤S710中,采用二分法更新所述通信源地址的个数。
在步骤S720中,将所述通信设备中通信地址表中的通信源地址删除。
在步骤S730中,将更新后的通信源地址的个数发送至所述测试仪,并控制所述测试仪以更新后的通信源地址的个数向所述通信设备发送通信源地址。
在步骤S740中,从所述通信设备中获取所述通信地址表的容量值n。
在步骤S750中,判断所述通信地址表的容量值和所述通信源地址的个数是否满足第一预设条件,如果所述通信地址表的容量值和所述通信源地址的个数满足所述第一预设条件,设置验证样本中通信目的地址的个数为n。
在步骤S760中,控制所述测试仪,向所述通信设备的第二端口发送所述验证样本,以使得所述通信设备根据所述验证样本中的n个通信目的地址通过所述第一端口和/或所述第三端口转发所述验证样本中的数据。
在步骤S770中,从所述通信设备中获取所述第三端口的收包速率。
在步骤S780中,循环步骤S710~步骤S770直至所述第三端口的收包速率满足所述第二预设条件为止。
该方法可以通过循环步骤S710~步骤S770来更新通信源地址的个数,直至第三端口的收包率满足第二预设条件为止,以此方式可以快速的使第三端口的收包率满足第二预设条件,提升了测试效率。
在本发明的一个实施例中,采用二分法更新通信源地址的个数,这样可以将通信设备的性能规格精度控制在期望值之内。例如,根据通信源地址的个数的最小值min_s和/或通信源地址的个数的最大值max_s更新通信源地址的个数。在本实施例中,min_s的初始值为0,max_s的初始值为2m,s的初始值为2m。
具体地,当TC3_Rx_Rate>0时,更新s=(min_s+s)/2,其中,min_s为上一次测试不足满足第二预设条件(TC3_Rx_Rate=0,且1-abs(pre_s/s-1)<99.9%)时更新的min_s。另外,当TC3_Rx_Rate>0时,还需要将max_s更新为当前的s。
当时TC3_Rx_Rate=0,且1-abs(pre_s/s-1)<99.9%时,更新s=(max_s+s)/2,其中,max_s为上一次测试不足满足第二预设条件(TC3_Rx_Rate>0)时更新的max_s。另外,当TC3_Rx_Rate=0,且1-abs(pre_s/s-1)<99.9%时,还需要将min_s更新为当前的s。
通过本发明提供的通信设备的测试方法可以对通信设备的性能数值(即通信源地址的个数)进行大量测试,这样可以提升效率,使得测试结果无限逼近通信设备的真实性能,而且还设置了符合需求的测试精度,进一步提高了测试精度。例如,通过图5实施例描述的循环流程或图7实施例描述的循环流程可以实现快速更新通信源地址的个数,这样有助于提升效率,使得测试结果无限逼近通信设备的真实性能,而且还设置了符合需求的测试精度,进一步提高了测试精度。
图8示意性示出了根据本发明的实施例的通信设备的测试装置的方框图。
如图8所示,通信设备的测试装置800包括第一控制模块801、第一获取模块802、第一更新模块803、第二获取模块804和第二更新模块805。
具体地,第一控制模块801,用于控制测试仪,向所述通信设备的第一端口发送测试样本,所述测试样本中包含s个通信源地址,所述s大于零。
第一获取模块802,用于从所述通信设备中获取所述通信地址表的容量值n,所述n大于零,所述通信地址表用于存储所述通信源地址。
第一更新模块803,用于更新所述通信源地址的个数,直至所述通信地址表的容量值和所述通信源地址的个数满足第一预设条件为止。
第二获取模块804,用于从所述通信设备中获取第三端口的收包速率。
第二更新模块805,用于更新所述通信源地址的个数,直至所述第三端口的收包速率满足第二预设条件为止。
该通信设备的测试装置800可以控制测试仪,向通信设备的第一端口发送测试样本,所述测试样本中包含s个通信源地址,从通信设备中获取通信地址表的容量值n,更新通信源地址的个数,直至通信地址表的容量值和通信源地址的个数满足第一预设条件为止,从通信设备中获取第三端口的收包速率,更新通信源地址的个数,直至第三端口的收包速率满足第二预设条件为止,以此方式对通信设备进行测试可以有效地避免哈希冲突的影响,而且提高了测试效率使得测试结果逼近真实值,进而降低测试误差。
根据本发明的实施例,该通信设备的测试装置800可以用于实现图2实施例描述的通信设备的测试方法。
在本发明的一些实施例中,上述第一更新模块803被配置为:采用二分法更新所述通信源地址的个数;将所述通信设备中通信地址表中的通信源地址删除;将更新后的通信源地址的个数发送至所述测试仪,并控制所述测试仪以更新后的通信源地址的个数向所述通信设备发送通信源地址;从所述通信设备中获取所述通信地址表的容量值n;循环上述步骤直至所述通信地址表的容量值和所述通信源地址的个数满足第一预设条件为止。在本实施例中,上述第一更新模块803可以用于实现图5实施例描述的通信设备的测试方法。
在本发明的一些实施例中,上述第二更新模块805被配置为:采用二分法更新所述通信源地址的个数;将所述通信设备中通信地址表中的通信源地址删除;将更新后的通信源地址的个数发送至所述测试仪,并控制所述测试仪以更新后的通信源地址的个数向所述通信设备发送通信源地址;从所述通信设备中获取所述通信地址表的容量值n;判断所述通信地址表的容量值和所述通信源地址的个数是否满足第一预设条件,如果所述通信地址表的容量值和所述通信源地址的个数满足所述第一预设条件,设置验证样本中通信目的地址的个数为n;控制所述测试仪,向所述通信设备的第二端口发送所述验证样本,以使得所述通信设备根据所述验证样本中的n个通信目的地址通过所述第一端口和/或所述第三端口转发所述验证样本中的数据;从所述通信设备中获取所述第三端口的收包速率;循环上述步骤直至所述第三端口的收包速率满足所述第二预设条件为止。在本实施例中,上述第二更新模块805可以用于实现图7实施例描述的通信设备的测试方法。
图9示意性示出了根据本发明的另一个实施例的通信设备的测试装置的方框图。
如图9所示,上述通信设备的测试装置800还可以包括第二获取模块806、发送模块807和第二控制模块808。
具体地,第二获取模块806,用于获取所述通信地址表。
发送模块807,用于向所述测试仪发送所述通信地址表,所述通信地址表中包含n个通信源地址。
第二控制模块808,用于控制所述测试仪,向所述通信设备的第二端口发送验证样本,以使得所述通信设备根据所述验证样本中的n个通信目的地址通过所述第一端口和/或所述第三端口转发所述验证样本中的数据,所述n个通信目的地址为所述通信地址表中的n个通信源地址。
该通信设备的测试装置800可以将通信地址表中的通信源地址作为验证样本中的通信目的地址,这样有助于通信设备根据验证样本中的n个通信目的地址通过第一端口和/或第三端口转发验证样本中的数据,以便于获取第三端口的收包率。
根据本发明的实施例,该通信设备的测试装置800可以用于实现图3实施例描述的通信设备的测试方法。
图10示意性示出了根据本发明的另一个实施例的通信设备的测试装置的方框图。
如图10所示,上述通信设备的测试装置800还可以包括第一判断模块809、第一触发模块810和设置模块811。
具体地,第一判断模块809,用于判断所述通信地址表的容量值和所述通信源地址的个数是否满足第一预设条件。
第一触发模块810,如果所述通信地址表的容量值和所述通信源地址的个数不满足所述第一预设条件,触发更新机制;或者设置模块811,如果所述通信地址表的容量值和所述通信源地址的个数满足所述第一预设条件,设置验证样本中通信目的地址的个数为n。
该通信设备的测试装置800可以判断通信地址表的容量值和通信源地址的个数是否满足第一预设条件,如果通信地址表的容量值和通信源地址的个数不满足所述第一预设条件,触发更新机制。或者,如果通信地址表的容量值和通信源地址的个数满足第一预设条件,设置验证样本中通信目的地址的个数为n,以此方式可以快速准确的触发更新机制或将验证样本中通信目的地址的个设置为n。
根据本发明的实施例,该通信设备的测试装置800可以用于实现图4实施例描述的通信设备的测试方法。
图11示意性示出了根据本发明的另一个实施例的通信设备的测试装置的方框图。
如图11所示,上述通信设备的测试装置800还可以包括第二判断模块812、第二触发模块813和记录模块814。
具体地,第二判断模块812,用于判断所述第三端口的收包速率是否满足所述第二预设条件。
第二触发模块813,如果所述第三端口的收包速率不满足所述第二预设条件,触发更新机制;或者记录模块814,如果所述第三端口的收包速率满足所述第二预设条件,记录当前通信源地址的个数。
该通信设备的测试装置800可以判断第三端口的收包速率是否满足第二预设条件,如果第三端口的收包速率不满足第二预设条件,触发更新机制。或者,如果第三端口的收包速率满足第二预设条件,记录当前通信源地址的个数,以此方式可以快速准确的触发更新机制或记录当前通信源地址的个数。
根据本发明的实施例,该通信设备的测试装置800可以用于实现图6实施例描述的通信设备的测试方法。
由于本发明的示例实施例的通信设备的测试装置800的各个模块可以用于实现上述2~图7描述的通信设备的测试方法的示例实施例的步骤,因此对于本发明装置实施例中未披露的细节,请参照本发明上述的通信设备的测试方法的实施例。
可以理解的是,第一控制模块801、第一获取模块802、第一更新模块803、第二获取模块804、第二更新模块805、第二获取模块806、发送模块807、第二控制模块808、第一判断模块809、第一触发模块810、设置模块811、第二判断模块812、第二触发模块813、以及记录模块814可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本发明的实施例,第一控制模块801、第一获取模块802、第一更新模块803、第二获取模块804、第二更新模块805、第二获取模块806、发送模块807、第二控制模块808、第一判断模块809、第一触发模块810、设置模块811、第二判断模块812、第二触发模块813、以及记录模块814中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以以对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式的适当组合来实现。或者,第一控制模块801、第一获取模块802、第一更新模块803、第二获取模块804、第二更新模块805、第二获取模块806、发送模块807、第二控制模块808、第一判断模块809、第一触发模块810、设置模块811、第二判断模块812、第二触发模块813、以及记录模块814中的至少一个可以至少被部分地实现为计算机程序模块,当该程序被计算机运行时,可以执行相应模块的功能。
下面参考图12,其示出了适于用来实现本发明实施例的电子设备的计算机系统1200的结构示意图。图12示出的电子设备的计算机系统1200仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图12所示,计算机系统1200包括中央处理单元(CPU)1201,其可以根据存储在只读存储器(ROM)1202中的程序或者从存储部分1208加载到随机访问存储器(RAM)1203中的程序而执行各种适当的动作和处理。在RAM 1203中,还存储有系统操作所需的各种程序和数据。CPU 1201、ROM 1202以及RAM 1203通过总线1204彼此相连。输入/输出(I/O)接口1205也连接至总线1204。
以下部件连接至I/O接口1205:包括键盘、鼠标等的输入部分1206;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1207;包括硬盘等的存储部分1208;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1209。通信部分1209经由诸如因特网的网络执行通信处理。驱动器1210也根据需要连接至I/O接口1205。可拆卸介质1211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1210上,以便于从其上读出的计算机程序根据需要被安装入存储部分1208。
特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1209从网络上被下载和安装,和/或从可拆卸介质1211被安装。在该计算机程序被中央处理单元(CPU)1201执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如上述实施例中所述的通信设备的测试方法。
例如,所述的电子设备可以实现如图2中所示的:在步骤S210中,控制测试仪,向所述通信设备的第一端口发送测试样本,所述测试样本中包含s个通信源地址,所述s大于零。在步骤S220中,从所述通信设备中获取所述通信地址表的容量值n,所述n大于零,所述通信地址表用于存储所述通信源地址。在步骤S230中,更新所述通信源地址的个数,直至所述通信地址表的容量值和所述通信源地址的个数满足第一预设条件为止。在步骤S240中,从所述通信设备中获取第三端口的收包速率。在步骤S250中,更新所述通信源地址的个数,直至所述第三端口的收包速率满足第二预设条件为止。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本发明实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。