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

web服务器测试脚本

上一篇 / 下一篇  2012-06-09 22:24:43 / 个人分类:WEB测试

v7gh.LI0
借鉴

#!/bin/sh ################################################################################# 51Testing软件测试网#cO+t d#EF

# 说 明 

s~J#].q [ _d:[f0

# 1、下载耗时测试 51Testing软件测试网B.in4\u/UPl

# 2、多线程测试 

"a-k_ho%BY*MSE0

# 使用方法: ./webtest 

Us0W c/p#q8a0

# 使用本脚本程序,可进程对网关web进行压力测试,测试 

+I4e4xz gm+Ic j| d,^0

# 功能主要包括: 51Testing软件测试网(PiOMr

# 1、对自身机器的压力测试 

1IQ1hvv*W0

# 2、对其他机器的压力测试 51Testing软件测试网Q i4`-WLZE

51Testing软件测试网)~q"p(}8c.W

######################################自定义部分#################################### 

|&B)h.G){0

# 参数简介: 

J+V"~a!x4b0kh.\0

# SERVER为配置要测试的机器IP地址 

5R(s[x4pD~(l0

# NAME定义设备的名称 

WP4D RD!oM0

# GRAPH定义是否生成折线图的参数文件 51Testing软件测试网5EK Ku6p)WC[

# VALUE此值为定义对下载速度测试的次数 51Testing软件测试网 n;_F o3}8vt6G

# TIME 配置是否开启长时间测试,不间断测试 51Testing软件测试网0g;S'F O-xo

# MODE 配置本机器担当的角色 51Testing软件测试网$rN%G3M v E#t I

##################################################################################### 51Testing软件测试网Up] q?[ywv:d

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

q5J,Q5XHPB+N0

URL=https://192.168.0.133/wget.jsp 51Testing软件测试网uvQ.h"LZd

export URL #服务器标识 

7lc7Vmu u0

NAME=lanse #设置是否生成图表数据 

)l!VR_p3G"X0

#GRAPH=OFF 51Testing软件测试网q]iU}O

GRAPH=ON #设置下载速度测试的次数; 

^iYE9PjZ0

#如果在SERVER端配置此参数后,客户端无法同步,可以tailf test.logfor; 51Testing软件测试网*[D[h}#S3cR

#当wget到这个数值时,再在客户端执行脚本。如果不需要可以将此处设置为0; 

#C;S.p5IbC,X1A+Y0

#SC模式不受其影响 

L"H L#i7gt0

VALUE=0 #VALUE=5000 #长时间压力测试单位(分钟); 

KH'~~R:RlDphTI0

#配置TIME小于MAXTIME为开启长时间压力测试。如果相等为不开启。 MAXTIME=6000 51Testing软件测试网L-{6U}/?'F)j9m#|7k Pr

TIME=6000 #设置模式,分(SC/SERVER/CLIENT) 51Testing软件测试网;b x-mmP

#SC 即是客户端模式,又是服务器模式,主要用于自压测试; 

#gW?,p-c0

#SERVER 主要用来测试别的设备; 

AC y0M$ZUE0

#CLIENT 当作客户端来用,主要配合另一台SERVER对自己的压力测试来提取系统资源信息。 #MODE=CLIENT 

h8EK:W Ho$x\W0

MODE=SERVER 51Testing软件测试网@^"t%tyb%h

#MODE=SC #配置压力级别, 分0/1/2/3, 4个级别,级别越高,压力越小, 默认0为最大压力; 

6j,l'oe GG0

#适合稳定性测试。 LEVEL=0 

}7eA4\3m%dxL2M0

#LEVEL=1 51Testing软件测试网"nbmN`

#LEVEL=2 51Testing软件测试网3p sf6FJ:t.Y.l

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

#主要可以得到对不同设备测试,下载所用时间,成功率,失败率; 51Testing软件测试网#Ru#M jPI

#如果同时配置,那个先执行完就结束进程; 51Testing软件测试网 G4P NrMV7r$E `

#配置NUMBER小于MAXNUMBER为开启状态。 MAXNUMBER=9000000 51Testing软件测试网/J5f`{m

NUMBER=3000 

h9c"o4`D2C0

###########################程序运行部分######################################## 51Testing软件测试网uo:mS n,|

>file 51Testing软件测试网S.r7B.CcF

>startfail 

&Uyy'PB7j#\0

>test.logfor 

k `'tBE5k|0

echo 2 >sta 51Testing软件测试网"eSBU$B

date +%s > time 51Testing软件测试网b Fc~v

echo 2 > whstat 

/Y?CF0{/`Yq0

>OK 51Testing软件测试网\ ^-?m2j

>test.logwhile 51Testing软件测试网 I0e T*]\M*nQ c'P

>graph 

]j)X+h-Rakk2J,G0

>established #1^$# 

Nvff-b/O0

if [ $MODE = SC -o $MODE = SERVER ] ; then echo 'time=`date +"%Y-%m-%d %H:%M:%S"`' > test.sh 51Testing软件测试网^*H-P"_{ w w#E

echo "while [ 1 ] " >> test.sh 51Testing软件测试网@(?6XE%\+B

echo "do" >> test.sh 51Testing软件测试网;K"^.R&e_Nlb

echo "wget $URL -c -q -t 3 -T 5 --no-check-certificate" >>test.sh 51Testing软件测试网Z I l`@%t@

echo ' if [ $? -eq 0 ] ; then ' >>test.sh 51Testing软件测试网 H9OL1K_i

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

+kWW ]rd/L0

echo " else " >> test.sh 

?;hj4jg7V^x0

echo ' echo $time wget fail >> test.logwhile ' >>test.sh 51Testing软件测试网 Cj Z&~L#@

echo " fi" >>test.sh 

_9zk,y F i7kk0

if [ $LEVEL -eq 1 ] ; then 

:Q+d.dxma zbC!wD*n0H)f0

echo "sleep 1 " >> test.sh 51Testing软件测试网B/zK2Lu&w;h6nO

fi 51Testing软件测试网"X-zz+{#Dl H%_h

if [ $LEVEL -eq 2 ] ; then 

#HGo{ ufW4|w/^0

echo "sleep 2 " >> test.sh 51Testing软件测试网j1Mw{6nm&Pr

fi 51Testing软件测试网2XuZ(A0f)\5RW5iC

if [ $LEVEL -eq 3 ] ; then 

;Ul:Dc[j2r r0

echo " sleep 3 " >> test.sh 51Testing软件测试网q9o HV V`o-}

fi 51Testing软件测试网_{~rT,R,qV_

echo "done" >> test.sh 

oW2w%?5{)s+Ob0

chmod a+x test.sh 51Testing软件测试网$w \,b;G%Y4QE+Dg

for ((i=0;i<=$VALUE;i++)) 51Testing软件测试网,^'l:\&I?j

do 

DY"d,N!]Zbdm0

#2^# 

&U}*m"U0v,y1iK0

wget $URL -c -q -t 3 -T 5 --no-check-certificate 51Testing软件测试网 s$LV1E6W

if [ $? -eq 0 ] ; then 

Ez$Ln7j^0

echo $time wget ok $i >> test.logfor 

ypW&]E$c)o0

else 

1XbL:G rKL}0

echo $time wget fail $i >> test.logfor 51Testing软件测试网K9M}Q7|PRa

fi 51Testing软件测试网nZ PJ+r[ }5_4E'r

#2$# 51Testing软件测试网 B%XG!`;P,l,R1F ^y.`

done 51Testing软件测试网WKq0gY,X|9v.K

T=`cat time` 

&bwoJ q1Qi[0

N=`date +%s ` 51Testing软件测试网 `B;p5qNOn

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

1ja~R-Ec p0

M=`echo "scale=1;$S/60"|bc |awk -F. '{print $1}'` 51Testing软件测试网7C%q*v%u#}%C'}^1Oc

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

;ti/b| B8rF$b0

echo \ ; echo \ >> file 51Testing软件测试网 lN@x Z-|I4M1a

echo "当前模式为 【 $MODE 】 模式" >> file 51Testing软件测试网]9l7Gy'j

echo \ ; echo \ >> file 

3wU;[r0}0

echo "下载速度测试结果:" >>file 51Testing软件测试网0Y.P:f(M1Dn

if [ $S -lt 60 ] ; then 

3Pr0x%Y/w Y0

echo \ ; echo \ >> file 

v.yi*vo@0

echo "本次下载用了$S 秒" >>file 51Testing软件测试网eZ x9~nX.i

else51Testing软件测试网2]-UK%\s |ff0\ d

echo \ ; echo \ >> file51Testing软件测试网r$t MO8HHU

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

[)I-}R8a%m0

fi51Testing软件测试网ZtQszM,w/n(}

F=`grep fail test.logfor |wc -l `

l{,t@}*e#DR0

O=`grep ok test.logfor |wc -l `51Testing软件测试网8Kf q@(yqGS

echo \ ; echo \ >>file51Testing软件测试网*e0~T}+H&Fx

echo "下载成功 $O 个" >>file51Testing软件测试网bj1]p^8xl

echo \ ; echo \ >> file

R$jieZQ0P0

echo "下载失败 $F 个" >>file51Testing软件测试网)LV^8_Be"x!C bs

fi51Testing软件测试网D+cNh"U

#1$# BTIME=`echo "$TIME*60"|bc`51Testing软件测试网QF)T%H-eoc

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

5X{ b*GN0|0

if [ $MODE = SC -o $MODE = SERVER -o $MODE = CLIENT ] ; then51Testing软件测试网J9|"i3n/L:N

while [ 1 ]51Testing软件测试网D W X[7{t

do

BrDu9U ]^0

#4^#51Testing软件测试网'@ wQl"V W W"K h0^

grep 1 whstat &>/dev/null51Testing软件测试网 e)HTX"qPmS:E vq

if [ $? -eq 0 ] ; then

m4` l5_4?#f$zt0

echo \ ; echo \ >> file

9Z!H&y6AR} o0

if [ $MODE = CLIENT ] ; then

5R^(|+f&_d-^.Vuv8p0

echo \ ; echo \ >> file51Testing软件测试网7DviZ.y.huj

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

d)Dl H-m mV0

fi51Testing软件测试网t(Q*@[K

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

4o%o~8t:N Pj qV6e.E0

echo \ ; echo \ >> file51Testing软件测试网(Fv"bT.BH`

echo "本次测试的对象链接为 $URL " >> file51Testing软件测试网{k#D&I#bE~

fi
echo \ ; echo \ >> file

echo "下载压力测试结果:" >>file51Testing软件测试网k \~ nR g:xW:YxA

#5^#51Testing软件测试网(RX?a H8A/Em b+r(~-O

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

n a7E BVt'K4j O0

OK=`tail -n 1 ok |awk '{print $2}'`51Testing软件测试网)Q)M5Tc V/}

echo \ ; echo \ >> file

6B8o x0g.\Y0

echo "本次测试共成功启动了 $OK 次进程" >>file51Testing软件测试网"{(|1c+Vj

T=`cat time`

hC u @ GB8I"rro g0

N=`date +%s `51Testing软件测试网S9tD%BLl,M6s*p5u

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

:`bQ^2Xbm:l#E0

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

g4HBl6y'v.n_]%~0

M=`echo "scale=1;$S/60"|bc |awk -F. '{print $1}'`51Testing软件测试网,GQ c%y Eva

MS=`echo "scale=1;$S/60"|bc |awk -F. '{print $2*0.01*60}'|awk -F. '{print $1}'`51Testing软件测试网r:X*M'@XS

if [ $S -lt 60 ] ; then

m@$q.z|QvQ5Q z0

echo \ ; echo \ >> file

&S(?w9@4x%u}#e0

echo "本次测试共用了 $S 秒" >>file51Testing软件测试网i bw0tiN8wa

else

~F]:^Yqp5Bb&J&p0

echo \ ; echo \ >> file

:]3vP J!vc'm"sS0

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

q LMX8G~0

fi

.S+M!q([2Mog0

else51Testing软件测试网{#JF8WtZ+o"f$t R"T

O=`wc -l ok|awk '{print $1}'`51Testing软件测试网WvN~+b

L=`echo "$O*3" | bc `

-sh8p r9sC*N0

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

EpI-M,e)x Z0

echo \ ; echo \ >> file

*a[Xx l2Z/N0

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

/H)dNpRY0?6^0

echo ; echo ;

jJgOL4r&O+fXg3]0

M=`echo "scale=1;$S/60"|bc |awk -F. '{print $1}'`51Testing软件测试网R @\g+J#i

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

f%Z/E` B(\5w5X'z W0

if [ $S -lt 60 ] ; then

Y2S ?D'EHo0

echo \ ; echo \ >> file

P]y(W\)T#`6k0

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

&_1vqE2_sgDI0

else51Testing软件测试网 iy g0X+TziTb

echo \ ; echo \ >> file

.y[+{}YoIPL"i0

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

)eu/h*t-?zX0

fi51Testing软件测试网r~ nJU7U%Y-b3K

fi

0nBd6v8ov2l0

fi51Testing软件测试网Zh|9UM-j w

#5$#51Testing软件测试网6~.y]U3|u

#6^#51Testing软件测试网;q"V-ux#I S|;IE$PY)f

if [ $GRAPH = ON ] ; then

g c9_4\r_u'[D0

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

P,T@)}4Z/^g+t0

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

!n:| x vq KQU/qE+M0

AVEESTAB=`cat established | awk -vESTAB="$ESTAB" '{total+=$1}END {print total/ESTAB}'|awk -F. '{print $1}'`51Testing软件测试网4t-a?o+K7]`

MEM=`wc -l mem |awk '{print $1}'`

t:a#NT*DNr0

AVEMEM=`cat mem |awk -vMEM="$MEM" '{total+=$1}END {print total/MEM"%"}' `

'[9o!cu+t@)eM D5?0

echo \ ; echo \ >>file51Testing软件测试网2h \)so[*IpTq

echo "本次测试机器内存平均使用用率为 $AVEMEM " >> file

/R!}.\1}O#x`OU4n0

CPU=`wc -l cpu |awk '{print $1 }'`51Testing软件测试网`Z%V9_I*|i e2E!n

AVECPU=`cat cpu |grep -v CPU | awk -vCPU="$CPU" '{total+=$1}END {print total/CPU"%"}' `

g"S+yp^e-`-S0

echo \ ; echo \ >>file51Testing软件测试网1R0r XUTv&[N+{lY

echo "本次测试机器CPU平均使用用率为 $AVECPU " >> file51Testing软件测试网&v@s%^PjD"Rdr Z

echo \ ; echo \ >>file51Testing软件测试网SD3|` ~1r#x*Rq

echo "本次测试平均建立的连接为 $AVEESTAB 个" >> file

:o l1pe{0

echo \ ; echo \ >>file

q ~)fZVp Q-@0

echo "提示:【将文件graph用excel打开,生成折线图.】" >>file

6D5h8O@LL3j U0

echo

\BA B!A:A)L8{0

echo " $NAME graph " >> graph51Testing软件测试网%f6}t,{Dp_RJ

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

9M,Q!t7s]&Q6C(a e0

cat cpu | paste -s >> graph

v-`-U,XFT5nc[{l6}0

cat mem | paste -s >> graph

9H$s"m)z!R KLW0

cat established |paste -s >> graph51Testing软件测试网G~4wNKo1[/h

fi

5T Qb }1fl0

fi

r S3[#Kkl+g(J0

#6$# #7^#

$osK'K,y]u&e ]0

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

GP0mSL ?0

#8^#51Testing软件测试网1`a;Y S.IpI&M v{.e q

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

q2EdN-PVKM0

sum=`cat sum`

fY[4u+Z;r|8e0

echo \ ; echo \ >>file

K#w7v7b{"}.Rq0

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

R#O3E[n;n0

succok=`cat succok`51Testing软件测试网 t x(n;|Wq4A_`7w-tM

echo \ ; echo \ >>file51Testing软件测试网J2z%~D V

echo "本次测试共下载成功了 $succok 次" >> file

v?n!^ A6i0

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

G$L0AH;TrE0

echo \ ; echo \ >>file51Testing软件测试网Y)R4J2@ op8Qm

echo "本次测试的成功率为 $SUCCOK " >> file51Testing软件测试网!mQp4[Z | L

fail=`cat fail`

cK V8so_x0

echo \ ; echo \ >>file

|q0|X'R"G&D.v tP oU0

echo "本次测试共下载失败了 $fail 次" >>file51Testing软件测试网&d}'^Q+T&_

FAIL=`echo "scale=2;$fail/$sum*100" | bc`%51Testing软件测试网(s/]QJA }"E SA#Z

echo \ ; echo \ >>file

9Cgj HfJ o6@0

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

r&[{B;dC{ Bv]]0

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

l-tq(v&m j(_%X0

grep fail test.logwhile &> /dev/null

+b R*v+F b"C-b0

if [ $? -eq 0 ] ; then

,t:ZI:|dl;O0

echo \ ; echo \ >>file

,qW7F1Nr(Y0

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

3M*^9hLH5?'t*\p0

fi

0b7o/e w6BC0

fi51Testing软件测试网G5}t4j(XS5pP x*m&y

#8$#

-BL F"hm1B0

fi51Testing软件测试网u8Gk%r L6j,heU w

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

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

qbzC D(s9F0

ps aux |grep test.sh |grep -v grep |awk '{print $2}'|xargs kill -9 &>/dev/null51Testing软件测试网 xf$@.D"V"X

sleep 3

8bmSW6~]M1y0

clear

1sg VWk\pk0

if [ $MODE = SC -o $MODE = SERVER ] ; then51Testing软件测试网j;gbR'r'KA

for i in {1..1000}

;cZ#lY\0

do

BT(KEQ];e.j/|eB*rf0

echo $i > /dev/null51Testing软件测试网\z y`}~

echo ;51Testing软件测试网3N9p:TV1K!z;w#YK

done

#O l5| jWAY:[0

fi

,?X,Q6@e0

clear51Testing软件测试网5P3vMw;@$}K+z

echo ; echo ;

5B(C8u-I;bh"vj0

cat file;rm -f test.logfor;rm -f ok;rm -f whstat;rm -f mem; rm -f cpu; rm -f fail; rm -f succok

t*x3D:r5D)z0

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

U8F5\-C:T0m6S0

echo ; echo ;

hvfx#\]dLc4@0

ps aux |grep webtest|grep -v grep |awk '{print $2}'|xargs kill -9 &>/dev/null51Testing软件测试网[$}o'm Y'o

break

o i:P1K H2i0

TAG: 压力测试脚本 webtest

 

评分:0

我来说两句

Open Toolbar