臨時接到任務要對系統的介面進行壓測,上面的要求就是:壓測,併發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小時
- 當任務來臨的時候,不要慌張不要拒絕,先和對接人溝通相應的事宜,明確需求
- 需求明確之後,請思考實現方式,方式總是多種多樣的,或請教前輩或上網求解
- 臨時任務的重點均在於效率,這個前置條件給出的寬裕就是:你不需要把方案做的很完美,能得出結論即可
- 方案可後續再改良~