Jmeter 性能測試工具簡介

一)性能的定義

性能:通過一系列指標來衡量系統的及時性、處理能力等特性。最重要的兩個重要指標是響應時間和吞吐量。

二)性能的重要指標

1. 響應時間

    • 響應時間的重要性

響應時間與用戶體驗息息相關,響應時間對產品有很大的影響。響應時間越短,性能表現越好

    • 響應時間的度量方式

響應時間是指從客戶端發起一個請求開始,到客戶端接收到從服務端返回的最後一個字節結束,這個過程所耗費的時間。包括網絡傳輸時間和服務處理時間。

2.吞吐量

    • 吞吐量的度量方式

系統在單位時間內正確處理的客戶端請求的數量

tps:系統每秒/單位時間內處理的事務數

qps:系統每秒/單位時間內處理的請求數

kb/s:服務端每秒向客戶端返回的數據量

3.併發用戶數

系統可以同時承載的正常使用系統功能的用戶的數量

三)性能測試的重要性

1.提前識別性能缺陷

系統存在性能缺陷可能導致系統癱瘓不可用。性能測試能提前識別性能缺陷,規避性能風險,避免出現癱瘓。

2.提前識別穩定性缺陷

系統存在穩定性缺陷,短時間內正常運行,長時間運行會出錯。性能測試能檢驗產品的穩定性,保障產品長時間無故障運行。

3.驗證系統是否能支撐預期用戶量

系統無法支撐過量用戶訪問時,當過量用戶訪問系統時,系統出錯甚至崩潰,大大傷害用戶體驗。性能測試能模擬大量用戶訪問,驗證系統是否能支撐預期用戶量,如果不能,提前進行性能優化,避免上線後無法支撐。

四)性能測試的過程

1.制定預期目標

    • 系統每秒支撐 1w 用戶提交數據
    • 提交數據響應時間不超過2s 

2.需求分析

    • 明確測試對象(對訪問頻繁的頁面進行性能測試,比如活動頁、用戶反饋頁)
    • 明確測試內容(吞吐量、響應時間)

3.工具模擬

    • 模擬 1w 用戶提交數據
    • 得到測試數據

4.測試分析

    • 達到預期:每秒成功完成 1w 用戶提交訂單且提交訂單響應時間不超過 2s
    • 未達到預期:1w 個用戶提交訂單,出現大量失敗或提交訂單響應時間大於 2s

五)Jmeter 

1.簡介

是一個基於Java的性能測試工具,免費、開源、跨平臺、簡單易上手。

2.安裝

mac版

下載:https://pan.baidu.com/s/1b11U70,解壓後執行bin文件夾下 Jmeter.sh 即可。

3.使用

(1)配置代理服務器

    • Jmeter代理服務器

端口:jmeter代理服務器監聽的端口

目標控制器:測試計劃–線程組,錄製下來的請求會保存在

分組:每組包含一個控制器,將錄製下來的請求進行適當的分組。

包含模式:請求的 url 符合正則表達式纔會被錄製

排除模式:壓測時不會壓測靜態資源(css、jpeg等),可以用來排除該類資源的請求。

    • 本地代理服務器:

端口號與jmeter端口一致,127.0.0.1。

(2)錄製請求 -- 測試組件簡介

  • tips:
    1. 瀏覽器由緩存機制,如果已經打開過某一頁面,在次打開該頁面時不會發送某些資源的請求,會導致漏掉某些請求,所以錄製請求前一定要清理瀏覽器緩存。
    2. 錄製請求時不能過快,確保每一個操作的請求全部發送完畢再進行下一個操作,避免只有一個簡單控制器,不方便管理。
    • 線程組

線程組是 Jmeter 最核心的測試組件,用來管理執行測試腳本的Jmeter線程(Jmeter線程是用來執行測試腳本里面的操作)

線程數:Jmeter 線程的數量,決定了Jmeter 使用多少個線程同時執行測試腳本,也就是併發數,可以用來模擬併發用戶數。

Ramp-Up Period:啓動所有線程花費的時間,防止瞬間給被測服務器施加過大壓力,讓壓力平緩的增加。eg:線程數爲10,Ramp-Up Period爲10,代表10s的時間啓動10個線程,每秒鐘增加一個線程。

循環次數:每個線程重複執行多少次。

調度器:詳細設置線程調度的啓動和結束時間。

    • 簡單控制器

簡單控制器是一個邏輯上的歸納,可以將每一個請求操作錄製在一個獨立的簡單控制器中,方便管理。eg:打開主頁過程中,瀏覽器向服務端發送的請求。

    • 採樣器

用來告訴Jmeter向服務端發送一次請求,並等待服務端的響應。請求的url、協議、參數等都在採樣器中設置。最常用的採樣器就是HTTP請求。

HTTP請求

    • 斷言

判斷採樣器的請求響應結果是否正確。。

最常用的是響應斷言,可以判斷服務端返回的響應碼、響應文本、響應頭等。

apply to:指定斷言的作用範圍,一般選擇對當前採樣器生效。

要測試的相應字段:測試要檢查的目標。(響應文本:服務端返回數據;響應代碼:http返回碼;響應信息:http響應信息)

    • CSV Data Set Config

可以將數據參數化,方便使用不同的數據進行測試。本地準備 txt 文件,在 CSV Data Set Config 中正確配置即可。

Filename:本地文件路徑。

Variable Names:文件的每一列的取的變量名。eg:username,password

Delimiter:文件每一列使用的分隔符。

使用時直接取  ${username},${password},線程會順序讀取文件中的每一行。

    • HTTP Cookie 管理器

爲http請求進行cookie管理。可以模擬瀏覽器的行爲,自動存儲服務器返回的的cookie信息,後續再向這個服務器發送請求會自動帶上相應的cookie。 Cookie 管理器爲每個Jmeter線程管理獨立的cookie。

4.測試結果收集

(1)監聽器

Jmetr 提供各種監聽器來收集、展示、保存測試結果。最常用的三種:查看結果樹、聚合報告、響應時間曲線。

(2)查看結果樹

查看結果樹用來記錄每個請求的詳細信息,開銷較大,可以根據測試需求酌情使用。

a. 請求列表:綠色爲成功,紅色爲失敗。判斷結果依據斷言是否成功。

b, 取樣器結果:保存相應請求的數據。

  • Thread Name:執行請求的線程組
  • Sample Start:請求的觸發時間
  • Load Time:請求從發出到接收到完整返回結果的時間,即響應時間。
  • Latebcy:請求從發出到開始接受返回結果的時間,一般略小於 Load Time。
  • Connect Time:Jmeter 和服務器建立連接花費的時間。
  • 返回頭信息

c. 請求、響應數據

(3)聚合報告

爲每種請求分別統計聚合結果,包括請求執行的次數、響應時間、錯誤率等。

Label:請求名稱

Sample:請求次數

Avarge:平均響應時間

Median:響應時間的50值

90%Line、95%Line、99%Line:響應時間的90、95、99值

Min、Max:響應時間的最小值和最大值

Error:錯誤率,請求失敗率。

Throughput:吞吐量

KB/sec:請求每秒傳輸的字節數

(4)響應時間曲線

可以記錄每個請求的響應時間趨勢圖

Interval:對設置的時間內的響應時間取平均值進行展示

過濾標籤:eg:^(210).*?

六)壓測執行方案

1.測試執行

使用梯度壓力測試,併發用戶數梯度增加,得到全面的測試數據,更好的分析性能測試結果。

2.壓測停止時間

吞吐量不再增加,或增加很少,或出現下降情況。

 

 

壓力測試基礎知識&Jmeter工具使用簡介

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章