loadrunner关联时,左边界是数组
请教各位大侠一个关于关联时,边界是动态数组的问题,详细如下:web_reg_save_param("WCSParam_Diff2", "LB= name=\"detailForm_CommonArriveDetail.srv_ROW_ID\" value=\"", "RB=\">", LAST);
--以上能取到第一个要关联的id
web_reg_save_param("WCSParam_Diff3", "LB= name=\"detailForm_CommonArriveDetail.srv_ROW_ID\" value=\"", "RB=\">", LAST);
----以上能取到第二个要关联的id
那么能不能有一种方法,一次性取出这些id值,然后保存到数组中呢?因为有多个id要取。 你可以取出后就保存,然后用这个值去做你要做的事情,这个取值可以用循环控制
函数lr_save_string(lr_paramarr_idx("username",1),"name")
给你参考下 一口气吃不成胖子,分步来 web_reg_save_param可以直接抓下所有的,里面有个参数ORD = ALL,然后再用偏移位的参数,不要把 等写到左边界里,可以扩大取值的范围,全部取到后再把多余的字符串拿掉。但获取后参数的保存方式会和 默认 ORD=1 有区别
lr_paramarr_idx是处理获取后参数组的, 9.X 开始才有的,9.X之前的版本就别指望了,sprintf 的方式再从参数组里拿出来 再扩大取值范围,不把【0】、【1】写到边界里,就取不到值了,加了ORD = ALL也取不到呢;
suqing的代码段,我还不是很理解,再学习学习,多谢二位。 用替换符替换一下就行了,前提是数字长度固定,否则把左边界写大点 原帖由 wslf 于 2010-5-17 18:28 发表 http://bbs.51testing.com/images/common/back.gif
再扩大取值范围,不把【0】、【1】写到边界里,就取不到值了,加了ORD = ALL也取不到呢;
suqing的代码段,我还不是很理解,再学习学习,多谢二位。
抓的时候
"LB= name=\"detailForm_CommonArriveDetail" value=\"",
"RB=\">",
然后每个结果 都会在前面多出来 .srv_ROW_ID\这么一段,设法处理掉
原来默认ORD=1取参数是保存在比如 WCSParam_Diff2 ,
用了ORD=ALL以后,参数保存方式 为 WCSParam_Diff2_1
(第1个,之后的类似,WCSParam_Diff2_2,WCSParam_Diff2_3)
WCSParam_Diff2_count 为总数,但没有 WCSParam_Diff2
2楼说的 lr_paramarr_idx ,因为1个与多个的参数命名不同了
lr_paramarr_idx 可以辅助处理直接取出其中某一个的值 呵呵,谢谢各位的回答,现在我这样取出这些值了:
web_reg_save_param("chehao",
"LB/DIG= name=\"detailForm_CommonArriveDetail[#].srv_ROW_ID\" value=\"",
"RB=\">",
"ORD=ALL",
LAST);
可是,当我要打印出取到的第一个值时,怎么不对呢?
sprintf(testhao_1,"{chehao_%d}",1);
lr_output_message("testhao1= %s",lr_eval_string(testhao_1));
运行后的输出是:
Action.c(197): Warning: The string 'chehao_1' with parameter delimiters is not a parameter.
Action.c(197): testhao1= {chehao_1}
这哪里不对码? sprintf(testhao_1,"{chehao_%d}",1);
lr_output_message("testhao1= %s",lr_eval_string(testhao_1));
这两句有问题,可以换成用lr_paramarr_idx来取值 呵呵,我看都这么写的啊?
lr_paramarr_idx这个loadrunner 8支持码 取值的时候要这样写lr_output_message(lr_eval_string("{chehao_1}"));
推荐看日志而不是自己去写代码调试
学习了
学习了 55,这样写也不行啊,lr_output_message(lr_eval_string("{chehao_1}"))也会报一样的错 语句后的分号
页:
[1]