jmeter編寫java請求腳本壓測(一)

背景:隨着商業業務不斷擴張,調用adsearch服務頻率越來越高,所以這次想做個壓測,瞭解目前多少併發量可以到達adsearch服務的界值。

這次選用的jmeter壓測工具,壓測思路如圖

1.日誌入參

1.1 日誌選取的adsearch的 getads部分,如圖

思路:rd線上獲取該部分入參下載到本地,我們讀取該部分生成入參對象。(這個套路用到很多工具上,比較省事不用拼參數)

1.2 通過jaskson庫掃描文件轉成對象

ps:jaskson開源庫,用於處理JSON和xml生成對象,百度一下很多博客,遇到問題可以直接搜索都有解決方案。

參考博客:https://blog.csdn.net/u011054333/article/details/80504154

我們拿到日誌之後簡單處理下,變成如圖格式,在我們讀取的要文件的時候,注意下哪部分入參,jaskson是把json結構結合構造函數,自動完成set動作生成有值的對象。

3.jmeterGUI併發

3.1依賴jar包

3.1.1 如何打包

idea 直接使用marven→package就可以把項目打成jar包。打包jar在項目本地路徑/target/.jar

3.1.2 jar放置哪裏

項目jar包和依賴jar需要放置在jmeter本地路徑:./jmeter/apache-jmeter/lib/ext/

坑1:我之前放置在lib同級目錄 extras/下面,一直沒有辦法運行,後面注意看清楚。

坑2:./lib/ 下面jmeter相關的jar不要亂動,否則坑死你,各種莫名錯誤。

3.1.3 項目相關依賴jar包

因爲要調用adsearch肯定要有adsearch的jar,但是還有其他,你有不知道怎麼辦呢,這坑了好久,後面發現一個辦法:

就是你不知道依賴什麼jar先用jmeter的GUI端運行一下,同時打開/bin/jmeter.log查看報錯,非常詳細,缺少那個,找個那放進去就行了。

3.2參數設置

線程數:併發量,可以理解一次有多少用戶同時訪問。

Rame-Up(secondes):jmeter每個多少s增加併發。舉例:1000線程,rame-up=10s。即每s增加100線程。

循環次數:一個線程循環多少次

3.2.1 jmeter併發,註釋鏈接服務的打印,不然打印結果也會被搭理自動請求,服務會提示有誤,報錯如圖:

解決方案:

4.結果分析

下游最大調用量20萬/min :adsearch→zzsearch/zzqr 

最大響應時間:500ms

最大qps:不斷增加併發數,增加一個值後tps出現下降,那麼最大tps就是那個值。

最大併發數:不斷增加併發數,增加到某個值後,服務端不斷出現超時,則最大併發數就是那個值。

5.啓動多個jmeter實例,會提示端口占用,如圖:

解決方案:

晚上很多方案目前有些解決不了,我用就是plan的名稱不變去改裏面xml配置參數,在運行即可

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章