一种自动测试整机柜服务器网络稳定性的方法及系统与流程

文档序号:17070898发布日期:2019-03-08 23:18阅读:161来源:国知局
一种自动测试整机柜服务器网络稳定性的方法及系统与流程

本发明属于服务器网络稳定性测试领域,具体涉及一种自动测试整机柜服务器网络稳定性的方法及系统。



背景技术:

整机柜服务器各节点之间通过交换机网络连接,机柜开发测试及生产测试中会进行网络稳定性的测试,而网络传输一对一传输,既可以保证传输速率不受其它瓶颈限制,还能使每个节点的网络都能覆盖到,传统的网络稳定性测试需要一对一执行iperf工具,整机柜节点数量多,一一手动执行测试,既浪费人力又不能保证准确性。

此为现有技术的不足,因此,针对现有技术中的上述缺陷,提供一种自动测试整机柜服务器网络稳定性的方法及系统,是非常有必要的。



技术实现要素:

本发明的目的在于,针对上述传统的网络稳定性测试需要一对一执行iperf工具,整机柜节点数量多,一一手动执行测试,既浪费人力又不能保证准确性的缺陷,提供一种自动测试整机柜服务器网络稳定性的方法及系统,以解决上述技术问题。

为实现上述目的,本发明给出以下技术方案:

一种自动测试整机柜服务器网络稳定性的方法,包括如下步骤:

设置整机柜服务器的所有待测节点在同一网段,且待测节点之间网络互相连通;

在每一个待测节点安装网络测试工具;

自动执行测试,待测节点之间通过网络测试工具进行通信;

输出测试结果。

进一步地,具体步骤如下:

s1.搭建测试环境,在整机柜服务器的每一个待测节点均安装linux操作系统,配置网络环境,保证网络互通;

s2.将网络测试工具安装包复制到每一个待测节点;

s3.远程登录到每一个待测节点,运行网络测试工具安装包,完成网络测试工具安装;

s4.将所有待测节点划分为若干待测组,每个待测组包括一个客户端节点和一个服务端节点;

s5.服务端节点远程登录同一个待测组的客户端节点,在客户端节点生成服务端登录文件;

s6.客户端节点判断自身节点是否有服务端登录文件;

s7.若有,则客户端节点向同一个待测组的服务端节点进行灌包操作,并在服务端节点生成客户端操作文件;

s8.客户端节点删除自身的服务端登录文件;返回步骤s5。

进一步地,步骤s7中,若客户端节点判断自身没有服务端登录文件,则返回步骤s6。客户端节点继续等待服务端节点登录并生成服务端登录文件。

进一步地,步骤s7中,客户端节点向同一个待测组的服务端节点进行上行tcp的灌包操作,且设定tcp窗口大小值、客户端节点平行运行线程数目以及客户端节点向服务端节点进行灌包操作的测试时间。客户端节点判断服务端节点登录后,向服务端节点进行灌包操作,从而一个待测组内的客户端节点与服务端节点的通信是连通的,验证了网络稳定性。

进一步地,所述tcp窗口大小为512k,客户端节点平行运行线程数目为2,客户端节点向服务端节点进行灌包操作的测试时间为43200s。

进一步地,所述网络测试工具采用iperf网络测试工具。

进一步地,步骤s2中,基于expect脚本的spawn命令自动安装复制iperf网络测试工具安装包到每一个待测节点;

步骤s3中,基于expect脚本的spawn命令远程登录到所有待测节点,进行iperf网络测试工具安装。spawn命令时expect脚本下的内部命令,从而实现客户端节点与服务端节点之间自动的网络交互。

进一步地,步骤s1中,配置所有待测节点的ip地址连续设置;

步骤s4中,相邻ip地址的一组待测节点设置为一个待测组。相邻ip地址设为一个待测组为一种常用的实现方式,实际不限于此种形式。

进一步地,s4具体步骤如下:

s41.获取每一个待测节点ip地址的最后一个字段i;

s42.判断每个待测节点ip地址的最后一个字段i为奇数还是偶数;

s43.若为奇数,则该待测节点设置为待测组的客户端节点,且该待测节点与ip地址最后一个字段为i+1的待测节点为一个待测组;

若为偶数,则该待测节点设置为待测组的服务端节点,且该待测节点与ip地址最后一个字段为i-1的待测节点为一个待测组。ip地址最后一个字段为奇数的设置为客户端节点,用于向服务端节点灌包,ip地址最后一个字段为偶数的设置为服务端节点,用于登录客户端节点生成服务端登录文件,此种客户端节点和服务端节点设置方式为一种实现方式,实际不限于此种形式。

本发明还给出如下技术方案:

一种自动测试整机柜服务器网络稳定性的系统,包括

测试环境搭建模块,用于搭建测试环境,在整机柜服务器的每一个待测节点均安装linux操作系统,配置网络环境,保证网络互通;

网络测试工具安装包复制模块,用于将网络测试工具安装包复制到每一个待测节点;

网络测试工具安装模块,用于远程登录到每一个待测节点,运行网络测试工具安装包,完成网络测试工具安装;

待测组划分模块,用于将所有待测节点划分为若干待测组,每个待测组包括一个客户端节点和一个服务端节点;

远程登录模块,用于通过服务端节点远程登录同一个待测组的客户端节点,在客户端节点生成服务端登录文件;

服务端登录文件判断模块,用于通过客户端节点判断自身节点是否有服务端登录文件;

灌包操作模块,用于当客户端节点存在服务端登录文件时,该客户端节点向同一个待测组的服务端节点进行灌包操作,并在服务端节点生成客户端操作文件;

服务端登录文件删除模块,用于通过客户端节点删除自身的服务端登录文件。

本发明的有益效果在于:

本发明通过linuxshell脚本,实现了自动进行整机柜服务器网络稳定性测试的方法,该方法打破了整机柜服务器原有的一对一手动输入,提高测试执行的准确度,且大大节省资源和人力。

此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。

由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。

附图说明

图1为本发明的方法流程图;

图2为本发明的系统示意图;

其中,1-测试环境搭建模块;2-网络测试工具安装包复制模块;3-网络测试工具安装模块;4-待测组划分模块;5-远程登录模块;6-服务端登录文件判断模块;7-灌包操作模块;8-服务端登录文件删除模块。

具体实施方式:

为使得本发明的目的、特征、优点能够更加的明显和易懂,下面将结合本发明具体实施例中的附图,对本发明中的技术方案进行清楚、完整地描述。

实施例1:

本发明提供一种自动测试整机柜服务器网络稳定性的方法,包括如下步骤:

设置整机柜服务器的所有待测节点在同一网段,且待测节点之间网络互相连通;

在每一个待测节点安装网络测试工具;

自动执行测试,待测节点之间通过网络测试工具进行通信;

输出测试结果;

如图1所示,具体步骤如下:

s1.搭建测试环境,在整机柜服务器的每一个待测节点均安装linux操作系统,配置网络环境,保证网络互通;

s2.将网络测试工具安装包复制到每一个待测节点;

s3.远程登录到每一个待测节点,运行网络测试工具安装包,完成网络测试工具安装;

s4.将所有待测节点划分为若干待测组,每个待测组包括一个客户端节点和一个服务端节点;

s5.服务端节点远程登录同一个待测组的客户端节点,在客户端节点生成服务端登录文件;

s6.客户端节点判断自身节点是否有服务端登录文件;

s7.若有,则客户端节点向同一个待测组的服务端节点进行灌包操作,并在服务端节点生成客户端操作文件;

若否,则返回步骤s6;

s8.客户端节点删除自身的服务端登录文件;返回步骤s5。

上述实施例1中,步骤s7中,客户端节点向同一个待测组的服务端节点进行上行tcp的灌包操作,且设定tcp窗口大小值、客户端节点平行运行线程数目以及客户端节点向服务端节点进行灌包操作的测试时间;所述tcp窗口大小为512k,客户端节点平行运行线程数目为2,客户端节点向服务端节点进行灌包操作的测试时间为43200s。

上述实施例1中,网络测试工具采用iperf网络测试工具。

步骤s2中,基于expect脚本的spawn命令自动安装复制iperf网络测试工具安装包到每一个待测节点;

步骤s3中,基于expect脚本的spawn命令远程登录到所有待测节点,进行iperf网络测试工具安装。

上述实施例1中,步骤s1中,配置所有待测节点的ip地址连续设置;

步骤s4中,相邻ip地址的一组待测节点设置为一个待测组;具体步骤如下:

s41.获取每一个待测节点ip地址的最后一个字段i;

s42.判断每个待测节点ip地址的最后一个字段i为奇数还是偶数;

s43.若为奇数,则该待测节点设置为待测组的客户端节点,且该待测节点与ip地址最后一个字段为i+1的待测节点为一个待测组;

若为偶数,则该待测节点设置为待测组的服务端节点,且该待测节点与ip地址最后一个字段为i-1的待测节点为一个待测组。

实施例2:

应用上述实施例1的一种自动测试整机柜服务器网络稳定性的方法,具体步骤如下:

s1.搭建测试环境,在整机柜服务器的每一个待测节点均安装linux操作系统,如redhat6.4,配置网络环境,配置所有待测节点的ip地址连续设置,保证网络互通;通过如下代码实现:

基于expect语句,自动安装iperf工具,配置测试环境,此过程不需要任何交互,一键执行脚本,即可配置好iperf工具环境:

pw=‘111111’#此处‘111111’为节点系统密码,将密码赋值给pw

net_name=“eth1”#此处eth1为要进行网络稳定性测试的网口在系统下的名称,赋值给net_name

foriin{1..20}#要进行网络稳定性测试的节点数,此处为20个节点

do

/usr/bin/expect<<eof#调用expect语句

settimeout-1#设置超时时间为永不超时

s2.将网络测试工具安装包复制到每一个待测节点;基于expect脚本的spawn命令自动安装复制iperf网络测试工具安装包到每一个待测节点,通过如下代码实现:

spawnscpiperf-2.0.9.tar.gzroot@192.168.0.$i:/home#执行将iperf工具安装包复制到所有节点的home目录下

expect{

“yes/no”{send“yes\r”;}#判断上一步返回值中是否包含“yes/no”,如果包含则执行yes并回车,实现自动交互

“password”{send“$pw\r”;}#判断返回值中是否包含“password”,如果包含则输入pw的值,也就是系统密码

}

s3.远程登录到每一个待测节点,运行网络测试工具安装包,完成网络测试工具安装;基于expect脚本的spawn命令远程登录到所有待测节点,进行iperf网络测试工具安装,通过如下代码实现:

spawnsshroot@192.168.0.$i#执行ssh登录到所有节点命令

expect{

“password”{send“$pw\r”;}#判断返回值中是否包含“password”,如果包含则输入pw的值,也就是系统密码

“yes/no”{send“yes\r”}#判断上一步返回值中是否包含“yes/no”,如果包含则执行yes并回车,实现自动交互

}

expect“root”{send“cd/home/;tarzxvfiperf-2.0.9.tar.gz\r”}#登录到个节点后判断返回值是否有root字段,如果有则进入到home目录,并解压iperf工具安装包

expect“home*”{send“cd/home/iperf-2.0.9;./configure;make;makeinstall}#判断上一步返回值是否包含home字段,如果包含则进入到/home/iperf-2.0.9目录下,并安装iperf2.0.9工具

send“exit\r”#退出节点

expecteof#退出expect环境

eof

done

s4.将所有待测节点划分为若干待测组,每个待测组包括一个客户端节点和一个服务端节点;相邻ip地址的一组待测节点设置为一个待测组;具体步骤如下:

s41.获取每一个待测节点ip地址的最后一个字段i;

s42.判断每个待测节点ip地址的最后一个字段i为奇数还是偶数;

s43.若为奇数,则该待测节点设置为待测组的客户端节点,且该待测节点与ip地址最后一个字段为i+1的待测节点为一个待测组;

若为偶数,则该待测节点设置为待测组的服务端节点,且该待测节点与ip地址最后一个字段为i-1的待测节点为一个待测组;

s5.服务端节点远程登录同一个待测组的客户端节点,在客户端节点生成服务端登录文件;

s6.客户端节点判断自身节点是否有服务端登录文件;

s7.若有,则客户端节点向同一个待测组的服务端节点进行灌包操作,并在服务端节点生成客户端操作文件;客户端节点向同一个待测组的服务端节点进行上行tcp的灌包操作,且设定tcp窗口大小值、客户端节点平行运行线程数目以及客户端节点向服务端节点进行灌包操作的测试时间;所述tcp窗口大小为512k,客户端节点平行运行线程数目为2,客户端节点向服务端节点进行灌包操作的测试时间为43200s;

若否,则返回步骤s6;

s8.客户端节点删除自身的服务端登录文件;返回步骤s5;步骤s4、步骤s5、步骤s6、步骤s7及步骤s8通过如下代码实现:

s_ip=`ifconfig$1|grep“innetaddr”|cut–d:f2|cut–d““–f1`#抓取待测网卡ip地址赋值给s_ip

num=`echo$s_ip|cut–d.–f4`#将ip地址最后一个字段赋值给变量num

if[`expr$num%2`-eq0];then#判断num的奇偶值,如果为偶数

echo“nowruniperf-s”#显示执行信息到屏幕

iperf–s&#偶数节点作为客户端,执行iperf-s

i=$[$num-1]#将偶数值减1后赋值给变量i

/usr/bin/expect<<eof#启用expect语句

spawnssh192.168.0.$iecho1>/root/iperfs.txt#执行登录到节点ip为$i的节点,并在root目录下写入1到iperfs.txt的文件中

expect{

“yes/no”{send“yes\r”}#执行过程中判断yes/no字段,并自动输入yes

“password”{send“111111\r”}#执行过程判断password字段,并自动输入系统密码

}

expecteof

eof#退出expect环境

else

echo“waitingforiperf-s”#判断如果num值不是偶数,则显示等待iperf–s执行信息到屏幕

whiletrue

do

if[-f/root/iperfs.txt];then#一直判断iperfs.txt是否存在,当存在时

echo“nowruniperf–c…”#显示执行iperf–c信息到屏幕

j=$[$num+1]#将num值加1赋值给变量j

iperf–c192.168.0.$j–w512k–i2–t43200–p2|tee–a/root/iperf.txt&#基数端作为client端,执行iperf–c命令,并将结果保存到iperf.txt文件中

rm–rf/root/iperfs.txt#删除之前产生的iperfs.txt文件

break#退出while循环

else

continue#否则继续执行while内命令,一直判断是否存在iperfs.txt

fi

done

fi

实施例3:

如图2所示,本发明提供一种自动测试整机柜服务器网络稳定性的系统,包括:

测试环境搭建模块1,用于搭建测试环境,在整机柜服务器的每一个待测节点均安装linux操作系统,配置网络环境,保证网络互通;

网络测试工具安装包复制模块2,用于将网络测试工具安装包复制到每一个待测节点;

网络测试工具安装模块3,用于远程登录到每一个待测节点,运行网络测试工具安装包,完成网络测试工具安装;

待测组划分模块4,用于将所有待测节点划分为若干待测组,每个待测组包括一个客户端节点和一个服务端节点;

远程登录模块5,用于通过服务端节点远程登录同一个待测组的客户端节点,在客户端节点生成服务端登录文件;

服务端登录文件判断模块6,用于通过客户端节点判断自身节点是否有服务端登录文件;

灌包操作模块7,用于当客户端节点存在服务端登录文件时,该客户端节点向同一个待测组的服务端节点进行灌包操作,并在服务端节点生成客户端操作文件;

服务端登录文件删除模块8,用于通过客户端节点删除自身的服务端登录文件。

本发明的实施例是说明性的,而非限定性的,上述实施例只是帮助理解本发明,因此本发明不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他的具体实施方式,同样属于本发明保护的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1