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