黑羽壓測 比 jmeter、locust、loadrunner 更簡便,效能更強

白月黑羽發表於2019-07-21

視訊講解


點選下方連結,觀看 講解視訊

https://www.bilibili.com/video/av60089015/

動機

目前市場上對API介面做效能測試工具有 Jmeter、LoadRunner、AB、Locust等。

白月黑羽用過之後,覺得它們各有優點和不足,總體不是很滿意。

所以 決定 開發一款免費的效能測試工具,希望集上面這些工具的優點,提供給大家使用。並且根據大家的反饋 不斷的改進。

於是就有了 這款 HyLoad,中文名叫 黑羽壓測

特點

黑羽壓測 這款工具,立足 簡單易用 和 效能強 兩個特性。

  • 簡單易用

    點選就可以產生 測試程式碼模板,修修改改 就能進行測試

  • 效能強

    單機可達 每秒 一萬個請求,併發連線數可達 數萬

下載地址

百度網盤:

下載連結

提取碼:f4br

安裝過程

安裝非常簡單,雙擊安裝程式,就會自行安裝了。

安裝好以後,黑羽壓測 會自行啟動。

黑羽壓測 需要 監聽獲取效能統計資料,所以初次啟動,Windows會有防火牆提示選擇允許即可。

image

快速開始

HyLoad做效能測試通常分為如下幾步:

 

第1步 建立專案

HyLoad 的介面如下圖所示

image

這個介面 就是讓使用者選擇或者建立專案的。

HyLoad 專案 就是一個目錄,裡面包含了效能測試的定義檔案。

點選 介面 新建專案按鈕,在彈出介面 輸入 專案的 目錄名, 並且為專案選擇上級路徑。比如,下圖所示

image

 

點選確定,上方就會出現當前的專案路徑,如下所示

image

 

第2步 定義單個客戶端行為

點選左邊選單欄 這裡,

image

定義單個客戶端行為。

效能測試是 模擬 大量的客戶端大批量的傳送請求訊息 給 被測的伺服器。

那麼,其中每個 客戶端的行為 是怎樣的? 需要我們先定義好。

單個客戶端行為定義好 以後, 我們在第3步只要指定產生 多少個 這樣的客戶端就可以了。

 

首先,我們點選這裡,新增一個客戶端的行為定義。

image

這樣會建立一個名為 act-1 的客戶端的行為定義檔案。

 

客戶端的行為定義 其實就是一段 Python程式碼。

不會寫Python程式碼的小朋友們,不用害怕,我們的工具會幫你自動產生程式碼哦。

點選右邊的這些欄目,就會產生 對應的程式碼。

image

大家可以按照上面的箭頭所示,依次從上到下,點選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')} ") 

 

 

 

這就是 客戶端行為定義, 做好了以後,點選 右上方的執行按鈕,就會先執行一下單個使用者的測試。

工具會開啟終端視窗,執行該程式碼, 結果如下

image

 

當然,我們做效能測試,一個客戶端,通常也是要反覆地傳送訊息,這時,可以選擇迴圈傳送請求,

image

然後,修改一下程式碼,變成下面這樣

client = HttpClient('hq.sinajs.cn', 
                        timeout=10
                       ) 

while True:
    response = client.sendAndRecv(
        'GET',
        "/list=sh601006", # 修改url
        duration=1 # 接收到響應後等待,確保本操作耗時1秒
    )

 

 

這樣的修改,就是要求這個客戶端每隔一秒鐘,傳送一個 HTTP請求 給被測的伺服器。

 

第3步 定義效能測試場景

單個客戶端定義好了, 要做效能測試,只要點選左側選單欄這裡,定義效能測試場景

image]

同樣,點選下圖處,新增一個效能場景定義。

image

然後,點選這裡,插入 建立10個客戶端 的示例程式碼

image

如下所示

# 定義效能場景,點選右邊條目,可自動插入功能程式碼

createClient(
    'act-1', # 客戶端名稱
    10,      # 啟動客戶端數量
    0.1      # 每隔多少秒,啟動一個客戶端
    )

 

 

 

當然,你可以自行修改客戶端的數量。

這裡,如果就是10個客戶端,每個客戶端每秒傳送一個請求,10個客戶端就是每秒10個請求。

隨後,點選右上角執行按鈕,就會開啟一個視窗,按照我們的定義,執行該 效能測試了。如下

image

 

監控統計

點選左邊選單欄的 監控統計 圖示,可以檢視本次效能測試的實時監控,如下所示

image

 

如果你想結束本次效能測試,只需要關閉 執行效能測試的命令列視窗即可。

等整個效能測試結束,通常你需要產生這次效能測試的 統計圖表,包括如下資料的圖表

  • rps , 每秒傳送請求數

  • tps , 每秒接收響應數

  • eps, 每秒錯誤響應數

  • tops, 每秒超時請求個數

  • avgresptime, 每秒平均響應時長

這些統計資料, 都儲存在專案的目錄中的資料檔案裡面。

只需要點選 資料檔案統計按鈕,然後選擇剛剛產生的資料檔案(檔名就是當前日期時間),如下所示

image]

這樣,就會產生統計圖,如下所示

image

你可以點選上圖箭頭處,將統計圖最終存為圖片,方便放到測試報告中。

相關文章