我在基於Web的應用程序中執行性能負載測試。我可以在JMeter中設置加速期0嗎?
我從JMeter的教程瞭解到,我怎麼能設置斜坡上升期, 如:
如果使用了10個線程,以及提升週期爲100秒,那麼JMeter將需要100秒,得到所有10個線程正常運行。每個線程將在前一個線程開始後10(100/10)秒開始。
10個用戶,百秒斜坡上升 - 1個用戶開始,每10秒可使用用戶添加
,但我有一個疑問,我們可以設置斜坡上升週期0?如果是,那麼結果將如何影響0斜升?
我在基於Web的應用程序中執行性能負載測試。我可以在JMeter中設置加速期0嗎?
我從JMeter的教程瞭解到,我怎麼能設置斜坡上升期, 如:
如果使用了10個線程,以及提升週期爲100秒,那麼JMeter將需要100秒,得到所有10個線程正常運行。每個線程將在前一個線程開始後10(100/10)秒開始。
10個用戶,百秒斜坡上升 - 1個用戶開始,每10秒可使用用戶添加
,但我有一個疑問,我們可以設置斜坡上升週期0?如果是,那麼結果將如何影響0斜升?
零爬坡(相當於1秒爬坡)幾乎沒有用,除了大型網站宣傳發布日期,即當新產品按照日程安排發佈時,例如演唱會門票或電腦遊戲。
您可以使用它來證明該網站會應付突然大量的請求。
也許您可能也會發現可用於步進爬坡,可從jmeter-plugins獲取。
正如其他人所說,您正試圖模擬正常使用情況,因此如果正常使用情況包含突然的重負荷,請保持較低的加速。
但是,請記住,由於低加速和多線程,您可能會受到本地資源的限制,因此您的結果可能是客戶端功能而不是服務器的度量。
看看分佈式負載測試,以模擬比單個客戶端所能實現的更大的負載。
由於放在JMeter的網站上標明的提升週期的原因是:
斜坡上升需要足夠長,以避免在測試開始時過大的工作負荷,並且足夠短以至於最後一個線程在第一個線程完成之前開始運行(除非有人希望發生這種情況)。
舉個例子,假設你有一個簡單的測試計劃,確實是這樣的:在
比方說,你將它設置爲使用1000個線程,並有0的加速期,然後當你開始你的測試來看,它將使1000登錄請求在完全相同的時刻(給予或採取一點)。
不用說,這不是一個現實的測試。除非您遇到某種類型的DDoS,否則您絕不會期望像這樣使用高峯。
您的目標是模擬儘可能接近您的系統將在現實世界中使用的使用情況配置文件,爲了實現這一點,您可能希望平均分配所有使用情況你的計劃中的行動。爲此,您可以使用加速期。一個簡單的經驗法則是將加速時間設置爲您希望計劃執行一次的時間量。
如果將斜升設置爲0,則所有線程將在測試開始後的第1秒開始。結果取決於您的應用程序在一堆用戶同時擊中Web應用程序時的行爲。 – 2014-10-08 08:10:56
@JmeterPerfTest謝謝!爲了回答。所以,沒有Jmeter的限制,我們可以根據我們的測試計劃,用戶數量和應用行爲來設置增長。但是如果我拿4000個用戶,那麼應該是什麼樣的增長?我仍然懷疑是否值得花一些時間而不是0?如何理解何時需要? – Test123 2014-10-08 08:35:46
您將需要模擬生產日誌中的用戶行爲。加速是必要的,如果您檢查生產日誌,用戶負載在1次中永不增加,它會逐漸增加。這就是我們使用加速的原因。 更應該在每個請求中引入延遲,以再次模擬用戶體驗。實際的用戶從來沒有經歷過一次特定的場景。 底線是模擬負載測試中的實際用戶行爲。 – 2014-10-08 09:38:12