51Testing软件测试论坛

标题: 急!!web_reg_save_param方法中的ORD参数 [打印本页]

作者: bossy    时间: 2008-3-21 11:57
标题: 急!!web_reg_save_param方法中的ORD参数
请问下,我现在虽然知道web_reg_save_param函数的用法,但我一直都不明白ORD参数正确的意思,在网上找都是说:如果把它设置成ALL的话就可以保存多个参数,那我想问一下,这个保存参数的意思是不是脚本迭代一次就把所找到的值一直存放到参数里面去?还是怎么样的?还有,怎样从这个参数找到相关的值?请各位好心人帮下忙,我真的有点笨。
作者: linlinxu    时间: 2008-3-21 13:12
ORD 控制保存的参数类型,如果是保存单个值的话就是1,如果想保存一个列表的话,需要是ALL。
ORD: Indicates the ordinal position or instance of the match. The default instance is 1. If you specify "All," it saves the parameter values in an array. This attribute is optional.
Note: The use of Instance instead of ORD is supported for backward compatibility, but deprecated.
http://bbs.51testing.com/thread-101620-1-3.html
作者: higkoo    时间: 2008-3-21 14:02
标题: ORD
假如符合条件的有多个值,ORD就是指明你要取第几个值。
作者: bossy    时间: 2008-3-21 18:08
上面两位说得不太清楚,还是让我这个新手说吧,现在假如web_reg_save_param这个函数的左边字符数是这样写"LB/IC=barguid'",哪如果把ORD设置成1的话,那就是说,当前源文件中第一次出现barguid时就截取第一次出现barguid右边的值,如果把ORD设置成2的话,那就把源文件中第二次出现的barguid时右边所出现的值截出来,如些类推,如果把ORD设置成All的话就把源文件所有出现barguid右边的值都截出来,就是这个意思.
作者: liangjz    时间: 2008-3-21 22:23
bossy 应该把右边界带上。

ord=1 表示把符合左右边界条件的第一个截取出来
。。。
作者: bossy    时间: 2008-3-22 09:39
原帖由 liangjz 于 2008-3-21 22:23 发表
bossy 应该把右边界带上。

ord=1 表示把符合左右边界条件的第一个截取出来
。。。

嗯,是的是的,我知道了,3Q.
作者: msnshow    时间: 2008-3-23 19:10
这个好像很好理解吧
作者: liming_oicq    时间: 2008-3-23 21:44
当附和关联函数左右边界的值有多个时,设置ORD=ALL表示把所有值都保存到参数中,ORD=1表示保存第一个
作者: boymarco    时间: 2008-12-11 10:31
说得很清楚,理解了,谢谢
作者: aprincess    时间: 2009-1-4 15:48
如果设置ORD=ALL表示把所有值都保存到参数中,是不是有点类似数组的意思啊?
还有这个参数保存了好多值,那么以后调用此参数的地方如何取值呢?是随机取一个,还是取全部?
作者: dishiwujian    时间: 2009-1-4 16:05
原帖由 aprincess 于 2009-1-4 15:48 发表
如果设置ORD=ALL表示把所有值都保存到参数中,是不是有点类似数组的意思啊?
还有这个参数保存了好多值,那么以后调用此参数的地方如何取值呢?是随机取一个,还是取全部?

没错,类似数组。
假设关联了一个姓名的字符串,保存在参数NAME里面:

ORD=1的时候,可以直接输出
lr_output_message(lr_eval_string("{NAME}"));

ORD=ALL的时候,就要这样输出了
lr_output_message(lr_eval_string("{NAME_1}"));
lr_output_message(lr_eval_string("{NAME_2}"));
lr_output_message(lr_eval_string("{NAME_3}"));



下面是我的一段脚本,一起探讨探讨这种情况的用法。
        int i,j;
        char temp[20];
        char keyword[50][64];

        web_reg_save_param("MNAME","LB=)>","RB=</a></td>","ORD=ALL",LAST);

        web_url("影视TOP关键词",
                "URL={LISTURL}",
                "Mode=HTTP",
                LAST);

        i=atoi(lr_eval_string("{MNAME_count}"));
        lr_error_message("%d",i);
        if(i>50) i=50;

        for(j=0;j<i;j++)
        {
                sprintf(temp,"{MNAME_%d}",(j+1));
                sprintf(keyword[j],"%s\n",lr_eval_string(temp));

        }




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