一、虛擬用戶迭代一次的時間對整個壓力場景的影響。
1、虛擬用戶迭代一次的時間大於等於壓力場景的上行周期。
此種情況,在壓力場景的上行周期中,所有虛擬用戶根據壓力場景設置的策略全部依次運行。壓力場景的上行周期過后,進入虛擬用戶運行的穩定期,因為此時第一個運行的虛擬用戶尚未退出迭代。當第一個運行的虛擬用戶退出迭代時,即進入運動期。在運動期中,會不斷的有虛擬用戶上線和下線,此起彼伏,但當前運行的總虛擬用戶數與總虛擬用戶數接近,實際中會有所偏差,偏差的數量與壓力場景步長的設定以及腳本的睡眠時間有關。當場景設置的步長為0時,運動期的時間等於壓力場景的上行周期,因為當步長設置為0時,意味着虛擬用戶一上線便下線,這與他們上行的速率相等。運動期后,便又進入穩定期,因為運動其第一個運行的虛擬用戶尚未退出迭代。如果結束時間點落在穩定期時,虛擬用戶不會立即停止迭代,而是等到下一次的運動期時才會陸續退出運行。如果結束時間點落在運動期,當有虛擬用戶退出迭代時,便將該用戶下線,不會再進入下一次的迭代,因為運動期時刻都有用戶上線下線,所以虛擬用戶會按照壓力場景設置的退出策略全部退出迭代。
2、虛擬用戶迭代一次的時間小於壓力場景的上行周期。
此種情況是沒有穩定期的,虛擬用戶的上線下線貫穿於整個壓力測試始末。假設有100個虛擬用戶,每秒鍾上一個虛擬用戶,如上圖所示。在虛擬用戶第一次迭代的時間里,前50個用戶依次上線。在虛擬用戶第二次迭代的時間里,第51個用戶到第100個用戶依次上線,同時,因為虛擬用戶第一次迭代時間里的1到50個用戶陸續下線和上線,所以當第51個用戶上線時,第1個用戶也上線,第2個用戶下線;當第52個用戶上線時,第2個用戶上線,第3個用戶下線。按照此種規律,在壓力場景的上行周期中,后一次迭代時間里的虛擬用戶上下線是前幾次迭代時間里的虛擬用戶的同步上下線。當進入壓力場景的運行周期時,虛擬用戶上下線是上行周期所有迭代時間里的虛擬用戶的同步上下線,所以當進入運行周期時,第1個和第51個虛擬用戶上線,同時因為第2個和第52個虛擬用戶上一次迭代時間的結束,所以第2個和第52個虛擬用戶下線。在下一秒時,第2個和第52個虛擬用戶上線,第3個和第53個虛擬用戶下線,以此類推。因為此種情況沒有穩定期,時刻都有虛擬用戶上線下線,所以當到達結束時間點時,虛擬用戶會按照壓力場景設置的退出策略全部退出迭代。值得注意的是,當進入壓力場景的運行周期時,實際正在運行的虛擬用戶總數接近與所有虛擬用戶總數。他們的偏差與壓力周期的上行周期與虛擬用戶一次迭代的時間的商值有關,微觀看來,在壓力場景運行周期的某個時間點上,商值個數的虛擬用戶正在上線,同時商值個數的虛擬用戶正在下線,其余的虛擬用戶正在執行迭代,當然這是理論狀況,實際運行情況將會復雜得多,與腳本的邏輯和場景的設置有關系。
二、File參數化的設置。
上圖中,將參數選擇策略設定為Unique、Each iteration、Continue in a cyclic manner,意思是每次迭代時從File中選擇參數(同一迭代內的相同參數取值一樣),每次都取不一樣的參數,如果備選的參數全部選完,以循環的方式從頭繼續選擇參數。我們更深入的挖掘一下,LoadRunner是如何做到上述策略的呢?做法是這樣的,假設有10個虛擬用戶,備選的參數有1000個,為了保證10個虛擬用戶每次的取值不一樣,將備選的1000個參數平均分為10等份,每一份分給一個虛擬用戶。每個虛擬用戶來取值時,都順序取自己分得的Block,當達到Block的末尾時,再重頭取值。注意,上述策略只有在迭代有效的情況下有效,即必須要選擇下圖中的第二個選項,否則當1000個參數被全部取光時,LoadRunner將會報錯。
有時我們需要將兩個參數一一對應,例如每個用戶都有自己的用戶名,即UserID參數和TrueName參數是一一對應的,如何實現參數的一一對應呢?做法是這樣的,將這兩個參數的數據源記錄到一個參數表中,並將選擇參數的策略設置為一樣。
注意,上圖中的記事本的最后一行必須為空行,否則LoadRunner會報“Missing Line”的異常。
三、場景設置。
1、步長的設置:
步長的設置會影響虛擬用戶一次迭代中的Action之間的等待時間和該虛擬用戶上次迭代和下次迭代的等待時間,不同虛擬用戶之間的迭代等待時間是不受影響的。
2、壓力場景上行策略設置:
上圖設置的策略是每隔3秒上10個用戶,不是3秒內陸續上10個用戶。
3、其他設置。
停用日志:
設置思考時間:
錯誤處理策略和虛擬用戶的運行策略:
網絡速度控制策略: