jmeter壓力測試


jmeter壓力測試

概述

大部分新手在用jmeter做壓力測試的時候,對一些性能術語十分模糊,直接導致的后果就是對測試出來的結果數據根本不能理解,更談不上分析了。今天的文章就着重給大家解釋一下壓力測試中的一些專有名詞

 

問題1:什么是壓力測試

問到如何做壓力測試,很多人可能只會回答:"加線程組,加並發,看結果"。那么什么是壓力,壓力從哪里體現?這些恐怕就不得而知了。。。

到底什么是壓力呢?實際上我們在壓力測試中用RPS來表示

是不是有點懵了?什么是RPS呢?

RPS 就是每秒請求數(Request Per Second),它描述了施壓引擎向服務器實際發出的壓力大小。

Rps 由並發數和服務器響應時間決定。並發數過低時可能達不到預期的 RPS,並發數過高時可能壓力過大直接就壓垮了服務器。

 

問題2:jmeter怎么調節壓力

從前面的描述中我們已經知道壓力就是每秒發出的請求數。現在再來理解一個名詞Ramp-up-period(in seconds)

jmeter在線程組中有一個可調節的數值:Ramp-up-period,它表示啟動所有線程需要的時間,單位是秒

如下圖,我設置了100個線程,迭代次數=1,Ramp-up-period=25,那么它表示我將在25秒內啟動100個線程,也就是每秒鍾啟動4個線程。

每個線程啟動之間的間隔時間是25/100=0.25s,也就是250ms。

換個理解方式,它表示了我們預期給服務器的壓力就是每秒鍾發送4個請求。也就是說,設置的RPS=4/s

如下圖,現在是不是能理解一些了?

 

 jmeter中的RPS是無法通過監聽器來直觀的監測到,但是可以通過側面方式去驗證一下。

下圖右上角能清晰的看出,我們100個線程用了25s才完全加載,或者說我們用了25s才成功的把100個請求發出去。那么每秒的請求就是4

 

因為我們的腳本是單接口,所以理論上來說,此時的TPS=HPS=RPS.下圖可以看出我們的幾個指標都是4/s。

HPS

 

TPS

 

 

 

問題3:jmeter中的throughput到底是什么?

各位小伙伴們在使用jmeter時,是不是常常被 throughput 搞暈?到處都是throughput ,到底是做什么用的呢?

 

我們先來看看有哪些throughput 元件

定時器中有目標Constant Throughput 和 Throughput Shaping Timer

 

 

邏輯控制器中有吞吐量控制器

 

 聚合報告中也有一個Throughput

撐不住了,好暈啊。。。啊。。。啊。。。。

穩住不要暈倒,下面帶大家一個個的來梳理,重建jmeter世界觀

 

先來理解一下什么是Throughput

Throughput是用來衡量吞吐量的指標,通常由TPS和QPS來表示。

TPS表示每秒通過的事物數,QPS表示每秒查詢接口數。

jmeter中如果只有單接口,那么TPS=QPS。

如果是多接口的混合場景,只有在事物控制器下執行,才能將其理解為TPS。

 

聚合報告中的 Throughput

下圖Throughput表示無限迭代下的業務吞吐量TPS,大約是99/s。意思就是每秒能處理99筆事物。

或者可以理解為:每秒能處理完成的請求數是99

 

Constant Throughput Timer

現在我們在接口下添加一個 Constant Throughput Timer

這是一個吞吐量定時器,它可以控制我們的TPS。

如圖,我設定了目標吞吐量是240/min,也就是4/s。

 

接下來運行的結果可以看到,無論我們預期的吞吐量有多大,實際的TPS都被強力壓縮在4/s,同時我們的平均響應時間也變的很短

 

 

Throughput Shaping Timer

再來看一下 Throughput Shaping Timer

下圖可以很明顯看到它是用來控制RPS的,也就是每秒請求數。

start=1 end=100,持續時間是60。表示我們需要在60s內將RPS(每秒請求數)均勻的從1提升到100。

 

 

下面可以看出來我們的每秒請求數均勻的在提升

 

邏輯控制器-吞吐量控制器

這個控制器里的吞吐量,指的是請求比例。

比如我們總共發出9000個請求,這個控制器下的接口只會發送3000個,比例控制在30%

下面這張圖更直觀的說明了請求的比例分配

login1的控制器分配的比例是30%,剩余的70%都分給了login2的控制器

 


免責聲明!

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



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