開源測試工具 JMeter 介紹

EMQX發表於2021-12-01

前言

物聯網正在以爆炸式的增長勢頭飛速發展。隨著裝置規模的不斷增長和業務邏輯的愈發複雜,物聯網平臺在正式上線前,需要通過對平臺大量接入裝置時的可用性和可靠性進行驗證以確保系統質量。物聯網效能測試的價值與必要性因此逐漸凸顯。

一方面,效能測試為評估物聯網系統提供依據,從設計指標、可擴充套件性和可靠性多個維度加以驗證;另一方面,效能測試也有助於物聯網系統的優化,幫助及早發現系統效能瓶頸,提供調優建議。此外,效能測試還可以輔助容量計劃的制定,為未來擴容計劃提供參考。

而物聯網系統接入裝置量大、協議多樣化、整合架構複雜、跨部門開發協作頻繁這些特點,也使物聯網效能測試面臨著重重挑戰。本系列文章將以基於 EMQ X 的物聯網平臺為例,介紹如何使用效能測試工具進行平臺相關質量指標的驗證與測試。

測試工具的選擇——JMeter 簡介

我們選擇 JMeter 作為本次的測試工具。

JMeter 是 Apache 基金會旗下一款開源軟體,主要通過模擬併發負載來實現效能測試,是目前開源社群的主流效能測試工具。其主要具有以下優勢:

  • 內建多種協議的測試支援,如 TCP、HTTP/HTTPS 等。
  • 提供靈活的外掛擴充套件機制,支援第三方擴充套件其他的協議。對於物聯網系統中種類繁多的協議,只需按 JMeter 的框架要求定製開發所需協議業務邏輯,就能方便地放入 JMeter 的外掛庫,使用 JMeter 既有功能進行該協議的效能測試。
  • 具有良好的社群支援。

JMeter 的安裝

目前 JMeter 最新穩定版本是 5.4.1,由於 JMeter 是基於 Java 的,5.4.1 版本的 JMeter 需要預先安裝 Java 8 及以上的支援(可從以下地址獲取:https://www.oracle.com/java/t... )。

安裝完 Java 後,從官網下載 JMeter:https://jmeter.apache.org/dow...

下載完成後解壓,並進入解壓後目錄下的 bin 子目錄。根據作業系統的不同,執行 jmeter.bat(Windows系統)或 jmeter(Unix系統)。如果一切順利,JMeter 的指令碼編輯介面將會呈現在您的面前:

安裝 JMeter

接下來,我們以 HTTP 為例,看一下如何使用 JMeter 來構建並執行一個簡單的測試用例。

  1. 新增虛擬使用者組(Thread Group):右擊測試計劃 > 新增 > 執行緒(使用者)> 執行緒組

    JMeter 新增虛擬使用者組

    JMeter 使用單個執行緒來模擬一個使用者,使用者組 Thread Group 就是指一組使用者,作為模擬訪問被測系統的虛擬使用者組。

    「執行緒屬性」中的「執行緒數」可用於配置虛擬使用者組的併發使用者數,數值越高,併發量越大;「迴圈次數」可用於配置每個虛擬使用者執行多少次的測試。

    JMeter 執行緒屬性

  2. 新增被測 HTTP 頁面:右擊執行緒組 > 新增 > 取樣器 > HTTP請求

    JMeter 新增被測 HTTP 頁面

    示例測試指令碼中我們只使用預設的 HTTP 請求設定,對 bing 網站發起 HTTP 請求,您可以根據實際情況進行相關的配置。

    JMeter 新增被測 HTTP 頁面2

  3. 新增結果監聽器:右擊執行緒組 > 新增 > 監聽器 > 察看結果樹

    監聽器在實際執行效能測試中並不是必須的,但在編寫指令碼的過程中可以幫助直觀看到測試結果,方便除錯。在這個樣例指令碼中我們將使用「察看結果樹」來幫助檢視請求的響應資訊。

    JMeter 新增結果監聽器

  4. 執行測試。

    儲存測試指令碼後,點選操作欄中的「啟動」按鈕,就開始執行測試指令碼了。建議執行緒組中的執行緒數和迴圈次數設定得小一些(比如10以內),以免被 ban。

    執行JMeter測試

以上,我們就完成了一個簡單的 HTTP 測試指令碼。大家可以舉一反三,試試其他協議的測試。下一篇文章中,我們將更詳細地介紹 JMeter 的各種測試元件,配合使用就能構建更復雜的測試場景。

相關文章