2017-06-02 67 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}一个随机数,这是文件的参数类型,用数字和设置列表选择新的行'随机',更新每个'发生'的值