一.概述
臨時接到任務要對系統的接口進行壓測,上面的要求就是:壓測,並發2000
在不熟悉系統的情況下,按目前的需求,需要做的步驟:
- 需要有接口腳本
- 需要能監控系統性能
- 需要能定時執行腳本
二.觀察
>針對第一點:接口腳本
需要觀察系統接口的情況:
- 系統使用swagger文檔編輯接口,這很好,可以直接引用
- 系統內關聯接口熟悉,將需要的參數設置成變量以便調用
- 系統內的接口返回狀態很規范,可以直接判斷code&message
綜上,為了效率,選擇現存的開源工具執行(針對該開源工具的要就是可以使用命令行執行:jmeter)【備注:因為要定時執行】
>針對第二點:監控系統性能
觀察系統服務器:
- 系統為Linux
- Linux上的監控工具很多,要求是可以輸出到文件並可對該文件進行分析
- 或者,可以自己編寫shell腳本監控獲取信息,比如:top【為了效率,選擇一款自主搭配即可(當前選擇:nmon)】
>針對第三點:定時執行腳本
觀察腳本即將存放並執行的系統
- Linux系統自帶crontab命令可執行定時任務
三.編寫
> 編寫步驟:
1.使用jmeter編寫接口腳本,並增加壓測線程數,並編寫啟動腳本:StartJmx.sh
source /etc/profile
rm -rf ****.jtl /絕對路徑/jmeter -n -t /絕對路徑/debugTest.jmx -l /絕對路徑/****.jtl
sleep 10
nmonpid=`ps -ef | grep nmon | awk '{print $2}'`
kill -9 ${nmonpid}
2.服務器上安裝nmon,並編寫啟動腳本:StartNmon.sh
#每5秒采集一次,采集120次,共10分鍾的數據 nohup nmon -f -T -s 5 -c 120 -m /絕對路徑文件夾 & echo $! > nmonpid
3.編寫定時腳本
0 15 * * * sh /絕對路徑/StartNmon.sh 0 15 * * * sh /絕對路徑/StartJmx.sh
四.綜述
>以上除開jmeter腳本編寫,其他編寫時間不超過1小時
- 當任務來臨的時候,不要慌張不要拒絕,先和對接人溝通相應的事宜,明確需求
- 需求明確之后,請思考實現方式,方式總是多種多樣的,或請教前輩或上網求解
- 臨時任務的重點均在於效率,這個前置條件給出的寬裕就是:你不需要把方案做的很完美,能得出結論即可
- 方案可后續再改良~