如何在LR中将参数数组的值作为项目数据传递

时间:2018-12-31 18:40:14

标签: loadrunner

我正在loadrunner 12.60中增强Vuser脚本,并且正如我在问题标题中提到的那样,我需要将一组项目数据传递给表单。这些数据是隐藏的,因此它们的值不会出现在记录的脚本返回给服务器的数据项中。现在,我已经使用web_reg_save_param_ex提取了上述值,但是隐藏的输入及其值是随机的,因此也许在一次迭代中我捕获了5个元素,而在另一个迭代中我捕获了50个以上的元素。

我已经在本节中了解了当前迭代中捕获了多少个项目,它打印了值的名称和值本身。

    nameCnt = atoi(lr_eval_string("{nomf_count}"));
    valCnt = atoi(lr_eval_string("{valf_count}"));

    lr_output_message("Number of vars found = %d",nameCnt);
    lr_output_message("Number of values found = %d",valCnt);

    for (y = 1; y <= nameCnt; y++) {
        sprintf(chainNom, "{nomf_%d}", y);
        lr_output_message ("%s: %s", cadenaNom, lr_eval_string(cadenaNom)); 
        sprintf(chainVal, "{valf_%d}", y);
        lr_output_message ("%s: %s", cadenaVal, lr_eval_string(cadenaVal));
    }

我已经提取了名称和值,但是我不知道如何将它们作为数据项传递给web_submit_form

任何帮助甚至是朝正确方向的推动都将不胜感激。

谢谢。

2 个答案:

答案 0 :(得分:0)

如另一条评论中所述,在您的自定义/提交请求下添加ITEMDATA:

 ITEMDATA,
        "Name=<Your Parameter Name>", "Value={your_param_value}", ENDITEM,
        [...]
        LAST;

答案 1 :(得分:0)

您可以尝试使用lr_param_sprintf()函数代替sprintf()。 这会将您的值保存到Loadrunner参数而不是c参数中。您可以直接将其传递给您的web_submit_form

lr_param_sprintf ("chainNom", "{nomf_%d}", y);
lr_param_sprintf (chainVal, "{valf_%d}", y);
....
ITEMDATA,
"Name={chainNom}", "Value={chainVal}", ENDITEM,