1,在場景運行中,每次迭代的過程當中,虛擬用戶對參數的取值規則(五個虛擬用戶,有一個參數username,其值從1到100)web
1)Sequential - each iteration (順序-每次迭代)
每一個用戶的每次迭代的值順序取,而後值都同樣,「2,3,4.。。。」
2)Sequential - each occurrence (順序-每次發生)
五個用戶的每次迭代的值順序取(不會依次取),而後值都同樣,「3,5.。。。」
3)Sequential - once(順序-一次)
每一個用戶的每次迭代的值的取值都同樣,如取值爲「2」
4)random - each iteration(隨機-每次迭代)
每一個用戶的每次迭代的值的取值都不同,隨機獲取
5)random - each occurrence (隨機--每次發生)
每一個用戶的每次迭代的值的取值都不同,隨機獲取
6)random - once (隨機-一次)
每一個用戶的每次迭代都不同,可是同一個用戶的每次迭代值都同樣
第一個用戶的值爲「2」,第二個用戶的值爲「3」,那麼他們的第二次迭代都會取這個值
7)unique-each iteration(惟一-每次迭代)
貌似每一個用戶線平分參數值,而後從分配的值開始取,每次都不同,直到用光
分配的值,而後一直取最後一個值
參數username的值有100個(1-100),五個虛擬用戶,而後每一個用戶分配20個,
一個用戶從1(1,2,3....20,20...)開始,一個用戶從20(20,21...40,40..)開始....
8)unique-each occurrence(惟一-每次發生)
每一個用戶的每次取值不同,在容許的取值個數中,根據設置「when out of values」的時候,在最後一個值時,會進行必定的規則取值,
當設置爲 allocate 3 values for each vuser ,continue with last value 的時候 ,五我的的取值依次可能爲
「3,5,6,6,6.。。。。。」,
「8,10,11,11,11,11.。。」,
「13,15,16,16,16,16.。。。。」。。。
9)unique-once(惟一-每次發生)
每一個用戶,每次迭代都不同dom
2,經常使用函數函數
1) lr_log_message("username:%s",lr_eval_string("{username}"));打印參數爲username的值性能
2)lr_start_transaction("search");lr_end_transaction("search",LR_AUTO); 添加一個名字爲search的事物測試
3)web_reg_save_param("pk_user",
"LB=pk_user=\"",
"RB=\"",
"Search=Body",
LAST);spa
尋找以「pk_user=" 」開頭,以「 」 」結尾的字符串,賦值給變量pk_user日誌
4)lr_think_time(10); 添加10秒的思考時間對象
5)lr_rendezvous("run"); 添加一個名稱爲run集合點,讓虛擬用戶達到這個點之後,按照必定的規則進行加載資源
3,對日誌的開啓與關閉字符串
1)當咱們在錄製腳本,並對腳本進行參數化的時候,咱們須要開啓日誌,找到咱們須要參數化變量值的獲取規則,這個時候,咱們在菜單路徑Vuser->Run-Time Settings...->Log,將其選項設置爲如圖
2)當咱們在場景的運行過程當中,須要看到一些參數的變化,取值狀況,咱們在腳本中添加打印語句,而後菜單路徑爲Vuser->Run-Time Settings...->Log,將其選項設置爲以下圖,而後在運行結果的目錄 「res\log\XXX.log」中就能看到運行參數的變化,你設置的虛擬用戶有多少,這裏就會有多少個這樣的日誌文件
3),在真正的測試中,須要關閉這些日誌,由於日誌的輸出會對測試性能形成影響,在一樣的菜單下,將其設置爲以下圖
4,設置action的迭代次數,以及迭代次數與場景的持續時間(Duration)的關係
1)設置action的迭代次數,默認狀況下vuser_init,Action,vuser_end都是一次,vuser_init,vuser_end通常狀況下都是一次就夠了,而Action則更具狀況須要設置,設置的用意是讓虛擬用戶可以循環進行Action裏邊的操做次數,進行設置次數的前提是將場景中的持續時間設置爲「Run until completion」
2 )場景中持續時間的設置,
當場景中的持續時間設置爲「Run until completion」,而且也沒有對Action的迭代次數進行設置,那麼運行完Action一次就進入vuser_end
當場景中的持續時間設置爲「Run until completion」,並對Action的迭代次數進行設置,那麼運行完Action設置的次數後才進入vuser_end
當場景中的持續時間設置爲具體的時間,不論是否對Action迭代的次數進行過設置,Action裏邊的操做都會來設置的時間內,虛擬用戶會一直進行操做,知道時間結束,而後才進入vuser_end
5,在場景中,不一樣的Action(vuser_start,Start Vusers,Duration,Stop Vusers)都進行了哪些操做
1)vuser_start,對系統進行初始化,如參數的加載,賦值等,每每咱們將初始化的頁面,登錄的操做放到了其中,那麼在這一段時間也會進行頁面初始化,登錄這樣的操做,這個Action的設置有三個選項
Initialize all Vusers Simultaneously,同時初始化全部的虛擬用戶,這個至關於在vuser_start開始設置了一個集合點,100%的用戶到達這個點後,進行初始化操做
Initialize _____Vusers every _________(HH:MM:SS),多少時間初始化多少用戶,具體的數字根據具體的業務進行設置,我如今這個地方的時間設置尚未一個具體的設置規律,不知道設置一個什麼時間,什麼虛擬用戶比較好,但願看到我這篇博文的朋友,這個地方能有什麼好的想法,建議,請給我建議。
第三個參數是 Initialize each Vuser just before it runs,運行Action以前纔對虛擬用戶進行初始化
2)Start Vusers,這個時候就是運行咱們Action裏邊的操做,他的設置有兩個選項
simultaneously ,全部的虛擬用戶同時進入這個Action中進行操做
_____Vusers every _________(HH:MM:SS),多少時間後,讓多少虛擬用戶同事進行Action中的操做
3)Duration,持續時間,他有兩個選項
Run until completion ,運行知道完成,這樣的設置,Action中的操做可能運行一次,也可能運行Action迭代次數中設置的次數
Run for __days and ______(HH:MM:SS) ,讓虛擬用戶在Action中的操做持續多久,這裏設置事後,Action的迭代次數的設置就不起做用了,運行的迭代次數就得看測試對象系統的性能以及這裏設置的具體時間, 這裏有些小疑問,當進入Duration中,也選中了該選項進行了時間的設置,那麼虛擬用戶在該過程當中,是同時運行Action中的操做呢,仍是按照Start Vusers中的節奏進行執行呢,但願有明白這個地方的朋友幫小弟解答下,先謝過了
4)stop vusers,就是中止虛擬用戶,釋放系統的資源,每每退出註銷操做也放到了這個Action裏邊,他有兩選項,和其餘的有類似之處,這裏就再也不說明了
6,爲了更好的還原真實的用戶操做,咱們每每須要設置思考時間(注意,思考時間不要設置到事物中,每每設置事物開始的地方),要想在場景中讓思考時間起做用,咱們每每須要打開思考時間的設置,菜單路徑Vuser->Run-Time Settings...->think time , 如圖
7,在某些狀況下,如將值放到js的變量中,用函數web_reg_save_param取不到想要的值,最後設置了一個參數便解決了這個問題,菜單路徑Vuser->Run-Time Settings...->preferences,如圖