1. 程式人生 > >jmeter和loadrunner測試結果差異大【web頁面靜態資源下載】

jmeter和loadrunner測試結果差異大【web頁面靜態資源下載】

最近有朋友效能測試時遇到Jmeter和Loadrunner測試的結果差異很大,對結果很糾結。筆者在與之一同排查的過程中發現很多老司機也總會踩到的坑-web頁面靜態資源下載.

問題:jmeter和loadrunner測試結果差異大

描述: 一個簡單的web頁面,同樣50併發使用者,響應時間十幾毫秒,Loadrunner測試結果TPS=1500,jmeter測試結果TPS=4000+,大家怎麼看這個問題?

分析:可能的原因有很多,我們從以下幾個方面逐步排查

1.壓力機資源情況

Loadrunner體量大,消耗的資源也比Jmeter較高,這種情況觀察系統CPU、記憶體等資源的使用情況,特別注意有事CPU使用率還在可接受範圍內,但是cpu load很高(cpu load>cpu核數,說明cpu佇列存在等待情況),這種情況就是壓力機資源出現瓶頸了;儘量不要用個人的pc機作為壓力機,高併發下資源可能存在瓶頸。

2.指令碼中等待時間

對於頁面的效能測試,通常為了模擬使用者的真實使用情況,或者通過錄制等到的腳本里面有等待時間,如lr_think_time()函式,或者在Jmeter中新增定時器,同樣會對傳送的壓力產生影響。

3.請求是否成功

確保Loadrunner指令碼添加了檢查點、Jmeter指令碼添加了斷言,保證請求都正確響應,避免以為錯誤響應影響效能。

4.web頁面靜態資源下載

web頁面中通常包含很多靜態資源(非HTML資源),如js、css、圖片等,這些資源可能不會經常變化,如果每次都去伺服器端載入這些資源,會浪費時間和頻寬,所以瀏覽器會把這列不常用的靜態資源快取,在使用工具壓測的時候,是否模擬瀏覽器快取,是否每次下載靜態資源會對效能有非常大的影響。這也是本次導致jmeter和Loadrunner測試結果差距很大的原因。

工具中對web靜態資源是否下載的配置:

1.Loadrunner預設配置的是下載靜態資源,每次迭代模擬新使用者,清除快取,如圖:


所以為了更好的模擬使用者的使用習慣,通常是不下載靜態資源,即將上面三個選項取消勾選

2.Jmeter預設配置的是不下載靜態資源,這點與Loadrunner正好相反,如圖:


所以,在使用Loadrunner和Jmeter測試web頁面的時候,如果都使用預設選項,可能導致結果差異很大。

其他:

web頁面靜態資源下載的配置會對web頁面效能測試結果有影響,對http單個請求是沒有影響的,一個http請求類似於一個介面,不存在靜態資源的下載情況。

原文連結:https://blog.csdn.net/meitingbee/article/details/53907085