#!/bin/bash #################################################################################
# 說 明
# 2、多線程測試
#
# 使用方法: ./webtest
# 使用本腳本程序,可進程對網關web進行壓力測試,測試
# 功能主要包括:
# 1、對自身機器的壓力測試
# 2、對其他機器的壓力測試
#
################################################################################### ######################################自定義部分####################################
#
# 參數簡介:
# SERVER為配置要測試的機器IP地址
# NAME定義設備的名稱
# GRAPH定義是否生成折線圖的參數文件
# VALUE此值為定義對下載速度測試的次數
# TIME 配置是否開啟長時間測試,不間斷測試
# MODE 配置本機器擔當的角色
#
##################################################################################### #要測試的URL地址,也可寫ftp的。
URL=https://192.168.0.133/wget.jsp
export URL #服務器標識
NAME=lanse #設置是否生成圖表數據
#GRAPH=OFF
GRAPH=ON #設置下載速度測試的次數;
#如果在SERVER端配置此參數后,客戶端無法同步,可以tailf test.logfor;
#當wget到這個數值時,再在客戶端執行腳本。如果不需要可以將此處設置為0;
#SC模式不受其影響
VALUE=0 #VALUE=5000 #長時間壓力測試單位(分鐘);
#配置TIME小于MAXTIME為開啟長時間壓力測試。如果相等為不開啟。 MAXTIME=6000
TIME=6000 #設置模式,分(SC/SERVER/CLIENT)
#SC 即是客戶端模式,又是服務器模式,主要用于自壓測試;
#SERVER 主要用來測試別的設備;
#CLIENT 當作客戶端來用,主要配合另一臺SERVER對自己的壓力測試來提取系統資源信息。 #MODE=CLIENT
MODE=SERVER
#MODE=SC #配置壓力級別, 分0/1/2/3, 4個級別,級別越高,壓力越小, 默認0為最大壓力;
#適合穩定性測試。 LEVEL=0
#LEVEL=1
#LEVEL=2
#LEVEL=3 #配置停止幾秒后增加一個線程。 SPACE=3 #配置本次壓力的測試,一共下載多少次,用來精確分析數據,最好不要與長時間同時配置;
#主要可以得到對不同設備測試,下載所用時間,成功率,失敗率;
#如果同時配置,那個先執行完就結束進程;
#配置NUMBER小于MAXNUMBER為開啟狀態。 MAXNUMBER=9000000
NUMBER=3000
###########################程序運行部分########################################
>file
>startfail
>test.logfor
echo 2 >sta
date +%s > time
echo 2 > whstat
>OK
>test.logwhile
>graph
>established #1^$#
if [ $MODE = SC -o $MODE = SERVER ] ; then echo 'time=`date +"%Y-%m-%d %H:%M:%S"`' > test.sh
echo "while [ 1 ] " >> test.sh
echo "do" >> test.sh
echo "wget $URL -c -q -t 3 -T 5 --no-check-certificate" >>test.sh
echo ' if [ $? -eq 0 ] ; then ' >>test.sh
echo ' echo $time wget ok >> test.logwhile ' >>test.sh
echo " else " >> test.sh
echo ' echo $time wget fail >> test.logwhile ' >>test.sh
echo " fi" >>test.sh
if [ $LEVEL -eq 1 ] ; then
echo "sleep 1 " >> test.sh
fi
if [ $LEVEL -eq 2 ] ; then
echo "sleep 2 " >> test.sh
fi
if [ $LEVEL -eq 3 ] ; then
echo " sleep 3 " >> test.sh
fi
echo "done" >> test.sh
chmod a+x test.sh
for ((i=0;i<=$VALUE;i++))
do
#2^#
wget $URL -c -q -t 3 -T 5 --no-check-certificate
if [ $? -eq 0 ] ; then
echo $time wget ok $i >> test.logfor
else
echo $time wget fail $i >> test.logfor
fi
#2$#
done
T=`cat time`
N=`date +%s `
S=`echo "$N-$T" | bc `
M=`echo "scale=1;$S/60"|bc |awk -F. '{print $1}'`
MS=`echo "scale=1;$S/60"|bc |awk -F. '{print $2*0.01*60}'|awk -F. '{print $1}'`
echo \ ; echo \ >> file
echo "當前模式為 【 $MODE 】 模式" >> file
echo \ ; echo \ >> file
echo "下載速度測試結果:" >>file
if [ $S -lt 60 ] ; then
echo \ ; echo \ >> file
echo "本次下載用了$S 秒" >>file
原文轉自:http://www.anti-gravitydesign.com