設計場景第一!!
線程數:配置幾個就代表有幾個虛擬用戶
Ramp-Up 時間(秒):表示從第一個虛擬用戶開始生成直到最后一個虛擬用戶開始生成的時間,加入配置了5個虛擬用戶,Ramp-Up 設置成10s,那么jmeter會每隔2s生成1個虛擬用戶,這個選項主要的作用是控制並發的強度,不讓虛擬用戶在同一時間產生從而對系統造成多大的復雜,Ramp-Up設置成0,那么所有用戶將會同時立即產生
循環數:要么是N次,要么是永遠
調度器:就是定時執行的設置方式。我們可以設置在未來的某個時間開始執行也可以設置多少秒后開始執行。
注意:你只有在按下執行按鈕后,調度器才生效
場景分析
微博:訪問量相對均勻
釘釘:打卡上午8~9點,下午5~6點有大量訪問量(一段時間的虛擬用戶多)
秒殺
一個線程的生命周期
有循環N---->銷毀(destory) 例如:一個用戶進來買3個東西,此時就是循環3次
永遠,一直跑 例如:一個用戶進來一直點擊,就設置成永遠
只執行一次---->銷毀(destory) 例如:釘釘打卡玩完就退出
如何確定一個合理的ramp-up 時間?
確定一個合理的ramp-up period 的規則就是讓初始點擊率接近平均點擊率。當然,也許需要運行一些測試來確定合理訪問量。
基於同樣的原因,過大的ramp-up period 也是不恰當的,因為將會降低訪問峰值的負載,換句話說,在一些線程還未啟動時,初期啟動的部分線程可能已經結束了。
那么,如何檢驗ramp-up period I太小了或者太大了呢?
首先,推測一下平均點擊率並用總線程除點擊率來計算初始的ramp-up period。 例如,假設線程數為100, 估計的點擊率為每秒10次, 那么估計的理想ramp-up period 就是 100/10 = 10 秒。 那么,應怎樣來提出一個合理的估算點擊率呢?沒有什么好辦法,必須通過運行一次測試腳本來獲得。
其次, 在測試計划(test plan)中增加一個聚合報告監聽器,如圖2所示,其中包含了所有獨立的訪問請求(一個samplers)的平均點擊率。 第一次取樣的點擊率(如http請求)與ramp-up period 和線程數量密切相關。通過調整ramp-up period 可以使首次取樣的奠基率接近平均取樣的點擊率。
第三, 查驗一下Jmeter日志(文件位置:JMeter_Home_Directory/bin) 的最后一個線程開始時第一個線程是否真正結束了,二者的時間差是否正常。
總之,是否能確定一個適當的ramp-up time 取決於以下兩條規則:
1)第一個取樣器的點擊率(hit rate)是否接近其他取樣器的平均值,從而能否避免ramp-up period 過小。
2)在最后一個線程啟動時,第一個線程是否在真正結束了,最好二者的時間要盡可能的長,以避免ramp-up period過大。
有時,這兩條規則的結論會互相沖突。 這就意味着無法找到同時滿足兩條規則的合適的ramp-up period。 糟糕的測試計划通常會導致這些問題,這是因為在這樣的測試計划里,取樣器將不能充分地采集數據,可能因為測試計划執行時間太短並且線程會很快的運行結束。