Internal data
Date/Time,Group Name,Iteration Number,Load Generator Name,Ramdom Number,Table,Unique Number,User Defined Function,Vuser ID統一歸為Inernal data,Vuser運作時自動生成,這裡和一般的參數化的差別是首頁是要參數化的内容是否程式給定的,不是自己的指定的。

1.Date/Time
提供了擷取目前時間的參數方式。雖然在VUGen中有now()函數用來擷取目前日期,但是不如參數化的簡單明了。
注意:如果要修改格式,可以選擇需要的格式,然後在圖示紅色方框中編輯後,回車。回車後會關閉對話框,再次打開可看到修改效果,其他類型的參數編輯也是如此。
offset
提供了偏移的政策,不但可以獲得目前時間,還能對這個時間做一個往前往後的移動:
1.僅選中offset parameter可以指定偏移的日期和時間(目前時間往前進行偏移)
比如:目前時間為22号,這裡選擇偏移2天,那麼輸出為24号
2.同時勾選Working day only,該選項隻指獲得的日期為周一到周五,不包括周末時間(周六,周日),偏移精确度到天
比如:目前時間為22号,星期四,偏移時間為2天,那麼偏移後為星期六,勾選該選項後輸出時間為星期一
3.同時勾選Prior to current,改選項指往後偏移,生成過去的時間
比如:目前時間為22号,偏移時間選擇1天,那麼偏移後為21号,勾選該選項後輸出時間為星期一
應用舉例:
Action(){
char *time_now;
time_now=NULL;
time_now=lr_eval_string("{current_time}");//lr_eval_string表示用字元串表示current_time
lr_output_message(time_now);//列印
return 0;
}
運作結果:
2.Grooup Name
在VUGen中稱一段代碼叫做一個虛拟使用者腳本,這個腳本隻有一個Vuser去運作,到了場景中,一個腳本有很多Vuser來運作,這成為Group Name,也就是指一個組裡面有一定數目的人,并且做了同樣的事情(運作同一個腳本)。通過這個參數,可以在腳本裡面獲得目前腳本所在的Group Name,用于某些處理。
說明:其中%5s,表示group_name字元串占5位,不足左邊補0
應用舉例:
Action(){
char * groupName;
groupName=NULL;
groupName=lr_eval_string("{group_name}");
lr_output_message(groupName);
return 0;
}
運作結果:
3.Iteration Number
獲得目前所在的疊代号
應用舉例;
Action(){
char * iteration_num;
iteration_num=NULL;
iteration_num=lr_eval_string("{iteration_number}");
lr_output_message(iteration);
return o;
}
運作結果:
4.Load Genertor Name
當負載生成時,腳本是放在Load Generator上執行的,通過這個參數可以獲得腳本運作時所在伺服器的名稱
應用舉例:
Action(){
char * lr_generator_name;
lr_generator_name=NULL;
lr_generator_name=lr_eval_string({"generator_name"});
lr_output_message(lr_generator_name);
return 0;
}
運作結果:
說明:生成器名稱為Local,因為格式化字元串,不滿足位數,左邊補齊3個0
5.Random Number
直接提供生成一定格式的随機内容,可以通過設定最大值和最小值,來實作範圍内随機數的生成,也可以通過c語言中的rand()函數來處理。
應用舉例:
Action(){
char * ramdom_num;
ramdom_num=NULL;
ramdom_num=lr_eval_string({"ramdom_number"});
lr_output_message(ramdom_num);
return 0;
}
運作結果:
6.Vuser ID
這個參數類型可以虛拟使用者的編号,在場景中,每個使用者都有一個唯一使用者名,差別是這個使用者名是通過使用者的ID來說明的,例如:Vuser1,這裡說明使用者名為Vuser(一般為腳本名),而使用者編号為1,如果需要獲得使用者的編号,就可以通過這個參數來實作。
應用舉例:
Action(){
char * vuser_ID;
vuser_ID=NULL;
vuser_ID=lr_eval_string({"vuser_id"});
lr_output_message(vuser_ID);
return 0;
}
運作結果:
7.Unique number
獲得一個唯一的資料,在做某些元件的屬性時會比較友善。
注意:當需要大量使用者名時,可以參數化使用者名的編号,将其設定為唯一取值即可。例如在:web_submit_date()函數中設定username屬性為“name=username”,"Value=cloud{userid}"。這裡設定{userid}參數為唯一取值,如果block_size(指參數間隔),如果設定為1,第二個參數值為2,如果設定為10,第二個參數值為11,依次類推
應用舉例:
Action(){
char * unique_num;
unique_num=NULL;
unique_num=lr_eval_string({"unique_num"});
lr_output_message(unique_num);
return 0;
}
運作結果:
8.File類型
1.File
指定儲存參數的檔案,如圖NewParam(1).dat,點選Browse可以指定其他檔案替換目前參數檔案。
注意:在預設情況下,參數記錄隻顯示100條記錄,超過100條記錄可以被操作,但是無法在VUGen中顯示,修改安裝目錄下的VUGen.ini【安裝路徑\config\vugen.ini】檔案中的【ParamTable】屬性下的MaxVisibleLines為想顯示的記錄條數即可。
2.Edit with Notepad
可以打開*.dat參數檔案,可以看到參數名以及參數的值,一般我們都是用這種方式修改參數值,比較友善
3.Add Coloumn/Add row
添加行/列
4.File format
提供參數檔案的内容格式設定,包含兩種格式:
1)Column:列的格式包括Comma(逗号分隔符),Tab(制表符分隔符),Space(空格分隔符),用來幫助分割表格中的列,預設選擇Comma【建議選擇這個】,如上圖Edit with Notepad所示
2)First data:設定行的記錄從第幾行開始的,設定幾就是從第幾行開始作為目前參數的參數值資料行,不計算标題,設定First data為2時,原先的第一條記錄就被隐藏,第二條記錄放到第一條進行顯示,腳本執行時将從第二條開始取值
5.Select column
通過序列号或者列名取值
1)By Number
通過列号指定,預設1,即第一列,以圖為例,可供選擇的是1,2,1則表示NewParam列,2則表示NewParma2這列,預設設定如下,如果選擇的是NewParma2這列,那麼參數取值僅從這列資料中取。
2)By Name
通過列名指定,預設,以圖為例,可供選擇的是NewParam,NewParam2
6.Simulate Parameter
目前參數設定如下,模拟運作疊代時參數的取值
假設目前參數設定如下
Number of Vuser:要模拟的使用者數量
場景運作模式:
1)Run until completion 運作指定的疊代次數直到完成
Take number of iterations from Run-time settins,從運作時 設定中擷取疊代次數
2)Run indefinitely
Number of iterations to show 指定表中要顯示疊代數,即列數
無限期,可以自由指定要運作的次數
7.Date Wizard 通過資料庫導入,此部分(略)
9.Table類型
一個file類型的增強版,提供了一些獨特的功能
Colums
提供了對列的分割方式的設定,file參數類型的缺點就在于他的分割符号隻提供了逗号,制表符,空格三種方式。如果參數化的對象同時存在逗号,制表符,空格時,隻有使用Table參數類型才能解決這個問題
1)Select all columns
勾選後,那麼取值的時候參數會認為整個表隻有一個屬性,通過回車符劃分記錄。
例子:
Action(){
lr_eval_string("{NewParam}");
return 0;
}
如下圖,table='NewParam.dat' column='0' row='2',把兩個列看成一列。
2)Columns by number
通File類型中說述
3)Column
同file類型中的列分隔符
Rows
提供了對回車符号的處理,可以修改Rows per來說明每個參數帶幾行記錄
1)Rows per
設定每個參數包含多少行參數值
例子:設定Rows per=2
如下圖,可以看到記錄,參數值每次去了兩條記錄,參數值合一起了,回車符直接被忽略掉了
2)First line of
在腳本執行的時候選擇第幾行資料使用。列标題是第0行,若從列标題後面的第一行開始取值的話,那就在“First data line”輸入1
3)Table information
如圖,提示參數值表中有4條記錄,每一次疊代取值2行,從第一行開始,有足夠的行用于2次疊代
注意:如果是5行記錄,每次取值兩次,疊代三次,那麼會導緻第三次取值出錯
table表參數行溢出規則:
當記錄不夠時,參數化會根據規則來取值
1)Parameter will get less rows than required
如果記錄條數不夠,那麼取值多少取多少。那上述例子來說,如果是5行記錄,每次取值2行,疊代3次,那麼最後一次取值就是【value5,5Value】
2)Use behavior of "select Next Row”
如果是選擇改選項,VUGen會檢查下一次取值是否能夠得到足夠的記錄行數,如果不夠就跳過後續記錄,根據我們設定好的取值方式重新進行取值,按照同樣的設定,最後一次取值結果變成了【value,textValue2,2Value】
Rows delimeter for log用來設定定界符的日志
例子:
User Defined Function類型
這時VUGen提供的擴充功能,當需要通過外部程式生成某些資料的時候,可以通過dll的方式來完成特殊的輸入
也可以通過lr_load_dll()函數來實作調用外部的dll擴充腳本的功能
例子:Windows彈出窗提示
lr_load_dll("user32.dll");
MessageBox(NULL,"This is the message body","message_caption",0);
對于VUGen來說,確定你建立的external library(dll)必須遵守dll建立規則
10.XML類型
點選Edit Data,彈出右邊Edit視窗,
如下圖,通過郵件對XML的元素和節點屬性進行維護,
其中的小綠色方塊圖示表示生效,如果去掉綠色圖示,點選ok後Schema中是看不到的
對于XML格式的資料可以使用VUGen中的xml系列函數來進行處理,例如希望獲得XML中的某些元素,可以用lr_xml_get_values()函數,詳細資訊請參考幫助文檔。
轉載于:https://www.cnblogs.com/langhuagungun/p/8340996.html