2017-06-02 33 views
1

我想使用列表中的一個隨機數來選擇參數數組的特定元素,並將其作爲參數在腳本的其他地方使用。Loadrunner:使用列表中的參數作爲數組元素編號以獲得隨機數組值

陣列是sspaidlist 我從參數列表中隨機整數{GenRandomSSPAID},我想作爲sspaidlist數組的元素使用和保存的RandomSSPAID

lr_save_string(lr_eval_string("sspaidlist_{GenRandomSSPAID}"),"RandomSSPAID"); 

這只是讓我的實際值「sspaidlist」而不是數組。

我也試過

sprintf(RandomSSPAID, "{sspaidlist_%d}", lr_eval_string("{GenRandomSSPAID}")); 

但這似乎RandomSSPAID設置爲0

的想法是讓3個獨特的價值 - 所以3個不同的數組元素,我不能得到相同的值兩次。我已將隨機性卸載到loadrunner參數函數,因此我將始終使用{GenRandomSSPAID}獲取唯一編號。

回答

1

首先轉換您 「GenRandomSSPAID」 到如下整數:

I =的atoi(lr_eval_string( 「{} GenRandomSSPAID」));

現在用sprintf到它變成RandomSSPAID保存如下:

的sprintf(RandomSSPAID, 「{sspaidlist_%d}」,i)的;

你現在應該能夠看到價值。

+0

我可以隨後使用RandomSSPAID和大括號嗎?或者我需要使用lr_save_string – jquerynewbie

+0

上述的RandomSSPAID值仍爲0,GenRandomSSPAID正確返回。獲取警告'功能中檢測到的參數無效'。這將工作作爲一個單線程(並且不需要在C中聲明任何東西?)'lr_save_int((sprintf(RandomSSPAID,「{sspaidlist_%d}」,(atoi(lr_eval_string(「{GenRandomSSPAID}」)))) ),「RandomSSPAID」);' – jquerynewbie

+0

您可以使用RandomSSPAID作爲參數。只需交叉檢查你是否聲明瞭所有的變量。 –

0

我解決了這個用下面的代碼:

//declare c variables 
Add_List() 
{ 
.... 
char *RandomSSPAID; 
char *SecondRandomSSPAID; 
char *ThirdRandomSSPAID; 

RandomSSPAID = lr_paramarr_idx("sspaidlist",atoi(lr_eval_string("{GenRandomSSPAID}"))); 
lr_save_string(lr_eval_string(RandomSSPAID),"RandomSSPAID"); 

SecondRandomSSPAID = lr_paramarr_idx("sspaidlist",atoi(lr_eval_string("{GenRandomSSPAID}"))); 
lr_save_string(lr_eval_string(SecondRandomSSPAID),"SecondRandomSSPAID"); 

ThirdRandomSSPAID = lr_paramarr_idx("sspaidlist",atoi(lr_eval_string("{GenRandomSSPAID}"))); 
lr_save_string(lr_eval_string(ThirdRandomSSPAID),"ThirdRandomSSPAID"); 

lr_error_message("Random Values for iteration %s are : %s_%s_%s",lr_eval_string("{IterationNumber}"),lr_eval_string("{RandomSSPAID}"),lr_eval_string("{SecondRandomSSPAID}"),lr_eval_string("{ThirdRandomSSPAID}")); 
.... 
} 

注意,我卸載了隨機性Loadrunner產生與{GenRandomSSPAID}一個隨機數,這是文件的參數類型,用數字和設置列表選擇新的行'隨機',更新每個'發生'的值