LoadRunner web_reg_save_param,ord = all,paramName_count问题

时间:2015-02-16 13:42:23

标签: parsing integer loadrunner

我正在使用LoadRunner版本12.02 - Build 2739

查看旧的,但正确的指南'表明我已经正确使用了这些语句(第3点,大约在页面的1/3处,在代码块内 - the atoi statement)。

但是我仍然无法将_count参数转换为int-Variable。

在脚本中,在进行调用之前;

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参数。保持问题,因为原始问题仍然存在

4 个答案:

答案 0 :(得分:1)

问题是您使用的是即将弃用的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,它会自动从参数数组中提取一个随机值。

答案 1 :(得分:1)

这应该可以帮到你

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

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

捕获动态值数组的示例:

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;
}