jmeter+nmon+crontab簡單的執行介面定時壓測

软件测试潇潇發表於2024-03-05

臨時接到任務要對系統的介面進行壓測,上面的要求就是:壓測,併發2000

在不熟悉系統的情況下,按目前的需求,需要做的步驟:

  1. 需要有介面指令碼
  2. 需要能監控系統效能
  3. 需要能定時執行指令碼

二、觀察

>針對第一點:介面指令碼

需要觀察系統介面的情況:
  • 系統使用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小時

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

總結

最後如果你想學習軟體測試和需要軟體測試資料,歡迎加入筆者的交流群:731789136,裡面可以免費領取軟體測試+自動化測試資料+軟體測試面試寶典+簡歷模版+實戰專案+面試刷題工具和大佬答疑解惑,我們一起交流一起學習!

相關文章