如果晚上月亮升起的时候,月光照到我的门口,我希望月光女神能满足我一个愿望,我想要一双人类的手。我想用我的双手把我的爱人紧紧地拥在怀中,哪怕只有一次。如果我从来没有品尝过温暖的感觉,也许我不会这样寒冷;如果我从没有感受过爱情的甜美,我也许就不会这样地痛苦。如果我没有遇到善良的佩格,如果我从来不曾离开过我的房间,我就不会知道我原来是这样的孤独.

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+psz m

# NAME定义设备的名称 51Testing软件测试网Noc H/AD)X s

# GRAPH定义是否生成折线图的参数文件 51Testing软件测试网SQQCnkb

# VALUE此值为定义对下载速度测试的次数 

SCW-|YQ0

# TIME 配置是否开启长时间测试,不间断测试 51Testing软件测试网mnm!n,Z9]

# MODE 配置本机器担当的角色 

|[c-H3B{m0

##################################################################################### 51Testing软件测试网K3?Jf8J:_

#要测试的URL地址,也可写ftp的。 

:UZ H1gS,b/q-@-W x0

URL=https://192.168.0.133/wget.jsp 51Testing软件测试网4uQ3n8pC)w vBO

export URL #服务器标识 

Mu,S1P'@0pe0

NAME=lanse #设置是否生成图表数据 51Testing软件测试网1Y~%J!\be

#GRAPH=OFF 

$O {N(ncG0

GRAPH=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;h F.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

#LEVEL=3 
#配置停止几秒后增加一个线程。 SPACE=3 #配置本次压力的测试,一共下载多少次,用来精确分析数据,最好不要与长时间同时配置; 

#主要可以得到对不同设备测试,下载所用时间,成功率,失败率; 51Testing软件测试网2lu;I/@B"t

#如果同时配置,那个先执行完就结束进程; 

Fo+v)D|x0

#配置NUMBER小于MAXNUMBER为开启状态。 MAXNUMBER=9000000 

P[M8{?W\!p9lC(aq0

NUMBER=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!ax4d0

echo 2 >sta 51Testing软件测试网f#O^.L^ t

date +%s > time 

u/T$I@1]b1a0

echo 2 > whstat 51Testing软件测试网;b-e~ fJ9LYw

>OK 51Testing软件测试网j| dh^

>test.logwhile 

$k-D c eS t.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?C u@&b!|

echo "while [ 1 ] " >> test.sh 

c8j uZ5_0

echo "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}Q0

echo ' if [ $? -eq 0 ] ; then ' >>test.sh 

gn%f7q#V+[AJ*P0

echo ' echo $time wget ok >> test.logwhile ' >>test.sh 51Testing软件测试网D {"L? Hm)c1qx9z%E8m

echo " else " >> test.sh 51Testing软件测试网X9q6K w2y8ggg

echo ' echo $time wget fail >> test.logwhile ' >>test.sh 

X Ce*@KGS*L0

echo " fi" >>test.sh 51Testing软件测试网3V{+[_W

if [ $LEVEL -eq 1 ] ; then 

#?\1JU1j r+[0

echo "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软件测试网 vKx DB }Z4H u*p

echo " sleep 3 " >> test.sh 

"VV5zXb*\7j0

fi 51Testing软件测试网o-i0olC ^ge u$B`2v

echo "done" >> test.sh 

5V6V'P5DJ,{ `h#Y0

chmod a+x test.sh 51Testing软件测试网M&es L#bqL

for ((i=0;i<=$VALUE;i++)) 

qS@ S I$o B0

do 51Testing软件测试网$tL-g3z&z\z

#2^# 51Testing软件测试网d b%_&}+s$XFeR

wget $URL -c -q -t 3 -T 5 --no-check-certificate 

+`){#[7]9|0

if [ $? -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|0

echo $time wget fail $i >> test.logfor 51Testing软件测试网g{@ x gq-ZS@

fi 

Wx-VzN a"p0

#2$# 

h-q[z$I?KG \P R0

done 

,OE6i:r s+i)\0

T=`cat time` 51Testing软件测试网qz+]Cl0e:E:`&hRv

N=`date +%s ` 

-V!K$D*P$rT$v0

S=`echo "$N-$T" | bc ` 51Testing软件测试网JB3V%MrCT

M=`echo "scale=1;$S/60"|bc |awk -F. '{print $1}'` 

;X%]"{ f H0

MS=`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+wN McV9e vql0

echo \ ; echo \ >> file 51Testing软件测试网8p[3|g |`l8DWL$A

echo "下载速度测试结果:" >>file 

4F\ J4Z;r't0

if [ $S -lt 60 ] ; then 51Testing软件测试网G'qO$A+D1gq

echo \ ; echo \ >> file 

9aff^(Z5Q \/_ h0

echo "本次下载用了$S 秒" >>file 51Testing软件测试网me4t0Y2E3y0t

else51Testing软件测试网 A%JR/D_q

echo \ ; echo \ >> file

[B0o&e|0

echo "本次下载用了$M 分 $MS 秒" >>file51Testing软件测试网SR-iun$F

fi

i;GQ6Fh9iJ6E0

F=`grep fail test.logfor |wc -l `51Testing软件测试网 }/bm*wx,b;i

O=`grep ok test.logfor |wc -l `

?_8\k-u0L(C0

echo \ ; echo \ >>file51Testing软件测试网+gB-u-QoP\A b$}+Z

echo "下载成功 $O 个" >>file

^ x3A!`*E"B[g0

echo \ ; echo \ >> file

!aplxQf\2i7A Z0

echo "下载失败 $F 个" >>file51Testing软件测试网{;[z&Xk T

fi

%r e$y+~T\ xQ)`g)N0

#1$# BTIME=`echo "$TIME*60"|bc`

;D~pi'KE i+Oi P0

MAXTIME=`echo "$MAXTIME*60"|bc` #3^#

/t"YV]4QA4V1]0

if [ $MODE = SC -o $MODE = SERVER -o $MODE = CLIENT ] ; then

`r#Y Iz0

while [ 1 ]51Testing软件测试网B J4a.x$_LR

do51Testing软件测试网X/[ O;[o ? ~L

#4^#

9z;L\Qp+V ~0

grep 1 whstat &>/dev/null51Testing软件测试网%n{ Y;w8Q:\

if [ $? -eq 0 ] ; then

'],Z D[V7}0

echo \ ; echo \ >> file

xGNb ^"a-t.sHT0

if [ $MODE = CLIENT ] ; then51Testing软件测试网6HnG*ys$zf*}L ]

echo \ ; echo \ >> file

i}yAK3cbP:}&D0

echo "当前模式为 【 $MODE 】 模式" >> file

T8R%EOm },v(p0

fi

(B'oN$MRO @/h7P0

if [ $MODE = SERVER -o $MODE = SC ] ; then51Testing软件测试网"z5p[)H)I |6NyV

echo \ ; echo \ >> file

@#f6oRlDx0

echo "本次测试的对象链接为 $URL " >> file51Testing软件测试网,X3y5}2Gvl ~y

fi
echo \ ; echo \ >> file

echo "下载压力测试结果:" >>file

PF r,u*Wt(t0

#5^#51Testing软件测试网 X!u,x|O/o-C

if [ $MODE = SC -o $MODE = SERVER ] ; then51Testing软件测试网#A7||0tR[D-I

OK=`tail -n 1 ok |awk '{print $2}'`

S`4m4O.fl o0

echo \ ; echo \ >> file51Testing软件测试网;a;m&k#p)A5OA

echo "本次测试共成功启动了 $OK 次进程" >>file51Testing软件测试网,\m&kqU

T=`cat time`

eWzqv0

N=`date +%s `51Testing软件测试网T;|-feTI

if [ $BTIME -lt $MAXTIME -o $NUMBER -lt $MAXNUMBER ] ; then

iH%o(N$c ?0

S=`echo "$N-$T" |bc`

BY"n;fK"]'l O8g0

M=`echo "scale=1;$S/60"|bc |awk -F. '{print $1}'`

O9JouL w4f C0K7y0

MS=`echo "scale=1;$S/60"|bc |awk -F. '{print $2*0.01*60}'|awk -F. '{print $1}'`51Testing软件测试网 p5y7pIg:I;s,J

if [ $S -lt 60 ] ; then

8J:Y oU;l0

echo \ ; echo \ >> file51Testing软件测试网$l Kn0n X9iL._

echo "本次测试共用了 $S 秒" >>file

MX*z PY B8o/aW0

else51Testing软件测试网^5jy+ze Zzwe}

echo \ ; echo \ >> file51Testing软件测试网|\[+h+H[fH

echo "本次下载用了 $M 分 $MS 秒" >>file51Testing软件测试网6] XUH1B l)q2j

fi51Testing软件测试网 S PEy'scLj"p|I

else51Testing软件测试网Sl!A&c9h2k u\*Pr

O=`wc -l ok|awk '{print $1}'`

vq,Ur \0

L=`echo "$O*3" | bc `51Testing软件测试网2n%fF gM1J!L

S=`echo "$N-$T-$L" | bc `51Testing软件测试网NEH_p2|

echo \ ; echo \ >> file51Testing软件测试网 NB"M5LL w1S|

echo "本次测试共用了 $S 秒" >>file

C,VZ\i$u8G0

echo ; echo ;

T\K e(G Sd8z%b0

M=`echo "scale=1;$S/60"|bc |awk -F. '{print $1}'`51Testing软件测试网*?;Xa2M ^Ow}h

MS=`echo "scale=1;$S/60"|bc |awk -F. '{print $2*0.01*60}'|awk -F. '{print $1}'`

Qx/r!S0`mKE ^0

if [ $S -lt 60 ] ; then

;k{^rqX0

echo \ ; echo \ >> file51Testing软件测试网1Zm5{X/N.kWB#\

echo "本次测试共用了 $S 秒" >>file51Testing软件测试网oK|FQf5\"mI

else51Testing软件测试网^3c9_b"YWa

echo \ ; echo \ >> file

aQ7v'M4m0

echo "本次下载用了 $M 分 $MS 秒" >>file

O-H:}4^E]0

fi

"O{/m]3L6D0

fi51Testing软件测试网%[ rg'p9y f j

fi

Y$F#[|w4Y n[A,F*q0

#5$#

7B2oZ;L5]0qr,T{0

#6^#

"aY/lr7M.O0

if [ $GRAPH = ON ] ; then51Testing软件测试网 }T C6RFk,P!k

if [ $MODE = CLIENT -o $MODE = SC ] ; then

a7N pQ PfQ s O0

ESTAB=`wc -l established|awk '{print $1}'`

M:\[^lAO0

AVEESTAB=`cat established | awk -vESTAB="$ESTAB" '{total+=$1}END {print total/ESTAB}'|awk -F. '{print $1}'`51Testing软件测试网.Pg*S&_v*o

MEM=`wc -l mem |awk '{print $1}'`51Testing软件测试网3G"d?'P Kq]

AVEMEM=`cat mem |awk -vMEM="$MEM" '{total+=$1}END {print total/MEM"%"}' `51Testing软件测试网'Q^T"SqU dw$u

echo \ ; echo \ >>file

o|7x9Q;b-C9h0

echo "本次测试机器内存平均使用用率为 $AVEMEM " >> file51Testing软件测试网9a+`&gF PZ

CPU=`wc -l cpu |awk '{print $1 }'`51Testing软件测试网M(q(kNX b

AVECPU=`cat cpu |grep -v CPU | awk -vCPU="$CPU" '{total+=$1}END {print total/CPU"%"}' `51Testing软件测试网 }+Q0Hm/]4SO m

echo \ ; echo \ >>file51Testing软件测试网AE&r kV_

echo "本次测试机器CPU平均使用用率为 $AVECPU " >> file

h*Xowi({u0

echo \ ; echo \ >>file51Testing软件测试网E$l'Y m-Z$w4W+x

echo "本次测试平均建立的连接为 $AVEESTAB 个" >> file51Testing软件测试网`Z#[+r$w_

echo \ ; echo \ >>file51Testing软件测试网p RjYGA r

echo "提示:【将文件graph用excel打开,生成折线图.】" >>file51Testing软件测试网p2?'aMz/Pt

echo51Testing软件测试网BqM5{ \4J

echo " $NAME graph " >> graph51Testing软件测试网+G,z OnV](u7a1^p3A

cat ok |awk '{print $2}' | paste -s >> graph

U d;V?x,S Y0

cat cpu | paste -s >> graph51Testing软件测试网%t5i'n(N J1W&Q

cat mem | paste -s >> graph

MX \]+T|EhG"q0

cat established |paste -s >> graph51Testing软件测试网(Q[/h X"|

fi51Testing软件测试网'Cg8b,F2R

fi

_D*A'IL*s&lqDd0

#6$# #7^#

s3UKn1{Um|5qP0

if [ $MODE = SC -o $MODE = SERVER ] ; then

G I1aQ9Y"IE0

#8^#

.O`]1]9DF0

if [ $BTIME -lt $MAXTIME -o $NUMBER -lt $MAXNUMBER ] ; then51Testing软件测试网4e Su#d s

sum=`cat sum`

$BY"DQ*H0

echo \ ; echo \ >>file51Testing软件测试网P_] [/FS1u7QF

echo "本次测试共下载了 $sum 次" >> file

w3|7Y;OL*TKon0

succok=`cat succok`

^S w:yfi0

echo \ ; echo \ >>file

Z2S-Mmp4NCv9Lf0

echo "本次测试共下载成功了 $succok 次" >> file51Testing软件测试网,FAVZ D2_8E&Ae

SUCCOK=`echo "scale=2;$succok/$sum*100" |bc`%

uFq6bq yL0

echo \ ; echo \ >>file51Testing软件测试网sC$T]Zk X

echo "本次测试的成功率为 $SUCCOK " >> file

;yA-~6d\5[)P2Y0

fail=`cat fail`

"IVS#h$m0

echo \ ; echo \ >>file

x;r N;kpZ/\0

echo "本次测试共下载失败了 $fail 次" >>file51Testing软件测试网^'isI:g5P

FAIL=`echo "scale=2;$fail/$sum*100" | bc`%

a2{DkQ[,_|7A3i0

echo \ ; echo \ >>file

]4vC w7Em0

echo "本次测试的失败率为 $FAIL" >> file

`:b8sUWL}0

startfail=`cat startfail |awk '{print $2}'`

A5I|Gq%S(][|0

grep fail test.logwhile &> /dev/null51Testing软件测试网i2k0m+k;q(cjx"a*F

if [ $? -eq 0 ] ; then

Ck)seI g ^2DH5o0

echo \ ; echo \ >>file51Testing软件测试网mQa/RtS"B

echo "本次测试在启动第 $startfail 次开始出现下载失败现象。 " >> file

yX'w/\;}K7^7F0

fi51Testing软件测试网\caf o/n Q9Ho

fi51Testing软件测试网 XCc6W:T8[n4G

#8$#

aS.W%] O1~F0

fi51Testing软件测试网r z!o0be!{

#7$#
killall bash &>/dev/null

ps aux |grep wget |grep -v grep |awk '{print $2}'|xargs kill -9 &>/dev/null

m!ep#{,w4m7@g-Ev0

ps aux |grep test.sh |grep -v grep |awk '{print $2}'|xargs kill -9 &>/dev/null

(x3u0J,C8C0

sleep 3

-]-rY8dOtD`2}0

clear

,_NJ4u(Sj#\0

if [ $MODE = SC -o $MODE = SERVER ] ; then51Testing软件测试网Y[%N#h,L

for i in {1..1000}51Testing软件测试网? S@Z+f!Q qJ!J|

do51Testing软件测试网N%Qkx-SAE ~[N+n

echo $i > /dev/null

|:G!f/C4h4T0

echo ;51Testing软件测试网7Osx9_T[vw

done51Testing软件测试网l| O&W:M~q"I+X

fi

.o{_jL,L~)o vh0

clear51Testing软件测试网lQ2La(u5iD

echo ; echo ;51Testing软件测试网&?S0p(jPqeg

cat file;rm -f test.logfor;rm -f ok;rm -f whstat;rm -f mem; rm -f cpu; rm -f fail; rm -f succok51Testing软件测试网~s.KsJE/a j

rm -f sum;rm -f startfail;rm -rf established;rm -f test.logwhile;rm -f sta

t0t+g,^0^?i%U T@0

echo ; echo ;51Testing软件测试网 O+~*K%q,P3[-U

ps aux |grep webtest|grep -v grep |awk '{print $2}'|xargs kill -9 &>/dev/null

,f(WZt0z kD/|h-n0

break

9h9|r:tP*~0

TAG: 压力测试脚本 webtest

 

评分:0

我来说两句

Open Toolbar