Jmeter介紹


 

https://mp.weixin.qq.com/s?__biz=MzI5NzIyMjQwNA==&mid=2247484370&idx=1&sn=618ea4d51907d9f2be7bf368acf402e8&chksm=ecb92bb9dbcea2afcc18c913dba917309bb8b2708e421e14baa5abff2e848c5a4b61d89f4209&scene=21#wechat_redirect簡介

Jmeter是apache組織使用純java開發的一個開源免費測試工具,它可以實現接口和性能測試。用於對軟件做壓力測試,它最初被設計用於Web應用測試,但后來擴展到其他測試領 域。它可以用於測試靜態和動態資源,例如靜態文件、Java 小服務程序、CGI 腳本、 Java 對象、數據庫、FTP 服務器, 等等。Jmeter能夠對應用程序做功能/回歸測試,通過創建帶有斷言的腳本來驗證你的程序返回 了你期望的結果。

軟件包下載地址

Jmeter官網:http://Jmeter.apache.org/ Jmeter下載地址:http://Jmeter.apache.org/download_Jmeter.cgi

安裝:
首先安裝JDK,並且配置好環境變量,這個就不在贅述了。在bin目錄下,雙擊jmeter.bat。

目錄簡介

先大概了解下各個目錄的作用
bin目錄:主要存放可執行文件,主程序的jar包,配置文件,日志文件等。常用文件:

  • jmeter.bat:windows下的應用啟動文件。

  • jmeter.sh:linux下啟動文件。

  • jmeter.log:應用運行的日志文件。

  • jmeter.properties:系統配置文件,經常需要根據需要修改。

說明:jmeter.bat/jmeter.sh:啟動腳本中,可以對Jmeter的啟動參數JVM堆內存大小進行配置,默認為512M,建議修改成1024M。* setHEAP=Xms1024m-Xmx1024m*docs目錄:存放Jmeter官方API文檔,便於進行二次開發。extras目錄:擴展插件目錄,常用的是 Jmeter與ant集成的文件。lib\ext目錄:該目錄存放的是Jmeter的插件或者擴展組件。Jmeter會自動在lib和ext下尋找需要的類。一般擴展的依賴包,會打成jar包放入ext目錄。printtable_docs目錄:該目錄存放的是官方用戶手冊。

Jmeter的體系結構

 

 

 

 

兩個維度

  • X1到X5模擬一個負載請求的過程

  • Y1完成請求的實現,Y2斷言:實現請求結果的判斷,Z監聽器:實現結果收集,分析統計。

組件分類

  • 測試計划(Test Plan):使用 Jmeter 進行測試的起點,它是其它 Jmeter 測試元件的容器。

  • 線程組(Thread Group):代表一定數量的並發用戶,它可以用來模擬並發用戶發送請求。

  • 采樣器(sampler):定義實際的請求內容,被線程組包含,比如HTTP請求、java請求等。

  • 監聽器(Listener) :響應結果的顯示,統計等。

  • 邏輯控制器(Logic Controller) :幫助用戶控制Jmeter的測試邏輯及執行順序。

  • 斷言(Assertions) :用來檢查從服務器獲得的響應內容是否符合預期。

  • 配置元件(Config Element) :初始化默認值和變量,以便采樣器使用。

  • 前置處理器(Pre Processors)和后置處理器(Post Processors) :請求前后的處理操作。

  • 定時器(Timer):為采樣器設置等待時長。

原件庫的執行順序

  1. 配置元件

  2. 前置處理器

  3. 定時器

  4. sampler

  5. 后置處理器

  6. 斷言

  7. 監聽器

作用域

在Jmeter中,配置元件、定時器、前置處理器、后置處理器、斷言、監聽器都是用來輔助腳本功能實現的,都是 依賴於Sampler組件,這六類組件和Sampler之間就存在一個作用關系,即作用域。作用域的原則

  1. 取樣器(sampler):不與其它元件相互作用,所以不存在作用域的問題。

  2. 邏輯控制器(Logic Controller):只對其子節點中的采樣器和邏輯控制器起作用。

  3. 除采樣器和邏輯控制器元件外,其他6類元件,如果是某個sampler的子節點,則該元件只對該sampler及子節點起作用。

  4. 除采樣器和邏輯控制器元件外的其他6類元件,如果其父節點不是sampler ,則其作用域是該元件父節點下的其他所有后代節點,包括內部節點。

在同一作用域范圍內,有多個相同類型元件,則按照它們在測試計划中的順序依次執行。

 

一個簡單的http請求測試

首先添加線程組:

 

 線程組用來模擬用戶,所以也叫Users。一個線程組模塊可以包含多個線程,每個線程代表一個用戶,這樣可以模擬高並發下的請求,並根據網站的響應信息來判斷網站的相關性能。

 

線程數:虛擬用戶數,即並發數,一個線程表示一個虛擬用戶;

Ramp-Up Period:所有線程啟動的時間,單位s。通過這個參數可以設置每個線程間的啟動間隔;

循環次數:測試循環的次數,如果勾選了“永遠”,那么所有線程會一直發送請求,直到手動停止運行腳本;

添加http請求

 

 

一般填寫如下要素: 

 

 

 添加監聽器

 

 

監聽器(Listener):是用來監聽系統資源的元件。它是用來對測試結果數據進行處理和可視化展示的一系列元件。 

 

圖形結果、查看結果樹、聚合報告、用表格察看結果都是我們經常用到的元件。

    

點擊啟動按鈕,在監聽器中查看請求結果

 

 

添加聚合報告

 

聚合報告(aggregate report)

對於每個請求,它統計響應信息並提供請求數,平均值,最大,最小值,錯誤率,大約吞吐量(以請求數/秒為單位)和以kb/秒為單位的吞吐量.

    

我們修改線程數為10,點擊運行,查看你聚合報告統計結果。

 

 

 

每個接口請求會顯示獨立的一行數據,每行有13個字段,含義分別如下:

  • Label:請求名或者請求標簽,每個JMeter 的組件(例如 HTTP Request)都有一個 “名稱” 屬性,這里顯示的就是“名稱”屬性的值。

  •  #Samples:表示你這次測試中一共發出了多少個請求,如果模擬10個用戶,每個用戶迭代10次,那么這里顯示就是100了。

  • Average:平均響應時間,默認情況下是單個 Request 的平均響應時間,當使用了 Transaction Controller 時,也可以以Transaction 為單位顯示平均響應時間。

  • Median:中位數,也就是所有請求響應時間中排在中間的那個響應時間點,也就是50% Line,請參考90% Line解釋。

  • 90% Line:90%用戶請求響應時間,如果把某次任務的所有請求的響應時間按從小到大排序,它是指排在90%處那個點的請求的響應時間,也就是說有90%的請求的響應時間小於等於這個響應時間。后面的50/60/70/80/90/95/99 % Line 也是類似的含義。

  • 95% Line:95%用戶請求響應時間,請參考90% Line解釋。

  • 99% Line:99%用戶請求響應時間,請參考90% Line解釋。

  • Min:最小響應時間,所有請求樣本中的最小響應時間。

  • Max:最大響應時間,所有請求樣本中的最大響應時間。

  • Error%:本次測試中“出現錯誤的請求數/請求的總數”百分比值。

  • Throughput:吞吐量,就是服務器在一定時間范圍內處理的請求數。在本報告中它的含義其實其實是吞吐率,表示每秒完成的請求數(Request per Second),此指標代表服務器的處理能力,比如支付寶峰值處理量達到12萬筆/秒。

  • Received KB/sec:每秒從服務器端接收到的數據量。

  • Sent KB/sec:每秒從客戶端發送到服務器端的數據量。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM