关于lr_xml_get_values返回个数的问题
有这样一段代码char *xml_input =
"<employee>"
"<name>Mike</name>"
"<name>John</name>"
"<name>Lie</name>"
"</employee>";
Action() {
lr_save_string(xml_input, "XML_Input_Param");
lr_xml_get_values("XML={XML_Input_Param}",
"ValueParam=Result",
"Query=/employee/name",
"SelectAll=Yes",
LAST);
}
因为在lr_xml_get_values中指定了SelectAll=Yes,所以Result_1 = Mike, Result_2 = John, Result_3 = Lie
lr_xml_get_values返回值会是3,也就是说匹配到了3个值
问题是:
我现在想输出最后一个结果,该怎么办(由于xml_input不是固定的,结果未必匹配到3个),
我知道肯定不能这么写lr_output_message(lr_eval_string("{Result_#}"));
那该怎么写呢? 谢谢大家! 先判断有几个,然后取最后一个就行了嘛 不知说清楚没有,其是我就是想遍历下匹配出来的Result
自己顶顶~
回复 2# 的帖子
比如说:len =lr_xml_get_values("XML={XML_Input_Param}",
"ValueParam=Result",
"Query=/employee/name",
"SelectAll=Yes",
LAST);
len中存的就是有多少个
那我总不能写成
lr_output_message(lr_eval_string("{Result_len}"))吧?
我该怎么写呢? 因为参数这个东西不是数组,如果是数组的话,可以
int str;
...
for (int i = 0; i < 10; i ++)
printf("%d", str);
由于这个是参数,所以无法写成
for (int i = 0; i < 10; i ++)
printf("%d", Result_i);
那我要遍历的话该怎么做呢?谢谢了 int number;
char Result;
char *xml_input =
"<employee>"
"<name>Mike</name>"
"<name>John</name>"
"<name>Lie</name>"
"</employee>";
lr_save_string(xml_input, "XML_Input_Param");
number = lr_xml_get_values("XML={XML_Input_Param}",
"ValueParam=Result",
"Query=/employee/name",
"SelectAll=Yes",
LAST);
lr_output_message("the number is: %d",number);
sprintf(Result,"{Result_%d}",number);
lr_output_message("the last result is: %s",lr_eval_string(Result));
定义一个数组,最好足够长,然后用sprintf函数就成了,以前的项目里我是这样做的。
回复 6# 的帖子
非常感谢,这种方法确实很好用!自己也找了些资料,也可以通过下面的方式解决(纯LoadRunner方法)大家可以查查lr_paramarr_idx函数和相关函数
len = lr_xml_get_values("XML={XML_Input_Param}",
"ValueParam=Result",
"Query=/employee/name",
"SelectAll=Yes",
LAST);
for (i = 1; i <= len; i ++) {
lr_output_message(lr_paramarr_idx("Result", i));
}
回复 7# 的帖子
lr_paramarr_idx应该只有9.x 以上的版本才有的回复 7# 的帖子
这个函数挺好的,以前没注意到,学习了:)回复 8# 的帖子
确实是只到9.x上的版本才有慎用lr_xml_*
发现 lr_xml_* 函数本身比较占资源,可能影响测试结果:http://hi.baidu.com/higkoo/blog/item/b4ba5a29b3f0bff699250ad7.html
然后我用C实现了一套字符串查找的函数:
http://hi.baidu.com/higkoo/blog/item/b95fcf5166f8d6868c5430b1.html 搬个板凳等 好象这样可以,lr_output_message(lr_eval_string("{Result_3}")); 学习了、、、:lol 楼主 知道怎么随机取: "ValueParam=Result"里面的值吗?lr_paramarr_dondom好像不行啊!
我想的办法是:取一个随机数,然后用: lr_output_message(lr_paramarr_idx("Result", i)); 楼主 知道怎么随机取: "ValueParam=Result"里面的值吗?lr_paramarr_random好像不行啊!
lr_paramarr_random函数为什么不行啊?
报错信息:Action.c(59): Warning: The string 'Result_count' with parameter delimiters is not a parameter.Result是我xml关联出来的参数数组名。
我想的办法是:取一个随机数,然后用: lr_output_message(lr_paramarr_idx("Result", i));
页:
[1]