性能測試是一種非功能測試技術,用于確定系統參數在各種工作負載下的響應性和穩定性。性能測試衡量系統的質量屬性,例如可擴展性、可靠性和資源使用情況。性能測試幫助產品所有者確定產品解決方案的基準。性能測試的目標不僅是發現代碼中的錯誤,而且要找出瓶頸。在性能測試中,質量工程師使用任何可用于性能測試的工具來模擬真實的用戶場景。
Apache JMeter 是一個開源 Java 桌面應用程序,旨在執行負載測試和檢查 Web 應用程序的功能行為。質量工程師可以使用 JMeter 來分析和測量 Web 應用程序或各種服務(包括 Rest API)的響應時間。它可用于模擬服務器、網絡或對象上的重負載,以測試其強度或分析不同負載類型下的整體性能。JMeter 與 JDK 5 或更高版本兼容。
此外,JMeter 通過讓您創建帶有斷言的測試腳本來驗證您的應用程序是否返回了您期望的結果,從而幫助您對應用程序進行回歸測試。為了獲得最大的靈活性,JMeter 允許您使用正則表達式創建這些斷言。請注意,JMeter 不是瀏覽器——它在協議級別工作。
JMeter 支持的協議包括:
HTTP、HTTPS 站點
網頁服務
通過 JDBC 驅動程序的數據庫
目錄 – LDAP
管理系統
SMTP
FTP 服務
JMeter 特點:
它有一個簡單且用戶友好的 GUI。
它獨立于平臺。在 Windows 上,可以使用 JMeter.bat 文件啟動 JMeter 測試,在 Unix/Linux 上,通過單擊 JMeter Shell Scripts 啟動測試。
它以 XML 格式創建和存儲其測試計劃。這表明我們可以使用文本編輯器生成或創建測試計劃。
它是一個多線程框架,用于使用多個線程進行并發采樣。
它有助于自動化功能測試。
它是如何工作的?
JMeter 模擬一組用戶向目標服務器發送請求,并通過表格、圖表等返回顯示目標服務器/應用程序性能/功能的統計信息(圖 1、3-5)。
【圖1 | JMeter模擬]
要使用 JMeter,必須定義測試計劃,這意味著必須指定:
要訪問的 http 或其他 URL 或要運行的 SQL 查詢
如何存儲/顯示結果
運行多少線程來創建所需的負載/壓力
在 JMeter 術語中,這些稱為線程、采樣器、偵聽器等。完整的測試計劃包含所有這些。要創建它,請右鍵單擊 JMeter GUI 左側窗格中的“Test Plan”并添加所需的元素(圖 2)。
【圖2 | JMeter的測試元素]
Apache JMeter 如何模擬多個用戶?
讓我們看一下網頁請求是如何從用戶的瀏覽器發送到網絡服務器的,以及網頁最終是如何顯示的。理解這個工作流程將使我們有機會想象 JMeter 如何適應這個工作流程,以及它如何能像瀏覽器一樣做同樣的事情。
步驟 1:用戶在瀏覽器中執行操作,即鍵入站點地址、單擊鏈接或填寫表單并按提交。
在 JMeter 中,這不是必需的。
第 2 步:瀏覽器創建 HTTP 格式的請求并將其發送到服務器。
在 JMeter 中,這成為一個 HTTP 請求采樣器。HTTP 請求采樣器以 HTTP 格式發送請求。
第 3 步:Web 服務器接收 HTTP 請求,創建 HTML 響應,并將 HTML 發送回瀏覽器。
在 JMeter 中,對于服務器來說,它是相同的請求。
第 4 步:瀏覽器接收 HTML。
在 JMeter 中,HTTP 請求采樣器接收 HTML 響應并將其記錄下來以供分析。
第 5 步:瀏覽器在屏幕上呈現 HTML,以便用戶可以看到文本和顏色 (GUI)。
JMeter 不會像瀏覽器那樣呈現 HTML。
那么,就 JMeter 而言,是什么促成了一次用戶事務呢?
HTTP 請求采樣器以 HTTP 格式發送請求。》 服務器接收 HTTP 請求,創建 HTML 響應并將 HTML 發送回 HTTP 請求采樣器。》 HTTP 請求采樣器接收 HTML 響應并記錄它以供分析。
當我們在 JMeter 測試計劃中添加一個 HTTP Request Sampler 時,它會存儲一個網頁調用和接收序列。我們可以將其稱為單用戶事務。一旦我們將這個告訴 JMeter,它就可以做同樣的事情 n – 次數。它還同時多次執行此操作。
最后,JMeter 通過制作采樣器的副本并在單獨的線程中運行它們來模擬多個用戶。
因為 JMeter 不完全是瀏覽器,所以 HTTP 請求采樣器使所有接收到的數據都可用于進一步分析。View Tree Listener 用于可視化接收到的響應。View Tree Listener 是了解發送了什么請求、響應是什么以及事務結果的好方法。
為什么選擇 JMeter?
JMeter 是一個開源工具,擁有眾多虛擬用戶的支持。
腳本在 JMeter 中不是必需的,但像 Loadrunner 這樣的工具需要在 C 中編寫腳本。
與其他工具相比,它可以輕松進行參數化和關聯。
虛擬用戶的設置不需要額外的配置,因為它會在 JVM 上自動生成 v-users。
JMeter 是跨平臺的。
【圖3 | JMeter接口]
【圖4 | 以表格形式報告]
【圖5 | 以圖形格式報告]
結論
JMeter 工具易于用于在 Web 應用程序服務器上注入負載。開發和質量工程師可以使用 JMeter 工具輕松模擬服務器上的繁重負載,無需為虛擬用戶進行額外設置,無需額外的腳本編寫工作,并且可以以圖表和表格摘要的形式測量準確的響應時間。JMeter 結果圖表有助于定位瓶頸并提高 Web 服務器應用程序的性能。質量工程師可以通過分析 JMeter 結果圖表來識別罪魁禍首 RestAPI。JMeter 工具還用于執行服務器基準測試和可擴展性測試。
審核編輯:郭婷
-
服務器
+關注
關注
12文章
9123瀏覽量
85331 -
JAVA
+關注
關注
19文章
2966瀏覽量
104702
發布評論請先 登錄
相關推薦
評論