Существует ряд функций для управления параметрами LR, и вам понадобятся следующие: char * lr_paramarr_idx(const char * paramArrayName, unsigned int index); int lr_paramarr_len (const char * paramArrayName);
Я быстро сделал функцию, которую вы можете использовать для этого:
/**
* ArrayToString( char *ResultParam, char *ArrayParam, char *Delimiter)
*
* @param ResultParam The resulting LoadRunner variable to contain result
* @param ArrayParam The Array param where the elements are
* @param Delimiter Delimiter to use between elements in list
*
*/
int ArrayToString( char *ResultParam, char *ArrayParam, char *Delimiter)
{
int idx,count;
char buf[1024];
// Create a tmp buffer with "{ResultParam}"
sprintf(buf,"{%s}",ResultParam);
// Get the Count of params
count = lr_paramarr_len("Date");
// Clear the variable
lr_save_string("",ResultParam);
// Add 1st variable
lr_param_sprintf(ResultParam, "%s",lr_paramarr_idx(ArrayParam, 1));
// Loop all variables, adding them to "ConcattedDates", starting at idx=2
for (idx=2; idx<=count; idx++) {
lr_param_sprintf (ResultParam, "%s%s%s",
lr_eval_string(buf),
Delimiter,
lr_paramarr_idx(ArrayParam, idx)
);
}
// Return the length of the Concatenated buffer. 0=Nothing in buffer
return strlen(lr_eval_string(buf));
}
Пример использования
// Take "Date" array param, output to "DateConcat" param
ArrayToString("DateConcat", "Date", ",");
// Debug output
lr_error_message( "DateConcat='%s'", lr_eval_string("{DateConcat}") );
В вашем случае результирующая строка DateConcat
будет 101,102,103,104
person
K.Sandell
schedule
05.08.2015