1.本技术实施例涉及
旁路设备rfc2544吞吐性能
测试技术领域,特别涉及一种自动化测试旁路设备吞吐性能的测试方法及测试系统。
背景技术:
2.通常像交换机等转发设备可通过testcenter等专业仪表进行rfc2544吞吐性能的测试,仪表会根据测试结果出具一份测试报告。其原理:如图1所示组网,testcenter仪表同待测试交换机串行连接,通常rfc2544吞吐量测试方法是根据二分法来界定吞吐量。仪表会先以100%速率通过仪表port1/1发送设置的固定
字节大小的udp报文20s,发送完后再比对port1/2的收包统计,若与port1/1发送报文的统计不一致,则调整发包速率为50%再次发送,若发送一致,则再调整发包速率为75%,不断通过二分法到当前固定字节发送不丢包的最大吞吐值。并且通常rfc2544会测试一组固定字节的吞吐,一般为64、128、256、512、1024、1280和1518。针对每个不同的字节值测试出一个吞吐性能值,最终仪表会根据测试过程中统计及分析出的延迟等其它性能指标出具一份rfc2544的性能测试报告,从报告中我们能获得待测设备各个测试字节的吞吐性能指标。
3.但旁路设备由于只接收报文进行处理,并不进行报文的转发,故传统的使用专业仪表进行设备rfc2544吞吐性能的测试方法将不再适用。故针对这种旁路部署的设备,就需要一种新的测试方法来进行吞吐性能的测试。
技术实现要素:
4.本技术提供了一种自动化测试旁路设备吞吐性能的测试方法及测试系统,通过该自动化测试用例的套件集合,可模拟转发设备rfc2544吞吐的测试方法对旁路设备进行吞吐性能测试,从而得到旁路设备的吞吐性能值,解决了旁路设备无法测试吞吐性能的痛点。
5.第一方面,本技术提供了一种自动化测试旁路设备吞吐性能的测试方法,
所述测试方法用于对被测旁路设备指定发包字节的最佳发包速率进行测试,若干指定发包字节构成预测试字节合集,所述测试方法包括:
6.响应于接收到的测试指令,执行测试脚本;
7.向发包服务器发送发包指令,所述发包指令包括指定发包字节、第一发包速率和发包时间,其中,指定发包字节为所述预测试字节合集中的任一项;
8.获取发包服务器根据所述发包指令向被测旁路设备所发送的发包数p3;获取被测旁路设备对发包服务器所发包的硬件收包数p1和软件处理包数p2;
9.将p1和p2分别与p3进行对比,当p1和p2均与p3相等时,生成指定发包字节测试通过的测试结果。
10.在一些实施例中,所述方法还包括:
11.若p1和p2中存在与p3不相等项,则生成指定发包字节测试不通过的测试结果;
12.同时,重新执行向发包服务器发送发包指令的步骤,所述发包指令包括指定发包
字节、第二发包速率和发包时间,其中,第二发包速率的数值与第一发包速率的数值不同。
13.在一些实施例中,所述第二发包速率为硬件收包成功率和软件处理成功率中最小值。
14.在一些实施例中,所述发包指令被配置为控制发包服务器在每次向被测旁路设备发包前,均清除发包服务器自身所缓存的发包接口统计;
15.所述发包指令还被配置为控制被测旁路设备在每次接收发包服务器所发包前,均清除被测旁路设备自身所缓存的硬件收包数和软件处理包数。
16.在一些实施例中,所述方法还包括:
17.对所述预测试字节合集内的全部指定发包字节逐一测试,直至所述预测试字节合集内的全部指定发包字节均测试通过。
18.在一些实施例中,所述方法还包括:
19.当监测到所述预测试字节合集内的全部指定发包字节均测试通过后,将测试统计结果生成测试报告,并以邮件形式发送至外部终端。
20.第二方面,本技术提供了一种自动化测试旁路设备吞吐性能的测试系统,所述测试系统包括:被测旁路设备、交换机sw、发包服务器和管理pc,所述管理pc通过所述交换机sw分别连接所述发包服务器和所述被测旁路设备,所述发包服务器向所述被测旁路设备发包;
21.所述管理pc被配置为:
22.响应于接收到的测试指令,执行测试脚本;
23.通过交换机sw向发包服务器发送发包指令,所述发包指令包括指定发包字节、第一发包速率和发包时间,其中,指定发包字节为所述预测试字节合集中的任一项;
24.通过交换机sw获取发包服务器根据所述发包指令向被测旁路设备所发送的发包数p3;获取被测旁路设备对发包服务器所发包的硬件收包数p1和软件处理包数p2;
25.将p1和p2分别与p3进行对比,当p1和p2均与p3相等时,生成指定发包字节测试通过的测试结果。
26.在一些实施例中,所述管理pc还被配置为:
27.若p1和p2中存在与p3不相等项,则生成指定发包字节测试不通过的测试结果;
28.同时,重新执行向发包服务器发送发包指令的步骤,所述发包指令包括指定发包字节、第二发包速率和发包时间,其中,第二发包速率的数值与第一发包速率的数值不同;
29.所述第二发包速率为硬件收包成功率和软件处理成功率中最小值。
30.在一些实施例中,所述管理pc还被配置为:
31.当监测到所述预测试字节合集内的全部指定发包字节均测试通过后,将测试统计结果生成测试报告,并以邮件形式发送至外部终端。
32.本技术提供的一种自动化测试旁路设备吞吐性能的测试方法及测试系统,具有下列有益效果:
33.本技术通过该自动化测试用例的套件集合,可模拟转发设备rfc2544吞吐的测试方法对旁路设备进行吞吐性能测试,从而得到旁路设备的吞吐性能值,解决了旁路设备无法测试吞吐性能的痛点,通过将被测旁路设备、交换机sw、发包服务器和管理pc等硬件组网,管理pc内储存由测试脚本,整个测试过程均通过python自动化实现,减少手工测试的反
复;在测试过程中,发包速率选用硬件收包成功率和软件处理成功率中最小值,相比二分法能更快到最佳吞吐值;在测试后,管理pc将所记录的测试过程和测试结果生成测试报告,并以邮件形式发送至外部终端,用户可通过外部电脑、手机等终端查看测试过程和测试结果,并可针对测试结果进行手工抽测,选取其中某一固定字节进行手工测试,确认吞吐性能值。
附图说明
34.图1为常规方法的组网示意图;
35.图2为本技术中测试系统硬件组成示意图;
36.图3为本技术中测试方法流程图;
37.图4为本技术中第二发包速率计算方法流程图。
38.图中:1、管理pc,2、交换机sw,3、被测旁路设备,4、发包服务器。
具体实施方式
39.为了使本技术领域的人员更好地理解本技术中的技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
40.rfc2544是用于测试和测量网络设备的性能的标准,该标准在1999年被规定,在rfc2544中定义了6个测试:吞吐量,延迟,丢包率,背靠背测试,复位测试和系统恢复。
41.请参阅图1所示,现今的rfc2544吞吐性能测试方法为:将专业测试仪表与待测试交换机串行连接,专业测试仪表会先以100%速率通过仪表接口1/1向待测试交换机发送设置的固定字节大小的udp报文b1,待测试交换机接收udp报文b1,并储存为udp报文b2,发送完后,专业测试仪表在通过接口1/2接收由待测试交换机发出的udp报文b2,专业测试仪表将发出的udp报文b1与接收的udp报文b2进行对比,从而判断当前发送速率是否为最优值;
42.本技术所测试的旁路设备(如安博通鹰眼全流量分析系统),由于只接收报文进行处理,并不进行报文的转发,若仍采用上述专业测试仪表进行rfc2544吞吐性能测试,则专业测试仪表无法获得旁路设备所发出的udp报文,进而无法对比,无法判断当前发送速率是否为最优值,因此,传统的使用专业仪表进行设备rfc2544吞吐性能的测试方法将不适用于旁路设备。
43.请参见图2所示,本技术公开了一种自动化测试旁路设备rfc2544吞吐性能的测试系统,所述测试系统包括被测旁路设备3、交换机sw2、发包服务器4和管理pc1,所述管理pc1通过所述交换机sw2分别连接所述发包服务器4和所述被测旁路设备3,所述发包服务器4向所述被测旁路设备3发包。
44.管理pc1内储存由测试脚本,当管理pc1接收到测试指令后,自动执行测试,到被测旁路设备3的最佳吞吐值,即用于对被测旁路设备3的指定发包字节的最佳发包速率。
45.在测试前,请参阅图2所示,将被测旁路设备3、交换机sw2、发包服务器4和管理pc1等硬件组网:将管理pc1通过ssh连接控制被测旁路设备3;管理pc1通过ssh连接发包服务器
4,通过python程序控制dpdktrex软件按一定速率生成固定字节的udp数据包;发包服务器4设置源ip变化、目的ip固定,源端口从1025开始递增20000个,目的端口从1025开始,递增100个。
46.执行测试时,首先,配置需要进行吞吐性能测试的字节,默认测试64、128、256、512、1024、1280和1518字节的吞吐性能值,用户也可指定发包字节,若干指定发包字节构成预测试字节合集;
47.请参阅图3所示,管理pc1执行测试脚本,向发包服务器4发送发包指令,发包指令包括指定发包字节、第一发包速率和发包时间,其中,指定发包字节为所述预测试字节合集中的任一项;
48.在对某个指定发包字节进行测试时,首次测试的发包速率为100%,以指定发包字节为64字节,发包时间为20s为例,则上述步骤为:管理pc1控制发包服务器4向被测旁路设备3以64字节(包含crc)以100%速率发送udp报文,持续20s。
49.获取发包服务器4根据所述发包指令向被测旁路设备3所发送的发包数p3;获取被测旁路设备3对发包服务器4所发包的硬件收包数p1和软件处理包数p2,将p1和p2分别与p3进行对比,当p1和p2均与p3相等时,生成指定发包字节测试通过的测试结果;
50.在发包服务器4向被测旁路设备3发包的同时,被测旁路设备3的硬件同步收包,被测旁路设备3的软件同步处理包,在发包时间20s结束后,管理pc1获取发包服务器420s内的发包数p3,例如发包数为30,即p3=30;管理pc1获取被测旁路设备320s内的硬件收包数p1和软件处理包数p2,例如硬件收包数为30,软件处理包数为30,则p1=p2=p3=30,则认为测试通过,即该被测旁路设备3在64字节的最佳发包速率为100%。
51.若p1和p2中存在与p3不相等项,则生成指定发包字节测试不通过的测试结果;
52.例如,管理pc1获取发包服务器420s内的发包数为30,即p3=30;管理pc1获取被测旁路设备320s内的硬件收包数为30和软件处理包数为29,即p1=30,p2=29,此时,p2≠p3,即p1和p2中存在与p3不相等项,则认为测试不通过。
53.当测试不通过,管理pc1将第一发包速率调整为第二发包速率,并重新测试;
54.管理pc1再次向发包服务器4发送发包指令,发包指令包括指定发包字节、第二发包速率和发包时间,其中,第二发包速率的数值与第一发包速率的数值不同。
55.请参阅图4所示,第二发包速率为硬件收包成功率和软件处理成功率中最小值,具体计算方法为:
56.计算硬件收包成功率,计算公式为:
57.η1=(p1/p3)100%
58.式中:η1为硬件收包成功率,p1为被测旁路设备3上读取接口的硬件收包数,p3为发包服务器4的发包数。
59.计算软件处理成功率,计算公式为:
60.η2=(p2/p3)100%
61.式中:η2为软件处理成功率,p2为被测旁路设备3上的软件处理包数,p3为发包服务器4的发包数。
62.以发包数为30,硬件收包数为30,软件处理包数为29为例,则:
63.η1=(30/30)
×
100%=100%;
64.η2=(29/30)
×
100%=96.66%;
65.η1>η2;
66.则硬件收包成功率η1为100%,软件处理成功率η2为96.66%,因η1>η2,所以第二发包速率等于η1,第二发包速率为96.66%,管理pc1控制发包服务器4向被测旁路设备3以64字节(包含crc)以96.66%速率发送udp报文,持续20s,再次测试,重复上述测试步骤,直至得到64字节的最佳发包速率。
67.现有的rfc2544吞吐性能测试方法,最佳发送速率是通过二分法不断测试寻的,具体如下:
68.仪表会先以100%速率通过仪表port1/1发送设置的固定字节大小的udp报文20s,发送完后再比对port1/2的收包统计,若与port1/1发送报文的统计不一致,则调整发送速率为50%再次发送,若发送一致,则再调整发送速率为75%,不断通过二分法到当前固定字节发送不丢包的最大吞吐值;
69.由上可知,二分法是不断区间内选值测试,不算缩小区间,从而获得固定字节的最佳发包速率,整个测试过程较为繁琐,所需时间较长,效率较低。
70.而本技术的测试速率是根据本测试旁路设备的硬件收包成功率和软件处理成功率确定的,第二发包速率为硬件收包成功率和软件处理成功率中最小值,通常两到三次测试即可确定固定字节的最佳发包速率,相比与二分法能更快到最佳吞吐值。
71.请参阅图3所示,所述发包指令被配置为控制发包服务器4在每次向被测旁路设备3发包前,均清除发包服务器4自身所缓存的发包接口统计;
72.所述发包指令还被配置为控制被测旁路设备3在每次接收发包服务器4所发包前,均清除被测旁路设备3自身所缓存的硬件收包数和软件处理包数;
73.即管理pc1控制发包服务器4在每次发包前均清除发包服务器4自身所缓存的上一次发包统计数,从而避免影响后续测试,同理,管理pc1控制被测旁路设备3在每次收包前,均清除被测旁路设备3自身所缓存的上一次硬件收包统计数和上一次软件处理包统计数,从而保证数据获取的准确性,保证测试的准确性。
74.对所述预测试字节合集内的全部指定发包字节逐一测试,直至所述预测试字节合集内的全部指定发包字节均测试通过;
75.当对64字节的最佳发包速率测试通过后,再采用上述测试方法,对预测试字节合集内的其它未测试字节进行测试,直至预测试字节合集内的指定发包字节全部测试完成,若用户没有设置指定测试,则默认测试64、128、256、512、1024、1280和1518字节的吞吐性能值,且测试顺序可为随机抽取,也可为按序测试,顺序可为由大到小,也可为由小至大。
76.当监测到所述预测试字节合集内的全部指定发包字节均测试通过后,将测试统计结果生成测试报告,并以邮件形式发送至外部终端;
77.当管理pc1检测到预测试字节合集内的指定发包字节全部测试完成,或默认测试字节全部测试完成,管理pc1记录测试过程、测试结果、以及每次测试中的发包服务器4发包数、被测旁路设备3的硬件收包数和软件处理包数,并将记录生成测试报告,并以邮件形式发送至外部终端;
78.用户可通过外部电脑、手机等终端查看测试过程和测试结果,并可针对测试结果进行手工抽测,选取其中某一固定字节进行手工测试,确认吞吐性能值,从而验真测试的准
确性。
79.本技术所提供的一种自动化测试旁路设备rfc2544吞吐性能的测试系统具有以下优点:
80.通过该自动化测试用例的套件集合,可模拟转发设备rfc2544吞吐的测试方法对旁路设备进行吞吐性能测试,从而得到旁路设备的吞吐性能值,解决了旁路设备无法测试吞吐性能的痛点,通过将被测旁路设备3、交换机sw2、发包服务器4和管理pc1等硬件组网,管理pc1内储存由测试脚本,整个测试过程均通过python自动化实现,减少手工测试的反复;在测试过程中,发包速率选用硬件收包成功率和软件处理成功率中最小值,相比二分法能更快到最佳吞吐值;在测试后,管理pc1将所记录的测试过程和测试结果生成测试报告,并以邮件形式发送至外部终端,用户可通过外部电脑、手机等终端查看测试过程和测试结果,并可针对测试结果进行手工抽测,选取其中某一固定字节进行手工测试,确认吞吐性能值,从而便于验真测试的准确性。
81.本技术还公开了一种自动化测试旁路设备吞吐性能的测试方法及测试系统,所述测试方法用于对被测旁路设备指定发包字节的最佳发包速率进行测试,若干指定发包字节构成预测试字节合集,所述测试方法包括:
82.响应于接收到的测试指令,执行测试脚本;
83.向发包服务器发送发包指令,所述发包指令包括指定发包字节、第一发包速率和发包时间,其中,指定发包字节为所述预测试字节合集中的任一项;
84.获取发包服务器根据所述发包指令向被测旁路设备所发送的发包数p3;获取被测旁路设备对发包服务器所发包的硬件收包数p1和软件处理包数p2;
85.将p1和p2分别与p3进行对比,当p1和p2均与p3相等时,生成指定发包字节测试通过的测试结果;
86.若p1和p2中存在与p3不相等项,则生成指定发包字节测试不通过的测试结果;
87.同时,重新执行向发包服务器发送发包指令的步骤,所述发包指令包括指定发包字节、第二发包速率和发包时间,其中,第二发包速率的数值与第一发包速率的数值不同;
88.所述第二发包速率为硬件收包成功率和软件处理成功率中最小值;
89.所述发包指令被配置为控制发包服务器在每次向被测旁路设备发包前,均清除发包服务器自身所缓存的发包接口统计;
90.所述发包指令还被配置为控制被测旁路设备在每次接收发包服务器所发包前,均清除被测旁路设备自身所缓存的硬件收包数和软件处理包数;
91.对所述预测试字节合集内的全部指定发包字节逐一测试,直至所述预测试字节合集内的全部指定发包字节均测试通过;
92.当监测到所述预测试字节合集内的全部指定发包字节均测试通过后,将测试统计结果生成测试报告,并以邮件形式发送至外部终端。
93.本方案所公开的用于指导旁路设备进行吞吐性能指标测试的方法,及大提升研发对于该待测旁路设备性能的认识,对于做性能优化后的版本也将可以通过测试的每一组结果来进行确认,并且本方案中优化了寻发包速率的方法,相比二分法能更快到最佳吞吐值。
94.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其
它实施方案。本技术旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
95.应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
技术特征:
1.一种自动化测试旁路设备吞吐性能的测试方法,其特征在于:所述测试方法用于对被测旁路设备指定发包字节的最佳发包速率进行测试,若干指定发包字节构成预测试字节合集,所述测试方法包括:响应于接收到的测试指令,执行测试脚本;向发包服务器发送发包指令,所述发包指令包括指定发包字节、第一发包速率和发包时间,其中,指定发包字节为所述预测试字节合集中的任一项;获取发包服务器根据所述发包指令向被测旁路设备所发送的发包数p3;获取被测旁路设备对发包服务器所发包的硬件收包数p1和软件处理包数p2;将p1和p2分别与p3进行对比,当p1和p2均与p3相等时,生成指定发包字节测试通过的测试结果。2.根据权利要求1所述的测试方法,其特征在于,所述方法还包括:若p1和p2中存在与p3不相等项,则生成指定发包字节测试不通过的测试结果;同时,重新执行向发包服务器发送发包指令的步骤,所述发包指令包括指定发包字节、第二发包速率和发包时间,其中,第二发包速率的数值与第一发包速率的数值不同。3.根据权利要求2所述的测试方法,其特征在于:所述第二发包速率为硬件收包成功率和软件处理成功率中最小值。4.根据权利要求3所述的测试方法,其特征在于:所述硬件收包成功率的计算方法为:η1=(p1/p3)100%式中:η1为硬件收包成功率,p1为被测旁路设备上读取接口的硬件收包数,p3为发包服务器的发包数;所述软件处理成功率的计算方法为:η2=(p2/p3)100%式中:η2为软件处理成功率,p2为被测旁路设备上的软件处理包数,p3为发包服务器的发包数。5.根据权利要求4所述的测试方法,其特征在于:所述发包指令被配置为控制发包服务器在每次向被测旁路设备发包前,均清除发包服务器自身所缓存的发包接口统计;所述发包指令还被配置为控制被测旁路设备在每次接收发包服务器所发包前,均清除被测旁路设备自身所缓存的硬件收包数和软件处理包数。6.根据权利要求5所述的测试方法,其特征在于,所述方法还包括:对所述预测试字节合集内的全部指定发包字节逐一测试,直至所述预测试字节合集内的全部指定发包字节均测试通过。7.根据权利要求6所述的测试方法,其特征在于,所述方法还包括:当监测到所述预测试字节合集内的全部指定发包字节均测试通过后,将测试统计结果生成测试报告,并以邮件形式发送至外部终端。8.一种自动化测试旁路设备吞吐性能的测试系统,其特征在于:所述测试系统包括:被测旁路设备、交换机sw、发包服务器和管理pc,所述管理pc通过所述交换机sw分别连接所述发包服务器和所述被测旁路设备,所述发包服务器向所述被测旁路设备发包;
所述管理pc被配置为:响应于接收到的测试指令,执行测试脚本;通过交换机sw向发包服务器发送发包指令,所述发包指令包括指定发包字节、第一发包速率和发包时间,其中,指定发包字节为所述预测试字节合集中的任一项;通过交换机sw获取发包服务器根据所述发包指令向被测旁路设备所发送的发包数p3;获取被测旁路设备对发包服务器所发包的硬件收包数p1和软件处理包数p2;将p1和p2分别与p3进行对比,当p1和p2均与p3相等时,生成指定发包字节测试通过的测试结果。9.根据权利要求8所述的测试系统,其特征在于:所述管理pc还被配置为:若p1和p2中存在与p3不相等项,则生成指定发包字节测试不通过的测试结果;同时,重新执行向发包服务器发送发包指令的步骤,所述发包指令包括指定发包字节、第二发包速率和发包时间,其中,第二发包速率的数值与第一发包速率的数值不同;所述第二发包速率为硬件收包成功率和软件处理成功率中最小值。10.根据权利要求9所述的测试系统,其特征在于:所述管理pc还被配置为:当监测到所述预测试字节合集内的全部指定发包字节均测试通过后,将测试统计结果生成测试报告,并以邮件形式发送至外部终端。
技术总结
本申请公开了一种自动化测试旁路设备吞吐性能的测试方法及测试系统,通过该自动化测试用例的套件集合,可模拟转发设备RFC2544吞吐的测试方法对旁路设备进行吞吐性能测试,从而得到旁路设备的吞吐性能值,解决了旁路设备无法测试吞吐性能的痛点,整个测试过程均通过python自动化实现,减少手工测试的反复,测试方法相比二分法能更快到最佳吞吐值,在测试后,管理PC1将所记录的测试过程和测试结果生成测试报告,并以邮件形式发送至外部终端,用户可通过外部电脑、手机等终端查看测试过程和测试结果,并可针对测试结果进行手工抽测,选取其中某一固定字节进行手工测试,确认吞吐性能值,从而便于验真测试的准确性。从而便于验真测试的准确性。从而便于验真测试的准确性。
技术研发人员:
李永辉
受保护的技术使用者:
武汉思普崚技术有限公司
技术研发日:
2022.08.15
技术公布日:
2022/11/18