LoadRunner web_reg_save_param、ord=all、paramName_count 问题

LoadRunner web_reg_save_param, ord=all, paramName_count issues

我使用的是 LoadRunner 版本 12.02 - Build 2739

查看旧的但正确的 'guide' 表明我已正确使用语句(第 3 点,页面下方大约 1/3,在代码块内 - the atoi statement ).

但我仍然无法将 _count 参数转换为 int 变量。

在脚本中,调用之前;

web_reg_save_param(
"ParamName=rotaPeople",
"LB=someText",
"RB=\")",
"Ord=ALL",
LAST);

web调用save_param函数后放在前面,输出日志显示;

Notify: Saving Parameter "ParamName=rotaPeople_count = 21".

在脚本中,调用后,计数已加总;

lr_output_message("RP_C:%d",lr_eval_string("{rotaPeople_count}"));
lr_output_message("RP_C:%s",lr_eval_string("{rotaPeople_count}"));
peoplesCount = atoi(lr_eval_string("{rotaPeople_count}"));
lr_output_message("PC:%d",peoplesCount);

在上述执行后的日志中;

Warning: The string 'rotaPeople_count' with parameter delimiters is not a parameter.
RP_C:110826864
Warning: The string 'rotaPeople_count' with parameter delimiters is not a parameter.
RP_C:{rotaPeople_count}
Warning: The string 'rotaPeople_count' with parameter delimiters is not a parameter.
PC:0

有人有什么想法吗?

注意:警告消息是预期的

注意:解决方法:使用 web_reg_save_param_regex() 并创建了一个正则表达式。在 for 循环中使用返回的 _count 参数有效。保持问题悬而未决,因为原来的问题仍然存在

问题是您使用的 API web_reg_save_param 不支持 ParamName 语法。在此 API 中,第二个参数始终是参数名称,因此正确的用法是:

web_reg_save_param(
"rotaPeople",
"LB=someText",
"RB=\")",
"Ord=ALL",
LAST);

正确的 API 是 web_reg_save_param_ex,它支持您使用的语法,因此调用应该如下所示:

web_reg_save_param_ex(
"ParamName=rotaPeople",
"LB=someText",
"RB=\")",
"Ord=ALL",
LAST);

那么您的其余代码应该可以正常工作。

我不确定你在做什么,但你可能想看看有点未知的 API lr_paramarr_random,它会自动从参数数组中提取一个随机值。

这应该对你有帮助

   web_reg_save_param(
  "rotaPeople",
 "LB=someText",
 "RB=\")",
 "Ord=ALL",
  LAST);

  lr_output_message("PC:%d",atoi(lr_eval_string("{rotaPeople_count}")));

您正在使用 ord=all,查看 运行 时间数据您想捕获哪个值,如果您想捕获第 10 个值请使用 ord=10,此警告将从输出日志中自动删除.

捕获动态值数组的示例:

Action()
{

int i;
int ncount;
char ParamName[100];

web_set_sockets_option("SSL_VERSION", "TLS");



    web_reg_save_param("trackingno","LB=;","RB= (NTN 0430)","search=All","ord=all",LAST);

    web_submit_data("barcode.pl", 
        "Action=http://qtetools.rmtc.fedex.com/barcode/cgi-bin/barcode.pl", 
        "Method=POST", 
        "TargetFrame=", 
        "RecContentType=text/html", 
        "Referer=http://qtetools.rmtc.fedex.com/barcode/html/barcode.shtml", 
        "Snapshot=t2.inf", 
        "Mode=HTML", 
        ITEMDATA, 
        "Name=formcode", "Value=0430", ENDITEM, 
        "Name=count", "Value=10", ENDITEM, 
        "Name=narrow", "Value=2", ENDITEM, 
        LAST);


    ncount= atoi(lr_eval_string("{trackingno_count}"));

    for (i =1;i <= ncount;i++)
       {
    sprintf(ParamName, "{trackingno_%d}", i);

       lr_output_message("Value of %s: %s",ParamName,lr_eval_string(ParamName));
           }
    return 0;
}