51Testing软件测试论坛

标题: 检查点web_reg_find的参数savecount的值是如何变化的? [打印本页]

作者: tianlu_0_0    时间: 2008-12-24 20:30
标题: 检查点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 编辑 ]
作者: Lemon_s    时间: 2008-12-25 10:14
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.
作者: archonwang    时间: 2008-12-25 10:45
读下这个关于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);         }
   

    我觉得这个方法非常有用,我们可以举一反三,应用到我们实际的项目中
作者: tianlu_0_0    时间: 2008-12-25 14:02
斑竹, 我好像就是按照这个说明自己录制了一个登录脚本啊!  

我的底子比较差. 一开始我就不明白为什么if条件要那么设置
if (atoi(lr_eval_string("{Welcome_Count}")) > 0){    //判断如果Welcome字符串出现次数大于0,
我想为什么和0较上劲了, 条件是savecount变量的值是不是0, 大于或小于0奇了怪了!
后来我看您给这段例子中备注:
“SaveCount”,该参数可以记录在缓存中查找内容出现的次数,我们可以使用该值,来判断要查找的内容是否被找到
我就明白点了, 要有多个用户进行登录, 用户登陆一次, savecount值就会有变化. 通过它备注, 我理解是只有成功登陆, 他才会开始计数即才会大于0, 成功一次登录值为1, 两次为2...., 一次没成功无论登录操作做了几次都为0. 可是日志输出时不是按照我的理解显示的!  您能不能给我解释一下啊? 往根里说, 我是挺笨的!

[ 本帖最后由 tianlu_0_0 于 2008-12-25 14:03 编辑 ]
作者: tianlu_0_0    时间: 2008-12-25 14:06
标题: 回复 2# 的帖子
本来我就有点迷糊, 看见这段英语里那么多术语好像感觉自己理解错了, 但具体也没领会得了啊!
作者: archonwang    时间: 2008-12-25 14:10
请注意下,是缓存中的记录。
作者: tianlu_0_0    时间: 2008-12-25 18:31
我还是不太理解savecount取值的机制, 那就先放一放吧. 我就先记住它的值只有两种情况:1或0吧. 呵呵, 谢谢二位的解答.
作者: whyleave    时间: 2008-12-25 19:17
晕,savecount的值怎么会只有0和1两种情况呢?
,拿恶魔的脚本举个例子:
           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.
作者: 云层    时间: 2008-12-25 22:31
save_count只是反映能符合规则的内容出现的次数而已
作者: archonwang    时间: 2008-12-26 10:11
突然发现这个问题很高深,改天再实验下看看。
作者: tianlu_0_0    时间: 2008-12-26 10:43
没有找到Welcome,则Welcome_Count的值为0,如果在返回信息中出现了1次Welcome,则Welcome_Count的值为1.同理,如果在返回信息中出现了10次Welcome,则Welcome_Count的值为10


反正我在脚本中放了这个函数lr_log_message("第s%次成功登录", lr_eval_string("{n}")); n是savecount我设置的变量名. 输出的结果s%处分别是0,0,1,1; 而不是0,0,1,2.

呵呵, 大家实验吧. 到底应该是什么样我也是晕呢! 我昨天问了一下开发人员, 他上来没怎么看, 就说这个只可能有0,1两种情况嘛! 说是web机制. 我所以说就这么记着吧. 只有0,1两种情况.
作者: medoraemon    时间: 2008-12-26 13:57
原帖由 tianlu_0_0 于 2008-12-26 10:43 发表


反正我在脚本中放了这个函数lr_log_message("第s%次成功登录", lr_eval_string("{n}")); n是savecount我设置的变量名. 输出的结果s%处分别是0,0,1,1; 而不是0,0,1,2.

呵呵, 大家实验吧. 到底应该是什么样 ...

如果不是上述问题,那就大胆猜想下,你的第四条数据的问题...嘿嘿
作者: jiachang    时间: 2010-10-12 14:44
了解了,个人理解:记录的count数是文本在结果中出现的次数,如果只出现了一次,则结果就是0或1,但如果查找的文本在结果中出现的多次,则count数就是对应的出现次数
作者: yizhimei82020    时间: 2012-12-17 15:57
"SaveCount=num"  
lr_log_message("第%s次成功登录", lr_eval_string("{num}"));
我迭代3次,三次的用户名和密码都是错误的;
结果三次是:num,0,0
求解释!先谢谢各位!
作者: yizhimei82020    时间: 2012-12-17 16:03
"SaveCount=num"  
lr_log_message("第%s次成功登录", lr_eval_string("{num}"));
我迭代3次,三次的用户名和密码都是错误的;
结果三次是:num,0,0
求解释!先谢谢各位!




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2