51Testing软件测试论坛

标题: 请教在关联时,遇到数组的如何处理? [打印本页]

作者: ganlan    时间: 2008-9-7 14:18
标题: 请教在关联时,遇到数组的如何处理?
在设置关联函数时,返回值格式如下,这个应该如何定义左右边界呢?

例如想取值11633823 赋值给A,应该如何定义web_reg_save_param 呢?

<script>
      var returnArray = new Array();
      bnum = 0;
      returnArray[bnum++]="11633823";
      returnArray[bnum++]="14921562";
      returnArray[bnum++]="20080907743297";
      returnArray[bnum++]="080907928660";
      returnArray[bnum++]="174367";

      returnArray[bnum++]="2";
      returnArray[bnum++]="22119263";
      returnArray[bnum++]="80711033";
      returnArray[bnum++]="00";
      returnArray[bnum++]="install/queryInstallNormalTelAction.do";

      returnArray[bnum++]="装机";
      returnArray[bnum++]="00";
      returnArray[bnum++]="电话";
      returnArray[bnum++]="1";
      returnArray[bnum++]="2008-09-07 12:27:25";

      returnArray[bnum++]="00";
      returnArray[bnum++]="";
      returnArray[bnum++]="";
      returnArray[bnum++]="1611";
      returnArray[bnum++]="0";

      returnArray[bnum++]="4";
      returnArray[bnum++]="2910";
      returnArray[bnum++]="27815821";

  var executeResult = "SUCCESS";
  var msg = "保存成功!";
作者: ganlan    时间: 2008-9-7 15:54
web_reg_save_param("A",
                "LB=returnArray[bnum++]=\"",
                "RB=\";",
                  "Ord=2",
                LAST);
        lr_output_message("produce_Id is %s\n", lr_eval_string("{A}"));
这样取时 发现取不下来。
作者: shiweijian    时间: 2008-9-7 22:34
Ord=1  吧 貌似
作者: 亚瑟王    时间: 2008-9-8 09:34
同意楼上的,把order去掉;默认取第一个
作者: ganlan    时间: 2008-9-8 11:49
标题: 好像不行,Ord=1也取不到,以下是打印信息
Action.c(714): rn_number is 80711031
Action.c(718): Registering web_reg_save_param was successful          [MsgId: MMSG-26390]
Action.c(723): A is {A}

A 打印不出值来,
加ord是为了不只要取这个,不知道这个边界定义是否有问题?
作者: 云层    时间: 2008-9-8 14:14
把ord改成all 用参数数组的方法解决即可
作者: ganlan    时间: 2008-9-8 17:34
标题: 将函数改成如下:
web_reg_save_param("A",
                "LB=returnArray[bnum++]=\"",
                "RB=\";",
        "Ord=ALL",
                LAST);

        lr_output_message("A is %s\n", lr_eval_string("{A_1}"));
        lr_output_message("A is %s\n", lr_eval_string("{A}"));

---------
打印出来:
Action.c(718): Registering web_reg_save_param was successful          [MsgId: MMSG-26390]
Action.c(724): A is {A_1}
Action.c(725): A is {A}

似乎还是取不到值,注册函数成功是否已经说明,左右边界没问题呢?但是为何中间的数值就取不出来呢?对于" 是应该改成\" 就可以了吧?
作者: ganlan    时间: 2008-9-8 17:37
标题: 用Ord=1 和 用Ord=ALL的数组 有什么区别?
web_reg_save_param("A",
                "LB=returnArray[bnum++]=\"",
                "RB=\";",
        "Ord=ALL",
                LAST);

        lr_output_message("A is %s\n", lr_eval_string("{A_1}"));
作者: 云层    时间: 2008-9-9 12:41
关联函数写在请求前面,取值脚本写在请求后。。。
作者: lijian422202    时间: 2008-9-9 13:34
ALL就是把符合条件的值都取出,存放在参数数据中,可以通过参数_下标提取出来,你可以做循环打印出来看看
作者: ganlan    时间: 2008-9-24 10:24
//循环输出用
        int i;
        char temp[1024] = {0};

...

    web_reg_save_param("A",
                "LB=returnArray[bnum++]=\"",
                "RB=\";",
                "NotFound=ERROR",
                "Ord=ALL",
                "Search=Body",
                LAST);
lr_output_message("注册成功!!!!!");

...


//输出关联函数

lr_output_message("==循环输出关联函数的数组值==");
    for(i=1;i<=20;i++)
{
  sprintf(temp,"{A_%d}",i);
  lr_output_message("temp %s\n", lr_eval_string(temp));
}


调试几次后发现可以打印出值来了,以上为循环打印出数组的值。




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