日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

How to Run a Stress Test in JMeter

發(fā)布時間:2025/7/14 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 How to Run a Stress Test in JMeter 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

? ?讓我們考慮以下情況:顯示學(xué)生考試結(jié)果的系統(tǒng)通過多個自動化功能測試。 性能測試結(jié)果也是有充滿希望的。 系統(tǒng)已準(zhǔn)備好部署到實時服務(wù)器。 但是,當(dāng)考試結(jié)果發(fā)布在系統(tǒng)上時,服務(wù)器變慢并停止工作。

? ??發(fā)生了什么? 考試結(jié)果公布后,所有學(xué)生都想盡快查看考試結(jié)果。 它們產(chǎn)生了同時非常高的服務(wù)器負(fù)載,并且服務(wù)器無法處理請求。 首先,數(shù)據(jù)庫機(jī)器減慢了。 然后,它沒有為中間層提供數(shù)據(jù),軟件沒有為這種情況做好準(zhǔn)備,所以就停止運行了。

? ? 性能測試人員錯過了什么? 壓力測試。 除了測試預(yù)期的用戶數(shù)量之外,壓力測試還會測試系統(tǒng)在強(qiáng)烈負(fù)載下的行為,并檢查如何重新恢復(fù)正常使用情況。 壓力測試可以通過像JMeter這樣的開源測試工具輕松完成。


Choosing a test scenario

? ?在這篇文章中我們將用于測試的示例應(yīng)用程序是正在開發(fā)的項目管理工具。 目前它有一些基本特點:

????- 登錄

????- 創(chuàng)建項目并將Github存儲庫鏈接到該項目

????- 在創(chuàng)建的項目中創(chuàng)建問題

? 壓力測試的第一步是確定關(guān)鍵場景。 根據(jù)自己的業(yè)務(wù)價值選擇情景(他們對于成功有多重要)和用戶偏好(用戶大部分時間花費的操作)。

??在本測試中,我們將檢查網(wǎng)站的登錄頁面和項目詳細(xì)信息頁面的響應(yīng)時間。

??響應(yīng)時間很重要,因為加載時間是頁面崩掉的主要原因。 隨著互聯(lián)網(wǎng)連接速度的提高,用戶的平均耐心正在下降。 如果網(wǎng)站的加載時間超過4秒,大約25%的用戶將離開。

? ?我們選擇了登錄功能,它提供對數(shù)據(jù)庫的訪問,因為它是每個系統(tǒng)的重要組成部分。

? ?我們選擇了項目詳細(xì)信息頁面,因為在經(jīng)過測試的系統(tǒng)中,它從許多表中讀取數(shù)據(jù),我們希望用戶將大部分時間花在該頁面上。 因此,我們想確保該頁面是否會在合理的時間內(nèi)被加載,即使在使用過度的情況下也是如此。

? ?


? 現(xiàn)在我們已經(jīng)確定了我們的測試目標(biāo),我們來描述下他們的測試用例:

????測試用例1 - 登錄測試步驟:

????- 轉(zhuǎn)到登錄頁面

????- 輸入用戶憑據(jù)

????- 點擊登錄按鈕

????- 等待登錄響應(yīng)


????測試案例2 - 項目詳細(xì)信息頁面測試步驟:

????- 轉(zhuǎn)到登錄頁面

????- 輸入用戶憑據(jù)

????- 點擊登錄按鈕

????- 加載儀表板頁面

????- 點擊現(xiàn)有項目


Creating and recording the test script

??在決定測試用例之后,我們可以繼續(xù)創(chuàng)建測試腳本。 創(chuàng)建JMeter測試腳本的最快方式是錄制。 您可以使用JMeter錄制或BlazeMeter Chrome擴(kuò)展程序,這是Chrome商店免費提供的,并且對用戶更加友好,因為您不必設(shè)置代理來使用它,例如使用JMeter刻錄制。

? ?通過Chrome,開始錄制并模擬您決定測試的用戶場景。 完成后,停止錄制。

? ? ? ? ? ? ??

? ?將文件導(dǎo)出到j(luò)mx并在JMeter中打開它,您可以在其中編輯和配置其參數(shù)。

? ?


Configuring the Thread Group

???每個測試都有自己獨特的配置,如csrf令牌,響應(yīng)斷言和定時器,但幾乎所有壓力測試的相似性都是檢查大用戶量是的系統(tǒng)性能。 您應(yīng)該根據(jù)你的業(yè)務(wù)目標(biāo)應(yīng)確定您正在測試的用戶數(shù)。

? ?在這種情況下,我們想測試1000個用戶。

? ?要做到這一點,您需要配置線程組。 線程組最重要的配置是線程數(shù),ramp-up時間和循環(huán)數(shù)。 線程數(shù)設(shè)置模擬用戶的數(shù)量,ranmp-up時間設(shè)置JMeter開始執(zhí)行所有線程需要多長時間,循環(huán)計數(shù)是測試場景應(yīng)執(zhí)行的次數(shù)。

? ??


? ?結(jié)果顯示,登錄頁面的請求處理時間為68毫秒,項目詳細(xì)信息頁面為1539毫秒。 因此,我們可以得出結(jié)論,在項目頁面加載期間使用了大量資源。

? ? ? ?

? ? 現(xiàn)在,我們可以開始增加我們正在測試的線程數(shù)。 我們繼續(xù)進(jìn)行10個線程,0個ramp-up和1個循環(huán)。 由于我們?nèi)栽跍y試少量的線程,所以我們可以在GUI模式下使用JMeter,并通過監(jiān)聽器查看測試。

? ?? ?

? ? 我們可以看到系統(tǒng)能夠正確處理所有的請求:

? ?? ??所以現(xiàn)在我們將把用戶數(shù)量增加到100(目標(biāo)的10%)。 我們需要更改的腳本中唯一的參數(shù)是線程數(shù),我們可以再次運行該腳本。 不要忘記在測試運行之間清理偵聽器,以防萬一你使用它。

? ?之后,將負(fù)載增加到目標(biāo)的50%,在我們的情況下,這是500個用戶。 根據(jù)結(jié)果,我們可以繼續(xù)增加負(fù)載(如果測試成功)或下降(如果有錯誤)。 如果我們需要下降,我們應(yīng)該知道有多少用戶破壞我們的系統(tǒng),所以我們可以決定如何解決瓶頸。

? ?如果500線程測試的結(jié)果都是綠色的,則將線程數(shù)增加到1000個用戶的目標(biāo)。 為了獲得更準(zhǔn)確的結(jié)果,我們建議您將測試切換到步進(jìn)線程組,您可以從JMeter插件管理器添加。

? ?步進(jìn)線程組允許您配置要啟動多少線程,隨時間推移應(yīng)該添加多少線程以達(dá)到最大值,線程應(yīng)該保持多長時間以及減速周期多長時間。 由于其ramp-up的能力,步進(jìn)線程組能完美的檢查系統(tǒng)的恢復(fù)力。

? ?

? ?該測試開始于我們知道服務(wù)器可以處理的500個線程。 然后,我們配置JMeter每30秒增加100個線程。 這樣,如果在達(dá)成目標(biāo)之前有問題,我們可以找出它在哪里有問題。 我們配置了1000個線程運行2分鐘(120秒)。 要了解系統(tǒng)恢復(fù)的情況,有一個ramp-up時間 - 每10秒鐘50個線程將被停止。

? ?在壓力測試期間,在單個機(jī)器上可以運行多少線程是有限制的。 但是有幾種簡單的方式來增加這個數(shù)字。 嘗試以非gui模式運行JMeter,這在大量線程的情況下是必須的。 我們還應(yīng)該避免測試計劃中包含監(jiān)聽器來進(jìn)一步優(yōu)化測試運行。 如果這些簡單的調(diào)整不夠,請分發(fā)多臺機(jī)器之間的線程數(shù)。 結(jié)果可以在測試完成后生成。 當(dāng)然,您也可以使用CA BlazeMeter,它是云中的JMeter。

? ?JMeter將為我們提供響應(yīng)時間,吞吐量和錯誤率等KPI。 此外,我們還建議您監(jiān)控服務(wù)器性能。 CPU使用率,內(nèi)存使用量,輸入/輸出和數(shù)據(jù)庫日志是確定系統(tǒng)瓶頸的有用參數(shù)。


翻譯至:https://www.blazemeter.com/blog/how-perform-stress-test-jmeter



轉(zhuǎn)載于:https://blog.51cto.com/7080696/1910133

總結(jié)

以上是生活随笔為你收集整理的How to Run a Stress Test in JMeter的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。