web服务器测试脚本
上一篇 / 下一篇 2012-06-09 22:24:43 / 个人分类:WEB测试
51Testing软件测试网~H|?#F sU
#!/bin/sh #################################################################################
"~x6K9CYO_2z9y0# 说 明 51Testing软件测试网{)PB$_!k
# 1、下载耗时测试 51Testing软件测试网4JyMH3q/Wp
# 2、多线程测试 51Testing软件测试网F.N%p2c'k;YaP2~
# 使用方法: ./webtest 51Testing软件测试网3NuTrp4@"Ka2Uu l._
# 使用本脚本程序,可进程对网关web进行压力测试,测试 51Testing软件测试网,K[.[3J*D0]5B4l
# 功能主要包括:
r.@/_-t*uC/Vp9t#g0# 1、对自身机器的压力测试
$Y$BGNd'~!k0H0# 2、对其他机器的压力测试 51Testing软件测试网 o8D.Qt%W$g
&|O@P(D'Op0######################################自定义部分####################################
"Q%[4Q3LR'W(lX/W0# 参数简介: 51Testing软件测试网*Wc%y'@f+sMY6G%V/R
# SERVER为配置要测试的机器IP地址 51Testing软件测试网Q+pszm
# NAME定义设备的名称 51Testing软件测试网N ocH/AD)Xs
# GRAPH定义是否生成折线图的参数文件 51Testing软件测试网SQQCnkb
# VALUE此值为定义对下载速度测试的次数
SCW-|YQ0# TIME 配置是否开启长时间测试,不间断测试 51Testing软件测试网 mnm!n,Z9]
# MODE 配置本机器担当的角色
|[c-H3B{m0##################################################################################### 51Testing软件测试网K3?Jf8J:_
#要测试的URL地址,也可写ftp的。
:UZ H1gS,b/q-@-Wx0URL=https://192.168.0.133/wget.jsp 51Testing软件测试网4uQ3n8pC)w vBO
export URL #服务器标识
Mu,S1P'@0pe0NAME=lanse #设置是否生成图表数据 51Testing软件测试网1Y~%J!\be
#GRAPH=OFF
$O {N(ncG0GRAPH=ON #设置下载速度测试的次数; 51Testing软件测试网}5DBm$n,ZCS
#如果在SERVER端配置此参数后,客户端无法同步,可以tailf test.logfor; 51Testing软件测试网$t+?:k u;n
#当wget到这个数值时,再在客户端执行脚本。如果不需要可以将此处设置为0; 51Testing软件测试网zK9Z5Ev$e&p
#SC模式不受其影响 51Testing软件测试网2mt1C_f3q UJ-G1A'l
VALUE=0 #VALUE=5000 #长时间压力测试单位(分钟); 51Testing软件测试网 UP8NLZ;~E
#配置TIME小于MAXTIME为开启长时间压力测试。如果相等为不开启。 MAXTIME=6000 51Testing软件测试网Z:|(X+l3O`|xxlkv
TIME=6000 #设置模式,分(SC/SERVER/CLIENT) 51Testing软件测试网P$]:Q;u;hF.z}}W
#SC 即是客户端模式,又是服务器模式,主要用于自压测试; 51Testing软件测试网#RH@x2L
#SERVER 主要用来测试别的设备;
ZOkV^[ Q0#CLIENT 当作客户端来用,主要配合另一台SERVER对自己的压力测试来提取系统资源信息。 #MODE=CLIENT 51Testing软件测试网F(u~r4BW`R
MODE=SERVER
?Dl1w,O7B)Nw0#MODE=SC #配置压力级别, 分0/1/2/3, 4个级别,级别越高,压力越小, 默认0为最大压力; 51Testing软件测试网7s5Z^c`a3u;z
#适合稳定性测试。 LEVEL=0 51Testing软件测试网 ty5CT0x&u
#LEVEL=1
;r*sM Sm7e1w0#LEVEL=2 51Testing软件测试网2c.Zs"Z?vK @gc
#主要可以得到对不同设备测试,下载所用时间,成功率,失败率; 51Testing软件测试网2lu;I/@B"t
#如果同时配置,那个先执行完就结束进程;
Fo+v)D|x0#配置NUMBER小于MAXNUMBER为开启状态。 MAXNUMBER=9000000
P[M8{?W\!p9lC(aq0NUMBER=3000 51Testing软件测试网%Exu:iWL%{&i
###########################程序运行部分######################################## 51Testing软件测试网@uY0U"_A
>file 51Testing软件测试网k3a/Jh$f}UX
>startfail 51Testing软件测试网w l4I8D-e"CXN
>test.logfor
6a.a5L#ha$y|v(f!ax4d0echo 2 >sta 51Testing软件测试网f#O^.L^ t
date +%s > time
u/T$I@1]b1a0echo 2 > whstat 51Testing软件测试网;b-e~ fJ9LYw
>OK 51Testing软件测试网 j| dh^
>test.logwhile
$k-Dc eSt.W3q0{0>graph 51Testing软件测试网;_T1MBH:?
>established #1^$# 51Testing软件测试网`z x`u(i*\e
if [ $MODE = SC -o $MODE = SERVER ] ; then echo 'time=`date +"%Y-%m-%d %H:%M:%S"`' > test.sh 51Testing软件测试网6I8?Cu@&b!|
echo "while [ 1 ] " >> test.sh
c8j uZ5_0echo "do" >> test.sh 51Testing软件测试网Z2\7V)^A+z@@&zk
echo "wget $URL -c -q -t 3 -T 5 --no-check-certificate" >>test.sh
,Q3^,O#i"B%C7e2}Q0echo ' if [ $? -eq 0 ] ; then ' >>test.sh
gn%f7q#V+[AJ*P0echo ' echo $time wget ok >> test.logwhile ' >>test.sh 51Testing软件测试网D{"L? Hm)c1qx9z%E8m
echo " else " >> test.sh 51Testing软件测试网X9q6Kw2y8ggg
echo ' echo $time wget fail >> test.logwhile ' >>test.sh
X Ce*@KG S*L0echo " fi" >>test.sh 51Testing软件测试网3V{+[_W
if [ $LEVEL -eq 1 ] ; then
#?\1JU1jr+[0echo "sleep 1 " >> test.sh 51Testing软件测试网V*?;NXX3C|
fi 51Testing软件测试网N@;v7K#?x%_f
if [ $LEVEL -eq 2 ] ; then 51Testing软件测试网g H?MV2EF|
echo "sleep 2 " >> test.sh 51Testing软件测试网z1@`lE*E"y
fi 51Testing软件测试网,o*UHjO^I:yo$y
if [ $LEVEL -eq 3 ] ; then 51Testing软件测试网 vKxDB }Z4H u*p
echo " sleep 3 " >> test.sh
"VV5zXb*\7j0fi 51Testing软件测试网o-i0olC ^geu$B`2v
echo "done" >> test.sh
5V6V'P5DJ,{`h#Y0chmod a+x test.sh 51Testing软件测试网M&esL#bq L
for ((i=0;i<=$VALUE;i++))
qS@S I$o B0do 51Testing软件测试网$tL-g3z&z\z
#2^# 51Testing软件测试网d b%_&}+s$XFeR
wget $URL -c -q -t 3 -T 5 --no-check-certificate
+`){#[7]9|0if [ $? -eq 0 ] ; then 51Testing软件测试网y5^F pt#uD
echo $time wget ok $i >> test.logfor 51Testing软件测试网Ht:f!xd#E` ]
else
0_z~+g+?~"O|0echo $time wget fail $i >> test.logfor 51Testing软件测试网g{@ xgq-ZS@
fi
Wx-VzN a"p0#2$#
h-q[z$I?KG \P R0done
,OE6i:rs+i)\0T=`cat time` 51Testing软件测试网qz+]Cl0e:E:`&hRv
N=`date +%s `
-V!K$D*P$rT$v0S=`echo "$N-$T" | bc ` 51Testing软件测试网J B3V%MrCT
M=`echo "scale=1;$S/60"|bc |awk -F. '{print $1}'`
;X%]"{ fH0MS=`echo "scale=1;$S/60"|bc |awk -F. '{print $2*0.01*60}'|awk -F. '{print $1}'` 51Testing软件测试网h.cG4t,|
echo \ ; echo \ >> file 51Testing软件测试网.?|3]"@-Fy5}#t#Z
echo "当前模式为 【 $MODE 】 模式" >> file
#FHe+wNMcV9evql0echo \ ; echo \ >> file 51Testing软件测试网8p [3|g|`l8DWL$A
echo "下载速度测试结果:" >>file
4F\ J4Z;r't0if [ $S -lt 60 ] ; then 51Testing软件测试网G'qO$A+D1gq
echo \ ; echo \ >> file
9aff^(Z5Q \/_ h0echo "本次下载用了$S 秒" >>file 51Testing软件测试网me4t0Y2E3y0t
else51Testing软件测试网A%JR/D_q
echo \ ; echo \ >> file
[B0o&e|0echo "本次下载用了$M 分 $MS 秒" >>file51Testing软件测试网SR-iun$F
fi
i;GQ6Fh9iJ6E0F=`grep fail test.logfor |wc -l `51Testing软件测试网 }/bm*wx,b;i
O=`grep ok test.logfor |wc -l `
?_8\k-u0L(C0echo \ ; echo \ >>file51Testing软件测试网+gB-u-QoP \A b$}+Z
echo "下载成功 $O 个" >>file