本发明属于数据测试领域,具体涉及一种验证网络压力下数据一致性的方法及系统。
背景技术:
随着现代数据中心的不断扩大,服务器作为数据中心的重要组成部分,各服务器之间需要通过大量网络进行联通。数据即资产。在如此大量的数据流量下,网卡的数据稳定性是至关重要的一环。
以往的网络压力测试只是进行压力测试,不进行加入数据的校验,对于数据是否有丢失并没有关注,也就无法测试网络压力下数据的一致性结果。
此为现有技术的不足,因此,针对现有技术中的上述缺陷,提供一种验证网络压力下数据一致性的方法及系统,是非常有必要的。
技术实现要素:
本发明的目的在于,针对上述网络压力测试无法验证数据一致性的缺陷,提供一种验证网络压力下数据一致性的方法及系统,以解决上述技术问题。
为实现上述目的,本发明给出以下技术方案:
一种验证网络压力下数据一致性的方法,包括如下步骤:
步骤1.判断测试工具是否安装;
若已安装,进入步骤2;若未安装,下载并安装测试工具;
步骤2.下载待传输文件;
步骤3.设定源节点和目标节点;
步骤4.启动测试工具开始测试;
步骤5.设定传输带宽;
步骤6.在源节点对待传输文件进行编码生成待传输文件编码文件;
步骤7.将待传输文件从源节点传输到目标节点,生成一次传输文件,并对一次传输文件进行编码;
步骤8.判断待传输文件的编码与一次传输文件的编码是否一致;
步骤9.若待传输文件的编码与一次传输文件的编码一致,则记录传输成功一次,进入步骤10;
若待传输文件的编码与一次传输文件的编码不一致,则记录传输失败一次,返回步骤6;
步骤10.将一次传输文件从目标节点传输到源节点,生成二次传输文件,并对二次传输文件进行编码;
步骤11.判断一次传输文件的编码与二次传输文件的编码是否一致;
步骤12.若一次传输文件的编码与二次传输文件的编码一致,则记录传输成功一次,返回步骤6;
若一次传输文件的编码与二次传输文件的编码不一致,则记录传输失败一次,返回步骤7。
进一步地,步骤5中还包括设定测试时间阈值,并开始计时;
步骤8和步骤11的判断数据一致性步骤之前,还包括判断是否超时步骤;
若超过测试时间阈值,判定超时,则测试结束;若不超过测试时间阈值,判定不超时,继续进行下一步。
进一步地,测试工具采用iperf测试工具。
进一步地,步骤5中设定传输带宽大于等于网络总带宽的90%。
进一步地,步骤6和步骤10中,采用md5编码工具对文件进行md5编码。
本发明还给出如下技术方案:
一种验证网络压力下数据一致性的系统,包括测试工具检测模块、测试工具安装模块、待传输文件提供模块、节点设定模块、测试启动模块、传输带宽设定模块、编码模块、文件传输模块、文件判断模块以及传输结果记录模块;
测试工具检测模块,用于判断测试工具是否安装;
测试工具安装模块,用于在测试工具未安装的情况下,下载并安装测试工具;
待传输文件提供模块,用于下载待传输文件;
节点设定模块,用于设定源节点和目标节点;
测试启动模块,用于启动测试工具开始测试;
传输带宽设定模块,用于设定传输带宽;
编码模块,用于对文件进行编码;
文件传输模块,用于实现文件从一个节点到另一个节点的传输;
文件判断模块,用于判断两个文件编码后是否一致;
传输结果记录模块,用于记录传输结果,若传输前后文件的编码一致,则记录传输成功一次,若传输前后文件的编码不一致,则记录传输失败一次。
进一步地,系统还包括超时阈值设定模块和超时判断模块;
超时阈值设定模块,用于设定测试执行时间阈值;
超时判断模块,用于判断测试是否超时,若超过测试执行时间阈值,设定超时;若不超过测试执行时间阈值,设定不超时。
进一步地,测试工具采用iperf测试工具。
进一步地,传输带宽设定模块,设定的传输带宽大于等于网络总带宽的90%。
进一步地,编码模块,采用md5编码工具对文件进行md5编码。
本发明的有益效果在于:
本发明实现网络数据一致性的测试,自动化操作,能够避免人为错误,快速完成测试和结果处理,提升测试效率,进而提升产品质量。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。
附图说明
图1为本发明的方法流程图;
图2为本发明的系统示意图;
其中,1-测试工具检测模块;2-测试工具安装模块;3-待传输文件提供模块;4-节点设定模块;5-测试启动模块;6-传输带宽设定模块;7-编码模块;8-文件传输模块、9-文件判断模块;10-传输结果记录模块;11-超时阈值设定模块;12-超时判断模块。
具体实施方式:
为使得本发明的目的、特征、优点能够更加的明显和易懂,下面将结合本发明具体实施例中的附图,对本发明中的技术方案进行清楚、完整地描述。
如图1所示,本发明提供一种验证网络压力下数据一致性的方法,包括如下步骤:
步骤1.判断测试工具是否安装;测试工具采用iperf测试工具;
若已安装,进入步骤2;若未安装,下载并安装测试工具;
步骤2.下载待传输文件;
步骤3.设定源节点和目标节点;
步骤4.启动测试工具开始测试;
步骤5.设定传输带宽;设定测试时间阈值并开始计时;设定传输带宽大于等于网络总带宽的90%;
步骤6.在源节点对待传输文件进行编码生成待传输文件编码文件;采用md5编码工具对文件进行md5编码;
步骤7.将待传输文件从源节点传输到目标节点,生成一次传输文件,并对一次传输文件进行编码;
步骤8.判断是否超时;若超时,则进入步骤13;若不超时,判断待传输文件的编码与一次传输文件的编码是否一致;
步骤9.若待传输文件的编码与一次传输文件的编码一致,则记录传输成功一次,进入步骤10;
若待传输文件的编码与一次传输文件的编码不一致,则记录传输失败一次,返回步骤6;
步骤10.将一次传输文件从目标节点传输到源节点,生成二次传输文件,并对二次传输文件进行编码;采用md5编码工具对文件进行md5编码;
步骤11.判断是否超时;若超时,则进入步骤13;若不超时,判断一次传输文件的编码与二次传输文件的编码是否一致;
步骤12.若一次传输文件的编码与二次传输文件的编码一致,则记录传输成功一次,返回步骤6;
若一次传输文件的编码与二次传输文件的编码不一致,则记录传输失败一次,返回步骤7;步骤13.测试结束。
如图2所示,本发明还提供一种验证网络压力下数据一致性的系统,包括测试工具检测模块1、测试工具安装模块2、待传输文件提供模块3、节点设定模块4、测试启动模块5、传输带宽设定模块6、编码模块7、文件传输模块8、文件判断模块9、传输结果记录模块10、超时阈值设定模块11以及超时判断模块12;
测试工具检测模块1,用于判断测试工具是否安装;测试工具采用iperf测试工具;
测试工具安装模块2,用于在测试工具未安装的情况下,下载并安装测试工具;
待传输文件提供模块3,用于下载待传输文件;
节点设定模块4,用于设定源节点和目标节点;
测试启动模块5,用于启动测试工具开始测试;
传输带宽设定模块6,用于设定传输带宽;设定的传输带宽大于等于网络总带宽的90%;
编码模块7,用于对文件进行编码;采用md5编码工具对文件进行md5编码;
文件传输模块8,用于实现文件从一个节点到另一个节点的传输;
文件判断模块9,用于判断两个文件编码后是否一致;
传输结果记录模块10,用于记录传输结果,若传输前后文件的编码一致,则记录传输成功一次,若传输前后文件的编码不一致,则记录传输失败一次;
超时阈值设定模块11,用于设定测试执行时间阈值;
超时判断模块12,用于判断测试是否超时,若超过测试执行时间阈值,设定超时;若不超过测试执行时间阈值,设定不超时。
实施例1为应用图1所示的验证网络压力下数据一致性的方法的实施例,
一、环境准备,下载安装iperf软件和test.bin文件
#!/bin/bash
iperf–v
if[$?–ne0];then
#下载iperf软件
wgethttp://100.2.36.3/tool/iperf-2.0.5.tgz
fi
#下载test,bin文件
wget–o/root/test/binhttp://100.2.36.3/tool/test.bin
ip_src=1.1.1.1
ip_dst=1.1.1.2
二、开启压力测试
#在b节点上开启iperf服务
echo“nohupiperf–s–w256k&”>>scripts.sh
scpscripts.sh${ip_dst}:/root
ssh-froot@${ip_dst}./scripts.sh
#在a节点上开启iperf
nohupiperf–c${ip_dst}–i1–w256k–t3600–p4>>result-iperf.txt&
三、开启后台计时程序
#每隔一秒输出一个count字符到count.log
catcount.sh<<eof
forcountinrange(3600):
do
sleep1
echo“count”>>count.log
done
killall-9sh
killall-9iperf
eof
四、开始传输测试
cp/root/test.bin.
#从a到b的传输函数
functionfromatob{
#生成在a节点的原始的test.bin的md5值
p=`md5sumtest.bin`
#从a拷贝到b
scptest.bin${ip_dst}:/root
#计算b节点的test.bin的md5值q
q=`ssh–froot@${ip_dst}md5sumtest.bin`
}
#从b到a的传输函数
functionfrombtoa{
#生成在b节点的test.bin的md5值
q=`ssh–froot@${ip_dst}md5sumtest.bin`
#从b拷贝到a
ssh–froot@${ip_dst}scptest.bin${ip_dst}:/root
#计算a节点的test.bin的md5值r
r=`md5sumtest.bin`
}
#开始从a到b传输
while:;
do
fromatob
if[p–neq];then
echo“from${ip_src}to${ip_dst}isfail”>>log.logfromatob
else
echo“from${ip_src}to${ip_dst}ispass”>>log.log
#开始从b到a传输
frombtoa
if[p–neq];then
echo“from${ip_dst}to${ip_src}isfail”>>log.log
frombtoa
else
echo“from${ip_src}to${ip_dst}ispass”>>log.log
fi
fi
done
md5全称是报文摘要算法(message-digestalgorithm5),此算法对任意长度的信息逐位进行计算,产生一个二进制长度为128位(十六进制长度就是32位)的“指纹”(或称“报文摘要”),不同的文件产生相同的报文摘要的可能性是非常非常之小的。一般来说,安装了linux后,就会有md5sum这个工具,直接在命令行终端直接运行。
iperf,是一个网络性能测试工具。iperf可以测试最大tcp和udp带宽性能,具有多种参数和udp特性,可以根据需要调整,可以报告带宽、延迟抖动和数据包丢失。
本发明的实施例是说明性的,而非限定性的,上述实施例只是帮助理解本发明,因此本发明不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他的具体实施方式,同样属于本发明保护的范围。