Jmeter接口壓力測試

Jmeter下載

下載地址:
https://jmeter.apache.org/download_jmeter.cgilinux

環境配置

下載後解壓zip到任意目錄,而後配置環境變量
變量名JMETER_HOME,變量值F:\apache-jmeter-4.0
在變量名CLASSPATH新增web

%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;
%JMETER_HOME%\lib\jorphan.jar;
%JMETER_HOME%\lib\logkit-2.0.jar;

在Path新增數據庫

%JMETER_HOME%/bin 

啓動

而後啓動cmd,輸入F:\apache-jmeter-4.0\bin\jmeter.batapache

也能夠進入到安裝包bin目錄下啓動jmeter.batjson

 

 

 啓動後:api

 

 

 jmeter的主界面以下:服務器

 

 

 

所需的api參數

咱們如今準備對以太坊的jsonrpcapi接口進行測試
地址是:
http://192.168.10.131:8545
http請求頭部配置:
Content-Type:application/json
請求內容:網絡

{
    "jsonrpc":"2.0",
    "id":1,
    "method":"eth_getBlockByNumber",
    "params":["0x331f75",true]
}

建立測試用例

建立線程組

在測試計劃中右鍵彈出菜單,添加-》Threads(Users)-》線程組併發

 

 

 線程組的參數配置app

 

 

 

線程屬性中,Ramp-Up Period(in seconds),間隔多長時間啓動1個線程,直到建立100個線程,若是爲0的話,則在開始測試後馬上建立100個線程
能夠選中「調度器」,設置須要持續測試的時間,

設置http請求頭部
在一般編寫的api中,是須要配置http請求頭部的,在jmeter中也由相關的設置,
在線程組單擊右鍵出現菜單欄,添加-》配置元件-》HTTP信息頭管理器

 

 

 添加api中須要的頭部配置信息

 

 

 

設置http請求默認值

http請求默認值的設置,能夠設置請求的服務器,其餘環境下的http請求只需添加對應的子路徑便可完成測試,
方便測試環境與生產環境之間的切換

 

 

 通常設置好服務器地址便可

 

 

 

設置http請求

右鍵點擊「線程組」,出現菜單,添加-》Sampler-》HTTP請求

 

 

 HTTP請求的路徑,本次測試並未填寫,可根據實際狀況添加
在BodyData,中填入須要請求的參數,這裏以太坊的jsonrpc-api,須要請求的參數是json格式的

{
    "jsonrpc":"2.0",
    "id":1,
    "method":"eth_getBlockByNumber",
    "params":["0x331f75",true]
}

 

 

 

爲http請求添加查看結果樹

右鍵點擊「http請求」(就是以前添加的http請求項),添加-》監聽器-》查看結果樹
可在此頁面中查看每次的api請求過程以及結果,方便後期分析

 

 

 

爲http請求添加Summary Report

右鍵點擊「http請求」,添加-》監聽器->Summary Report
可在此頁面中查看報告

 

 

 測試完成以後,能夠查看每一個api請求過程及結果

 

 

 以及綜合報告

 

 

 

綜合報告各個參數指標說明

Label:取樣器/監聽器名稱

Samples :事務數量

Average:平均一個完成一個事務消耗的時間(平均響應時間)

Min:最小響應時間

Max:最大響應時間

以上單位都是ms

Std.Dev:偏離量,越小表示越穩定

Error %:錯誤事務率

Throughtput:每秒事務數,即tps

KB/sec:網絡吞吐量

壓力測試

  壓力測試分兩種場景:一種是單場景,壓一個接口的;第二種是混合場景,多個有關聯的接口。壓測時間,通常場景都運行10-15分鐘。若是是疲勞測試,能夠壓一天或一週,根據實際狀況來定。

壓測任務需求的確認

壓測前要明確壓測功能和壓測指標,通常須要肯定的幾個問題:

  1. 固定接口參數進行壓測仍是進行接口參數隨機化壓測?
  2. 要求支持多少併發數?
  3. TPS(每秒鐘處理事務數)目標多少?響應時間要達到多少?
  4. 壓服務器名稱仍是壓服務器IP,通常都是壓測指定的服務器

壓測設置

  1. 線程數:併發數量,能跑多少許。具體說是一次存在多少用戶同時訪問
  2. Rame-Up Period(in seconds):表示JMeter每隔多少秒發動併發。理解成準備時長:設置虛擬用戶數須要多長時間所有啓動。若是線程數是20,準備時長爲10,那麼須要10秒鐘啓動20個數量,也就是每秒鐘啓動2個線程。
  3. 循環次數:這個設置不會改變併發數,能夠延長併發時間。總請求數=線程數*循環次數
  4. 調度器:設置壓測的啓動時間、結束時間、持續時間和啓動延遲時間。

壓測結果查看

  運行完後,聚合報告會顯示壓測的結果。主要觀察Samples、Average、error、Throughput。

  1. Samples:表示一共發出的請求數
  2. Average:平均響應時間,默認狀況下是單個Request的平均響應時間(ms)
  3. Error%:測試出現的錯誤請求數量百分比。若出現錯誤就要看服務端的日誌,配合開發查找定位緣由
  4. Throughput:簡稱tps,吞吐量,默認狀況下表示每秒處理的請求數,也就是指服務器處理能力,tps越高說明服務器處理能力越好。

壓測結果的分析

  1. 有錯誤率同開發確認,肯定是否容許錯誤的發生或者錯誤率容許在多大的範圍內;

  2. Throughput吞吐量每秒請求的數大於併發數,則能夠慢慢的往上面增長;若在壓測的機器性能很好的狀況下,出現吞吐量小於併發數,說明併發數不能再增長了,能夠慢慢的往下減,找到最佳的併發數;

  3. 壓測結束,·登錄相應的web服務器查看CPU等性能指標,進行數據的分析;

  4. 最大的tps:不斷的增長併發數,加到tps達到必定值開始出現降低,那麼那個值就是最大的tps。

  5. 最大的併發數:最大的併發數和最大的tps是不一樣的機率,通常不斷增長併發數,達到一個值後,服務器出現請求超時,則可認爲該值爲最大的併發數。
  6. 壓測過程出現性能瓶頸,若壓力機任務管理器查看到的cpu、網絡和cpu都正常,未達到90%以上,則能夠說明服務器有問題,壓力機沒有問題。
  7. 影響性能考慮點包括:數據庫、應用程序、中間件(tomact、Nginx)、網絡和操做系統等方面。

jmeter在linux下進行壓力測試

    1. jmeter 在linux安裝 
        簡單說下,就是要先安裝jdk,同時再配置環境變量,最後再上傳jmeter壓縮的安裝包,在linux下解壓完安裝包就可使用了。推薦博客:http://blog.csdn.net/zhemeteor/article/details/51315874

    2. jmeter在linux運行 
      進入jmeter下的bin目錄下運行腳本,未配置jmeter環境變量的條件下,運行的命令:

      ./jmeter -n -t a.jmx -l res.jtl

      其中a.jmx是準備好的jmeter腳本,res.jtl是測試結果文件,測試結果文件能夠導入到jmeter察看結果樹下查看。

相關文章
相關標籤/搜索