51Testing软件测试论坛

标题: 参数化问题急待解决!!!! [打印本页]

作者: duola1119    时间: 2007-3-26 13:41
标题: 参数化问题急待解决!!!!
/*ÇóµÃtaskidµÄ×ÜÊý*/
action{
int i,count;
        char taskid[1024];
        char str[256];
        char data[256];
---
---
---
web_reg_save_param("ID",
                "LB=javascript:openTaskWindow('",
                "RB=')",
                "Ord=ALL",
                LAST);
---
---
---
        count=atoi(lr_eval_string("{ID_count}"));
        for(i=1;i<count;i++)
                {
                        sprintf(taskid,"{ID_%d}",i);
                }
        lr_output_message("aaa=%s",lr_eval_string(taskid));
        web_url("taskdetail.do",
                "URL=http://192.168.0.135:8888/usertasks/taskdetail.do?fromMonitoringList=true&taskid=82",
                "Resource=0",
                "RecContentType=text/html",
                "Referer=",
                "Snapshot=t4.inf",
                "Mode=HTML",
                LAST);
怎样将lr_output_message()输出的值来参数化82.
作者: Zee    时间: 2007-3-26 13:48
我的理解是这样的,你是关联后,然后把关联取到的值来替换82,那我想知道为什么你一定要先赋值给一个数组,然后再用数组里的值来替换82,直接用关联的变量不就完了嘛,
你这样做不是绕了一圈吗?没有必要。
作者: duola1119    时间: 2007-3-26 14:04
代码中有很多个想这样的数.所以我就用数组将他们全部存起来了.
假如只取一个的话应该就不完整了吧.
作者: duola1119    时间: 2007-3-26 14:09
我把web_reg_save_param()里的Ord=ALL.去掉,然后把82用ID参数化,但是执行后还是不成功.
作者: ppent    时间: 2007-3-26 14:27
你用web_reg_save_param获取并存到ID的值有多个,而你只想把其中某个作为请求参数吧?
如果是的话,那你直接用对应的参数体会82就行了啊。
URL=http://192.168.0.135:8888/usertasks/taskdetail.do?fromMonitoringList=true&taskid="{ID_2}" //用第二个参数替换
作者: duola1119    时间: 2007-3-26 14:35
标题: 回复 #5 ppent 的帖子
我要是这样写也可以,但是那ID_1.ID_3.ID_4...等等.其他的我怎么去弄呢?
我是想通过LR能够自动来把这些ID_N的工作流统统接管.而不能只接管一个呀.
作者: duola1119    时间: 2007-3-26 14:43
PPent 快帮我想想啊..我都急死了.QQ怎么没见你上啊.
作者: QM    时间: 2007-3-26 14:46
没明白你的意思啊。
你的ID_1.ID_3.ID_4...等等是要放在那里关联的?
你那脚本里面只有一个地方关联。
如果多处关联稳妥一点就使用多个web_reg_save_param吧。

[ 本帖最后由 QM 于 2007-3-26 14:51 编辑 ]
作者: QM    时间: 2007-3-26 14:47
另外,建议加上关联失败的处理:
    int result ;
    result = web_reg_save_param()
    if ( result != 0 ){}
作者: duola1119    时间: 2007-3-26 14:54
关联已经成功了.只是关联的数据比较多.所以我用一个数组把数据存起来了.
现在难就难在存储在数组中的数据,怎么样才能依依的拿出来参数化变量.
不知道这个地方该怎么写.
作者: QM    时间: 2007-3-26 15:07
你是一次全部使用?还是第一次迭代用1,第二次用2...等等
如果是第二种情况可以尝试:
web_reg_save_param("ID",
                "LB=javascript:openTaskWindow('",
                "RB=')",
                "Ord={param}",   //ord这样设置。取值从1开始的参数化就不用说了吧。
                LAST);

lr_save_string( lr_eval_string("{ID}"),"param_ID" );
URL=http://192.168.0.135:8888/usertasks/taskdetail.do?fromMonitoringList=true&taskid="{param_ID}"

这样。
作者: duola1119    时间: 2007-3-26 15:24
你的意思是我每执行一次就把Ord={param}.改为Ord=1....N.是吗?
作者: duola1119    时间: 2007-3-26 15:35
问题已解决谢谢你们!~
我是这样改的.Ord=ALL不变.
在下面加上这样一句.
count=atoi(lr_eval_string("{ID_count}"));
        for(i=1;i<count;i++)
                {
                        sprintf(taskid,"{ID_%d}",i);
                }
lr_output_message("aaa=%s",lr_eval_string(taskid));
lr_save_string(lr_eval_string(taskid),"param_ID");
得用lr_save_string()函数.这个param_ID才能够用来参数化变量.
多谢大家的关注.
作者: bingbingyang11    时间: 2007-3-29 17:38
不错,学习拉
作者: ppent    时间: 2007-3-29 20:46
标题: 回复 #13 duola1119 的帖子
呵呵,恭喜你又解决了一个问题。
不错




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