」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 在 Windows 上使用 Apache Jmeter 進行容量測試。

在 Windows 上使用 Apache Jmeter 進行容量測試。

發佈於2024-08-24
瀏覽:353

Volume Testing With Apache Jmeter On Windows.

在本文中,我將向您介紹如何在不同的應用程式上執行批次測試。在演示如何使用 Jmeter 進行批量測試之前,以下是我自己對批量測試含義的理解以及為什麼我們需要在部署到生產之前對應用程式進行批量測試。

Volume Testing With Apache Jmeter On Windows.

容量測試:簡單來說,容量測試旨在檢查系統如何處理大量資料。不同的公司採用這種測試方法來確保他們的服務可以管理預期的資料量,而不會顯著降低效能或資料遺失。

為什麼我們要進行容量測試?
以下是我們採取此步驟的一些原因:

  1. 可協助確定我們的系統是否能夠有效地攝取、儲存和處理大型資料集。

Volume Testing With Apache Jmeter On Windows.

  1. 深入了解我們的應用程式、系統或服務的效能指標。回應時間、資源利用率、吞吐量等指標

現在我們對什麼是批量測試有了一些了解,讓我們繼續演示。在本示範中,我們將使用 Apache JMeter。 Apache JMeter™ 應用程式是開源軟體,是一個 100% 純 Java 應用程序,旨在載入測試功能行為和測量效能。它最初是為測試 Web 應用程式而設計的,但後來擴展到其他測試功能。以下是我們可以使用 Apache JMeter 進行測試的清單:

  • Web - HTTP、HTTPS(Java、NodeJS、PHP、ASP.NET,...)
  • SOAP / REST Web 服務
  • FTP
  • 透過 JDBC 的資料庫
  • LDAP
  • 透過 JMS 的訊息導向的中間件 (MOM)
  • 郵件 - SMTP(S)、POP3(S) 和 IMAP(S)
  • 本機指令或 shell 腳本
  • TCP
  • Java 物件

要安裝Apache,我們需要安裝jdk8以上:
在此下載 Java 開發工具包。

下載套件後,將其解壓縮到您的program files目錄中:

Volume Testing With Apache Jmeter On Windows.

將 Java 設定為 PC 上的環境變數:

windows home>>>搜尋“編輯環境變數”>>路徑>>>編輯>>傳入java二進位目錄的路徑,目錄應該是“C:\Program Files\Java\jdk-22\bin” ,保存退出。
接下來是安裝 Apache Jmeter。點擊此鏈接下載 zip 檔案。
將檔案解壓縮到 C 碟的程式檔案目錄「C:\Program Files\apachejmeter」。
導航至 JMeter 安裝目錄並在 Windows powershell 上執行 Apachejmeter 執行檔以啟動服務。

Volume Testing With Apache Jmeter On Windows.
執行此命令,但將其替換為 jar 執行檔位置的絕對路徑:

 PS C:\Program Filesapache-jmeter-5.6.3\apache-jmeter-5.6.3\bin> .\ApacheJMeter.jar

Jmeter 將自動啟動。以下是使用 Jmeter 時應該了解的一些術語:

  1. 測試計畫:這是您為測試案例指定的名稱。例如,您正在嘗試測試 facebook Web 應用程序,您可以將其命名為“facebook-test-app”。

Volume Testing With Apache Jmeter On Windows.

  1. 執行緒:執行緒或執行緒群組可以定義為虛擬使用者或使用者群組,我們可以用它來測試應用程式的效能。我們可以使用執行緒向定義的路徑執行大量請求,我們可以將這些執行緒分組以一次發送 100 個請求。我們配置的執行緒越多,應用程式的負載就越高。最初,預設配置了四種類型的線程,我們可以使用 Jmeter 插件管理器添加更多類型。要安裝插件,請在安裝時選中此處..。您可以在頁面頂部的“選項”選項卡中找到它。

Volume Testing With Apache Jmeter On Windows.

在可用外掛程式中搜尋“自訂執行緒組”,選擇並向下捲動點擊“套用變更並重新啟動”。之後你將能夠在jmeter中看到多個線程組,如下所示:

Volume Testing With Apache Jmeter On Windows.

  1. Samplers:該元件將請求傳送到指定的伺服器。採樣器可以是 HTTP 請求、FTP 或 SMTP 類型。

Volume Testing With Apache Jmeter On Windows.
上圖顯示了 Jmeter 支援的大量採樣器,以滿足您的需求。

Volume Testing With Apache Jmeter On Windows.

以下是 HTTP 請求採樣器的範例,其中包含所有必要的詳細資訊。

  1. 聽眾:當我們在採樣器上運行測試案例時,我們需要一份報告,對嗎?這正是聽眾所做的。他們負責以任何形式收集和顯示數據,例如表格、圖形、圖表等。收集的一些數據包括回應時間、吞吐量、錯誤率、回應代碼等。

示範:
要開始此演示,請確保您已完成所有必要的安裝。

首先我們建立一個名為 wordpress-test 的測試計畫:

Volume Testing With Apache Jmeter On Windows.

接下來,我們建立線程組:

Volume Testing With Apache Jmeter On Windows.
線程組中定義的設定說明。線程組將有 1000 個用戶,其中 20 個將在 0 秒後立即發送 GET 請求。然後使用 5 秒的啟動時間,每 15 秒增加 10 個請求。發送 1000 個請求後,用戶將等待 60 秒才最終停止發送請求。減少速率將為 5 位使用者/秒。

配置完線程組後,我們新增一個HTTP請求採樣器來監聽指定路徑上的GET請求:

Volume Testing With Apache Jmeter On Windows.

Volume Testing With Apache Jmeter On Windows.
儲存您的配置並新增偵聽器以樹狀或表格式顯示結果。點擊綠色的“播放”按鈕開始測試。

Volume Testing With Apache Jmeter On Windows.

給你!這就是我們使用 jp@gc - 步進線程組運行容量測試的方式。
本文到此結束,如果您有任何疑問,可以透過 X(FKA twitter)@marviigrey 與我聯繫。謝謝您的寶貴時間,再見。

版本聲明 本文轉載於:https://dev.to/linuxinator/volume-testing-with-apache-jmeter-on-windows-2p06?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • CSS強類型語言解析
    CSS強類型語言解析
    您可以通过其强度或弱输入的方式对编程语言进行分类的方式之一。在这里,“键入”意味着是否在编译时已知变量。一个例子是一个场景,将整数(1)添加到包含整数(“ 1”)的字符串: result = 1 "1";包含整数的字符串可能是由带有许多运动部件的复杂逻辑套件无意间生成的。它也可以是故意从单个真理...
    程式設計 發佈於2025-07-03
  • PHP SimpleXML解析帶命名空間冒號的XML方法
    PHP SimpleXML解析帶命名空間冒號的XML方法
    在php 很少,請使用該限制很大,很少有很高。例如:這種技術可確保可以通過遍歷XML樹和使用兒童()方法()方法的XML樹和切換名稱空間來訪問名稱空間內的元素。
    程式設計 發佈於2025-07-03
  • 反射動態實現Go接口用於RPC方法探索
    反射動態實現Go接口用於RPC方法探索
    在GO 使用反射來實現定義RPC式方法的界面。例如,考慮一個接口,例如:鍵入myService接口{ 登錄(用戶名,密碼字符串)(sessionId int,錯誤錯誤) helloworld(sessionid int)(hi String,錯誤錯誤) } 替代方案而不是依靠反射...
    程式設計 發佈於2025-07-03
  • 為什麼我的CSS背景圖像出現?
    為什麼我的CSS背景圖像出現?
    故障排除:CSS背景圖像未出現 ,您的背景圖像儘管遵循教程說明,但您的背景圖像仍未加載。圖像和样式表位於相同的目錄中,但背景仍然是空白的白色帆布。 而不是不棄用的,您已經使用了CSS樣式: bockent {背景:封閉圖像文件名:背景圖:url(nickcage.jpg); 如果您的html,cs...
    程式設計 發佈於2025-07-03
  • 版本5.6.5之前,使用current_timestamp與時間戳列的current_timestamp與時間戳列有什麼限制?
    版本5.6.5之前,使用current_timestamp與時間戳列的current_timestamp與時間戳列有什麼限制?
    在時間戳列上使用current_timestamp或MySQL版本中的current_timestamp或在5.6.5 此限制源於遺留實現的關注,這些限制需要對當前的_timestamp功能進行特定的實現。 創建表`foo`( `Productid` int(10)unsigned not ...
    程式設計 發佈於2025-07-03
  • 如何使用替換指令在GO MOD中解析模塊路徑差異?
    如何使用替換指令在GO MOD中解析模塊路徑差異?
    在使用GO MOD時,在GO MOD 中克服模塊路徑差異時,可能會遇到衝突,其中3個Party Package將另一個PAXPANCE帶有導入式套件之間的另一個軟件包,並在導入式套件之間導入另一個軟件包。如迴聲消息所證明的那樣: go.etcd.io/bbolt [&&&&&&&&&&&&&&&&...
    程式設計 發佈於2025-07-03
  • 為什麼使用Firefox後退按鈕時JavaScript執行停止?
    為什麼使用Firefox後退按鈕時JavaScript執行停止?
    導航歷史記錄問題:JavaScript使用Firefox Back Back 此行為是由瀏覽器緩存JavaScript資源引起的。要解決此問題並確保在後續頁面訪問中執行腳本,Firefox用戶應設置一個空功能。 警報'); }; alert('inline Alert')...
    程式設計 發佈於2025-07-03
  • 如何使用FormData()處理多個文件上傳?
    如何使用FormData()處理多個文件上傳?
    )處理多個文件輸入時,通常需要處理多個文件上傳時,通常是必要的。 The fd.append("fileToUpload[]", files[x]); method can be used for this purpose, allowing you to send multi...
    程式設計 發佈於2025-07-03
  • PHP未來:適應與創新
    PHP未來:適應與創新
    PHP的未來將通過適應新技術趨勢和引入創新特性來實現:1)適應云計算、容器化和微服務架構,支持Docker和Kubernetes;2)引入JIT編譯器和枚舉類型,提升性能和數據處理效率;3)持續優化性能和推廣最佳實踐。 引言在編程世界中,PHP一直是網頁開發的中流砥柱。作為一個從1994年就開始發展...
    程式設計 發佈於2025-07-03
  • 找到最大計數時,如何解決mySQL中的“組函數\”錯誤的“無效使用”?
    找到最大計數時,如何解決mySQL中的“組函數\”錯誤的“無效使用”?
    如何在mySQL中使用mySql 檢索最大計數,您可能會遇到一個問題,您可能會在嘗試使用以下命令:理解錯誤正確找到由名稱列分組的值的最大計數,請使用以下修改後的查詢: 計數(*)為c 來自EMP1 按名稱組 c desc訂購 限制1 查詢說明 select語句提取名稱列和每個名稱...
    程式設計 發佈於2025-07-03
  • 如何在php中使用捲髮發送原始帖子請求?
    如何在php中使用捲髮發送原始帖子請求?
    如何使用php 創建請求來發送原始帖子請求,開始使用curl_init()開始初始化curl session。然後,配置以下選項: curlopt_url:請求 [要發送的原始數據指定內容類型,為原始的帖子請求指定身體的內容類型很重要。在這種情況下,它是文本/平原。要執行此操作,請使用包含以下標頭...
    程式設計 發佈於2025-07-03
  • 如何修復\“常規錯誤:2006 MySQL Server在插入數據時已經消失\”?
    如何修復\“常規錯誤:2006 MySQL Server在插入數據時已經消失\”?
    How to Resolve "General error: 2006 MySQL server has gone away" While Inserting RecordsIntroduction:Inserting data into a MySQL database can...
    程式設計 發佈於2025-07-03
  • eval()vs. ast.literal_eval():對於用戶輸入,哪個Python函數更安全?
    eval()vs. ast.literal_eval():對於用戶輸入,哪個Python函數更安全?
    稱量()和ast.literal_eval()中的Python Security 在使用用戶輸入時,必須優先確保安全性。強大的Python功能Eval()通常是作為潛在解決方案而出現的,但擔心其潛在風險。 This article delves into the differences betwee...
    程式設計 發佈於2025-07-03
  • C++中如何將獨占指針作為函數或構造函數參數傳遞?
    C++中如何將獨占指針作為函數或構造函數參數傳遞?
    在構造函數和函數中將唯一的指數管理為參數 unique pointers( unique_ptr [2啟示。通過值: base(std :: simelor_ptr n) :next(std :: move(n)){} 此方法將唯一指針的所有權轉移到函數/對象。指針的內容被移至功能中,在操作...
    程式設計 發佈於2025-07-03
  • Go語言如何動態發現導出包類型?
    Go語言如何動態發現導出包類型?
    與反射軟件包中的有限類型的發現能力相反,本文探索了替代方法,探索了在Runruntime。 go import( “ FMT” “去/進口商” ) func main(){ pkg,err:= incorter.default()。導入(“ time”) 如果er...
    程式設計 發佈於2025-07-03

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3