1. 程式人生 > 實用技巧 >使用jmeter進行api介面壓力測試(轉自某位大佬,感謝)

使用jmeter進行api介面壓力測試(轉自某位大佬,感謝)

大佬的原文地址:https://blog.csdn.net/w88193363/article/details/80815718?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.edu_weight&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.edu_weight

前言

壓力測試的工具挺多的,但看了其他人的文章介紹,還是選了jmeter,開源、免費啊,

下載

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

環境配置

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

%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;
%JMETER_HOME%\lib\jorphan.jar;
%JMETER_HOME%\lib\logkit-2.0.jar;
  • 1
  • 2
  • 3

在Path新增

%JMETER_HOME%/bin 
  • 1

啟動

然後啟動cmd,輸入F:\apache-jmeter-4.0\bin\jmeter.bat


啟動後:

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]
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

建立測試用例

建立執行緒組

在測試計劃中右鍵彈出選單,新增-》Threads(Users)-》執行緒組

執行緒組的引數配置

執行緒屬性中,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]
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

為http請求新增檢視結果樹

右鍵點選“http請求”(就是之前新增的http請求項),新增-》監聽器-》檢視結果樹
可在此頁面中檢視每次的api請求過程以及結果,方便後期分析

為http請求新增Summary Report

右鍵點選“http請求”,新增-》監聽器->Summary Report
可在此頁面中檢視報告

開始測試

右鍵點選”執行緒組“,start

測試完成之後,可以檢視每個api請求過程及結果

以及綜合報告

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

Label:取樣器/監聽器名稱

Samples :事務數量

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

Min:最小響應時間

Max:最大響應時間

以上單位都是ms

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

Error %:錯誤事務率

Throughtput:每秒事務數,即tps

KB/sec:網路吞吐量