检查点web_reg_find的参数savecount的值是如何变化的?
我录制了一个登录脚本, 对用户名和密码进行了参数化, 数据源中设置了4组数据, 第1,2组为错误的用户名和密码, 第3,4组为正确的用户名和密码. 运行时设置迭代次数为4.并在脚本中插入了函数lr_log_message("第%s次成功登录", lr_eval_string("{n}"));注:参数"SaveCount=n"
if(atoi(lr_eval_string("{n}")>0)
{
lr_output_message("登录成功");
}
else
{
lr_error_message("登录失败"):
}
那么在回放日志中会有4次"第%s次成功登录"的字样, 其中的%s分别会是几呢?我的日志中分别是0, 0, 1, 1. 如果这是对的, 我对savecount的值代表的意义有点不明白了, 看论坛上的资料应该说是代表成功登录的次数, 那应该是0,0,1,2啊! 如果不对, 还需要怎么设置能输出正确的值呢? 谢谢前辈多指导了.
[ 本帖最后由 tianlu_0_0 于 2008-12-24 20:32 编辑 ] The SaveCount argument causes the number of matches that were found to be assigned to the parameter. To use this attribute, specify "SaveCount=param". When the check is performed, param is assigned a null–terminated string representing a numerical value. 读下这个关于web_reg_find函数的说明及其例子
二、web_reg_find()函数
该函数的作用是“在缓存中查找相应的内容”,常用参数及含义如下:
web_reg_find("Search=Body", //定义查找范围
"SaveCount=ddd", //定义查找计数变量名称
"Text=aaaa", //定义查找内容
LAST);
使用该函数注意以下事项:
1、位置
该函数写在要查找内容的请求之前,通常情况下写在如下六个函数之前:
Web_castom_request();web_image();web_link();web_submit_data();web_submit_form();web_url()
2、使用技巧
在该函数的参数中有个“SaveCount”,该参数可以记录在缓存中查找内容出现的次数,我们可以使用该值,来判断要查找的内容是否被找到,下面举个例子来说明:(引用LR的帮助中的例子)
// Run the Web Tours sample
web_url("MercuryWebTours",
"URL=http://localhost/MercuryWebTours/",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTML",
LAST);
// Set up check for successful login by looking for "Welcome"
web_reg_find("Text=Welcome",
"SaveCount=Welcome_Count",
LAST);
// Now log in
web_submit_form("login.pl",
"Snapshot=t2.inf",
ITEMDATA,
"Name=username", "Value=jojo", ENDITEM,
"Name=password", "Value=bean", ENDITEM,
"Name=login.x", "Value=35", ENDITEM,
"Name=login.y", "Value=14", ENDITEM,
LAST);
// Check result
if (atoi(lr_eval_string("{Welcome_Count}")) > 0){ //判断如果Welcome字符串出现次数大于0
lr_output_message("Log on successful.");}//在日志中输出Log on successful
else{ //如果出现次数小于等于
lr_error_message("Log on failed"); //在日志中输出Log on failed
return(0); }
我觉得这个方法非常有用,我们可以举一反三,应用到我们实际的项目中 斑竹, 我好像就是按照这个说明自己录制了一个登录脚本啊!:loveliness:
我的底子比较差. 一开始我就不明白为什么if条件要那么设置if (atoi(lr_eval_string("{Welcome_Count}")) > 0){ //判断如果Welcome字符串出现次数大于0, 我想为什么和0较上劲了, 条件是savecount变量的值是不是0, 大于或小于0奇了怪了!
后来我看您给这段例子中备注:“SaveCount”,该参数可以记录在缓存中查找内容出现的次数,我们可以使用该值,来判断要查找的内容是否被找到我就明白点了, 要有多个用户进行登录, 用户登陆一次, savecount值就会有变化. 通过它备注, 我理解是只有成功登陆, 他才会开始计数即才会大于0, 成功一次登录值为1, 两次为2...., 一次没成功无论登录操作做了几次都为0. 可是日志输出时不是按照我的理解显示的!:L您能不能给我解释一下啊? 往根里说, 我是挺笨的!:(
[ 本帖最后由 tianlu_0_0 于 2008-12-25 14:03 编辑 ]
回复 2# 的帖子
本来我就有点迷糊, 看见这段英语里那么多术语好像感觉自己理解错了, 但具体也没领会得了啊!:L 请注意下,是缓存中的记录。 我还是不太理解savecount取值的机制, 那就先放一放吧. 我就先记住它的值只有两种情况:1或0吧. 呵呵, 谢谢二位的解答. 晕,savecount的值怎么会只有0和1两种情况呢?:lol ,拿恶魔的脚本举个例子:
web_reg_find("Text=Welcome",
"SaveCount=Welcome_Count",
LAST);
web_submit_form("login.pl",
"Snapshot=t2.inf",
ITEMDATA,
"Name=username", "Value=jojo", ENDITEM,
"Name=password", "Value=bean", ENDITEM,
"Name=login.x", "Value=35", ENDITEM,
"Name=login.y", "Value=14", ENDITEM,
LAST);
如果在web_submit_form("login.pl",这个请求的返回信息中没有找到Welcome,则Welcome_Count的值为0,如果在返回信息中出现了1次Welcome,则Welcome_Count的值为1.同理,如果在返回信息中出现了10次Welcome,则Welcome_Count的值为10. save_count只是反映能符合规则的内容出现的次数而已 突然发现这个问题很高深,改天再实验下看看。 没有找到Welcome,则Welcome_Count的值为0,如果在返回信息中出现了1次Welcome,则Welcome_Count的值为1.同理,如果在返回信息中出现了10次Welcome,则Welcome_Count的值为10
:o 反正我在脚本中放了这个函数lr_log_message("第s%次成功登录", lr_eval_string("{n}")); n是savecount我设置的变量名. 输出的结果s%处分别是0,0,1,1; 而不是0,0,1,2.
呵呵, 大家实验吧. 到底应该是什么样我也是晕呢! 我昨天问了一下开发人员, 他上来没怎么看, 就说这个只可能有0,1两种情况嘛! 说是web机制. 我所以说就这么记着吧. 只有0,1两种情况. 原帖由 tianlu_0_0 于 2008-12-26 10:43 发表 http://bbs.51testing.com/images/common/back.gif
:o 反正我在脚本中放了这个函数lr_log_message("第s%次成功登录", lr_eval_string("{n}")); n是savecount我设置的变量名. 输出的结果s%处分别是0,0,1,1; 而不是0,0,1,2.
呵呵, 大家实验吧. 到底应该是什么样 ...
如果不是上述问题,那就大胆猜想下,你的第四条数据的问题...嘿嘿 了解了,个人理解:记录的count数是文本在结果中出现的次数,如果只出现了一次,则结果就是0或1,但如果查找的文本在结果中出现的多次,则count数就是对应的出现次数 "SaveCount=num"
lr_log_message("第%s次成功登录", lr_eval_string("{num}"));
我迭代3次,三次的用户名和密码都是错误的;
结果三次是:num,0,0
求解释!先谢谢各位! "SaveCount=num"
lr_log_message("第%s次成功登录", lr_eval_string("{num}"));
我迭代3次,三次的用户名和密码都是错误的;
结果三次是:num,0,0
求解释!先谢谢各位!
页:
[1]