視訊講解
點選下方連結,觀看 講解視訊
https://www.bilibili.com/video/av60089015/
動機
目前市場上對API介面做效能測試工具有 Jmeter、LoadRunner、AB、Locust等。
白月黑羽用過之後,覺得它們各有優點和不足,總體不是很滿意。
所以 決定 開發一款免費的效能測試工具,希望集上面這些工具的優點,提供給大家使用。並且根據大家的反饋 不斷的改進。
於是就有了 這款 HyLoad
,中文名叫 黑羽壓測
。
特點
黑羽壓測 這款工具,立足 簡單易用 和 效能強 兩個特性。
-
簡單易用
點選就可以產生 測試程式碼模板,修修改改 就能進行測試
-
效能強
單機可達 每秒 一萬個請求,併發連線數可達 數萬
下載地址
百度網盤:
提取碼:f4br
安裝過程
安裝非常簡單,雙擊安裝程式,就會自行安裝了。
安裝好以後,黑羽壓測 會自行啟動。
黑羽壓測 需要 監聽獲取效能統計資料,所以初次啟動,Windows會有防火牆提示選擇允許即可。
快速開始
HyLoad做效能測試通常分為如下幾步:
第1步 建立專案
HyLoad 的介面如下圖所示
這個介面 就是讓使用者選擇或者建立專案的。
HyLoad 專案 就是一個目錄,裡面包含了效能測試的定義檔案。
點選 介面 新建專案
按鈕,在彈出介面 輸入 專案的 目錄名, 並且為專案選擇上級路徑。比如,下圖所示
點選確定,上方就會出現當前的專案路徑,如下所示
第2步 定義單個客戶端行為
點選左邊選單欄 這裡,
定義單個客戶端行為。
效能測試是 模擬 大量的客戶端
大批量的傳送請求訊息 給 被測的伺服器。
那麼,其中每個 客戶端的行為 是怎樣的? 需要我們先定義好。
單個客戶端行為定義好 以後, 我們在第3步只要指定產生 多少個 這樣的客戶端就可以了。
首先,我們點選這裡,新增一個客戶端的行為定義。
這樣會建立一個名為 act-1 的客戶端的行為定義檔案。
客戶端的行為定義 其實就是一段 Python程式碼。
不會寫Python程式碼的小朋友們,不用害怕,我們的工具會幫你自動產生程式碼哦。
點選右邊的這些欄目,就會產生 對應的程式碼。
大家可以按照上面的箭頭所示,依次從上到下,點選3個條目,就會產生如下所示的程式碼
# 建立客戶端 client = HttpClient('127.0.0.1', # 目標地址:埠 timeout=10 # 超時時間,單位秒 ) # 傳送 GET 請求 response = client.sendAndRecv( 'GET', # 請求方法 GET/POST/PUT/DELETE等 "/api/path1" # 請求URL ) print(f"訊息體字串為 {response.string('utf8')} ")
顯然,這是建立 客戶端、傳送請求給伺服器、獲取伺服器響應訊息體內容(如果是json格式的話)。
注意,點選右邊條目的時候,程式碼會插入在當前游標處,所以務必注意游標在編輯視窗中的位置。
我們以新浪的股票介面為例,它的API 服務 url是 http://hq.sinajs.cn/list=sh601006
最後list的值是股票程式碼。
那麼我們只要簡單修改一下上面自動生成的程式碼,如下所示,注意註釋的解釋
# 目標地址改為新浪伺服器地址 client = HttpClient('hq.sinajs.cn', timeout=10 ) response = client.sendAndRecv( 'GET', "/list=sh601006" # 請求URL修改 ) # 由於服務端返回的json格式資料是gbk編碼 # 所以改為gbk print(f"訊息體字串為 {response.string('gbk')} ")
這就是 客戶端行為定義, 做好了以後,點選 右上方的執行按鈕,就會先執行一下單個使用者的測試。
工具會開啟終端視窗,執行該程式碼, 結果如下
當然,我們做效能測試,一個客戶端,通常也是要反覆地傳送訊息,這時,可以選擇迴圈傳送請求,
然後,修改一下程式碼,變成下面這樣
client = HttpClient('hq.sinajs.cn', timeout=10 ) while True: response = client.sendAndRecv( 'GET', "/list=sh601006", # 修改url duration=1 # 接收到響應後等待,確保本操作耗時1秒 )
這樣的修改,就是要求這個客戶端每隔一秒鐘,傳送一個 HTTP請求 給被測的伺服器。
第3步 定義效能測試場景
單個客戶端定義好了, 要做效能測試,只要點選左側選單欄這裡,定義效能測試場景
]
同樣,點選下圖處,新增一個效能場景定義。
然後,點選這裡,插入 建立10個客戶端 的示例程式碼
如下所示
# 定義效能場景,點選右邊條目,可自動插入功能程式碼 createClient( 'act-1', # 客戶端名稱 10, # 啟動客戶端數量 0.1 # 每隔多少秒,啟動一個客戶端 )
當然,你可以自行修改客戶端的數量。
這裡,如果就是10個客戶端,每個客戶端每秒傳送一個請求,10個客戶端就是每秒10個請求。
隨後,點選右上角執行按鈕,就會開啟一個視窗,按照我們的定義,執行該 效能測試了。如下
監控統計
點選左邊選單欄的 監控統計 圖示,可以檢視本次效能測試的實時監控,如下所示
如果你想結束本次效能測試,只需要關閉 執行效能測試的命令列視窗即可。
等整個效能測試結束,通常你需要產生這次效能測試的 統計圖表,包括如下資料的圖表
-
rps , 每秒傳送請求數
-
tps , 每秒接收響應數
-
eps, 每秒錯誤響應數
-
tops, 每秒超時請求個數
-
avgresptime, 每秒平均響應時長
這些統計資料, 都儲存在專案的目錄中的資料檔案裡面。
只需要點選 資料檔案統計
按鈕,然後選擇剛剛產生的資料檔案(檔名就是當前日期時間),如下所示
]
這樣,就會產生統計圖,如下所示
你可以點選上圖箭頭處,將統計圖最終存為圖片,方便放到測試報告中。