51Testing软件测试论坛

标题: 请问web_reg_save_param这个函数还需要在参数列表中加入一个对应的参数吗? [打印本页]

作者: testsc    时间: 2006-8-7 11:46
标题: 请问web_reg_save_param这个函数还需要在参数列表中加入一个对应的参数吗?
web_reg_save_param( "WCSParam_Diff1", "LB= value=\"", "RB=\"", "Ord=32", "Search=Body", "RelFrameId=1", LAST );

//lr_output_message(lr_eval_string("WCSParam_Diff1"));
lr_log_message("getvalue : %s",lr_eval_string ("{WCSParam_Diff1}"));

我这段代码输出是:
LxNew.c(3): Registering web_reg_save_param was successful          [MsgId: MMSG-26390]
getvalue : {WCSParam_Diff1}
请问是不是还要在参数列表中怎么处理,删除数据还是什么来着饿,
我加入参数列表和不加入参数列表都输出不对呢!

我要把动态生成的值保存下来后面使用。
各位急,请帮忙一下哈!
作者: 金毅    时间: 2006-8-7 12:07
不需要
作者: testsc    时间: 2006-8-7 12:14
那我输出的东西不对。
是不是没有保存进去啊?
我使用的是自动关联存的数据
只是想输出存的结果看看,帮忙解释下!!
作者: testsc    时间: 2006-8-7 12:17
有人说了不需要保存参数
但是我还是不知道怎么输出结果老是那几个名称
而不是存入的值?

[ 本帖最后由 testsc 于 2006-8-7 12:37 编辑 ]
作者: Zee    时间: 2006-8-7 13:16
把lr_log_message("getvalue : %s",lr_eval_string ("{WCSParam_Diff1}")); 改成lr_log_message("getvalue : #%s",lr_eval_string ("{WCSParam_Diff1}")); 即加个#号。
作者: wzb521    时间: 2006-8-7 13:34
加个#号就可以啊,以前还不知道呢,谢谢了!
唉,我以前的输出方式:
char a[2000];
for(i=1;i<=(atoi(lr_eval_string("{wzb_count}")));i++)
{
sprintf(a,"{wzb_%d}",i);
lr_output_message("Value %d= %s ",i,lr_eval_string(a));
}
作者: 麦子华华    时间: 2007-1-25 16:38
1、楼主的写法是可以的,之所有出现这样的提示,是因为 lr_log_message 这个语句放的位置不对,不能紧接 web_reg_save_param 写,应该将 lr_log_message 放到下一个step之后。查了help:

web_reg_save_param is a registration type function. It registers a request to find and save a text string within the Web page that was retrieved. The operation is performed only after executing the next action function, such as web_url.

以上意思是web_reg_save_param 只是注册了一个请求,这个请求将在下一个step后才真正执行。

******************************************************************

2、5楼加#的方法似乎不能用。

******************************************************************

3、分享一些我的使用经验:当web_reg_save_param返回的是数组时,如何访问其中某个值,如param_5, 而5这个下标不是具体的数值,而是一个变量的情况。
    以下是具体的代码:

     char lastNode[200];
     int nodeCount;
     char lastNodeID[200];

     Action1_addNode()
      {

        web_reg_save_param("newNodeID",
                     "LB/IC=parent='treeFolderTr_{courseID}' name='treeFolderTr_",
                     "RB/IC=\'",
                     "Ord=All",
                     "Search=Body",
                     "RelFrameId=1",
                      LAST);

       //注意上面的Ord=All, 表示返回所有匹配的字符串,因此newNodeID是一个数组。

         web_url("courseView.do",

              "URL=http://192.168.1.38:8080/skills/recorder/courseView.do?  
               fwcid=contents&feature=course&action=addLobject&key=&
               value=recordContent&randnum=0.08241337502500479",
              "Resource=0",
              "RecContentType=text/html",
              "Referer=http://192.168.1.38:8080/skills/recorder/courseView.do?  
                 fwcid=contents&feature=course&action=select&
                  courseKey={courseID}&key={courseID}",
              "Snapshot=t44.inf",
              "Mode=HTTP",
              LAST);


    //得到数组的个数。

    nodeCount = atoi(lr_eval_string("{newNodeID_count}"));

    //格式化字符串:newNodeID_5(假设数组的个数是5), 使之表示数组中最后一个值。

     sprintf(lastNode, "{newNodeID_%d}", nodeCount);

    //lr_log_message("the last is: %s", lr_eval_string(lastNode));

    //将newNodeID数组的最后一个值赋给变量lastNodeID,lastNodeID将在后面的脚本中引用。

    lr_save_string(lr_eval_string(lastNode), "lastNodeID");


    web_url("courseView.do_2",
              "URL=http://192.168.1.38:8080/skills/recorder/courseView.do?
                fwcid=contents&feature=lobject&action=select&key={lastNodeID}
     。。。。。。。。。。

[ 本帖最后由 麦子华华 于 2007-1-25 16:42 编辑 ]
作者: qi_cy    时间: 2007-1-31 11:16
楼上的说的很对,查看web_reg_save_param的参数值,只能够在它的下一个脚本命令执行之后才可以取到值
作者: lijian422202    时间: 2007-1-31 15:57
上面的几个方法都是可以的 ,
不过最简单莫过与在runtime setting里面设置log输出就可以了。
作者: tiantaowj    时间: 2007-3-1 23:57
非常感谢~~!
作者: guxingyun    时间: 2007-4-20 15:05
高见 标注学习...
作者: bingbingyang11    时间: 2007-4-20 17:32
记号,学习~
作者: rickyzhu    时间: 2007-4-20 22:07
标题: 回复 #5 Zee 的帖子
Zee,#是为什么?

我感觉好像跟那天我的问题一样,放置的位置不对。
作者: colin_zhang    时间: 2007-4-21 09:32
web_reg_save_param同时也是一个registration type function (只要函数名称中包含_reg_的字眼,表示其为registration type function)。registration type function意味着其真正作用的时机是在下一个action function完成时执行的。举例来说,当某个web_url执行时所接收到的网页内容中包含了要做关联的动态数据,则必须将web_reg_save_param放在此web_url之前,则web_reg_save_param会在web_url执行完毕后,也就是网页内容都下载完后,再执行web_reg_save_param找寻要做关联的动态数据并建立参数。
所以说lr_log_message必须放到下一个Step,这个时候变量才取到了对应的数据,才能显示哈
作者: dandan    时间: 2007-4-21 09:47
嗯,不错,学到了哦,谢谢了...




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