我正在使用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参数。保持问题,因为原始问题仍然存在
答案 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;
}