51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 12678|回复: 12

[求助] 关于lr_paramarr_random()的使用

 关闭 [复制链接]
  • TA的每日心情
    开心
    2017-2-22 08:39
  • 签到天数: 270 天

    连续签到: 3 天

    [LV.8]测试军长

    发表于 2016-10-8 14:08:02 | 显示全部楼层 |阅读模式
    10测试积点
    以下是我的脚本:
      Action()
    {

        char TestArray[5];
        char *temp;
        temp="12";

        lr_save_string("1","TestArray_1");
        lr_save_string("12","TestArray_2");
        lr_save_string("11","TestArray_3");
        lr_save_string("122","TestArray_4");
        lr_save_string("13","TestArray_5");

        lr_output_message("数组的第一个值%s",lr_eval_string("{TestArray_1}"));
        lr_output_message("数组的第一个值%s",lr_eval_string("{TestArray_2}"));
        lr_output_message("数组的第一个值%s",lr_eval_string("{TestArray_3}"));
        lr_output_message("数组的第一个值%s",lr_eval_string("{TestArray_4}"));
        lr_output_message("数组的第一个值%s",lr_eval_string("{TestArray_5}"));

         temp = lr_paramarr_random("TestArray");

        //lr_save_string(lr_paramarr_random("{TestArray}"),"temp");

        lr_output_message("数组的随机值%s",temp);
       

        return 0;
    }


    为什么获取到的temp是空值?怎样可以随机输出数组中的值???


    还有用lr_paramarr_idx(TestArray,0);去固定数组的值,怎么输出这个固定数组的值???


    请大家指教!!!


    最佳答案

    查看完整内容

    lr_save_string("1","TestArray_1"); 这个并没有实现将1存到“TestArray”这个char中,而是存在了“TestArray_1”这个char中 c语言中,char str[10] 表示str可以存放10个字母的字符,不是其它语言的char(string)型的数组;

    评分

    参与人数 1测试积点 +10 收起 理由
    lsekfe + 10 由于本人回复本题故而奖励测试积点10

    查看全部评分

    回复

    使用道具 举报

    该用户从未签到

    发表于 2016-10-8 14:08:03 | 显示全部楼层
    lr_save_string("1","TestArray_1");
    这个并没有实现将1存到“TestArray”这个char中,而是存在了“TestArray_1”这个char中

    c语言中,char str[10] 表示str可以存放10个字母的字符,不是其它语言的char(string)型的数组;
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2017-2-22 08:39
  • 签到天数: 270 天

    连续签到: 3 天

    [LV.8]测试军长

     楼主| 发表于 2016-10-8 14:39:21 | 显示全部楼层
    自己顶!!!!
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    1 小时前
  • 签到天数: 2653 天

    连续签到: 5 天

    [LV.Master]测试大本营

    发表于 2016-10-8 15:24:30 | 显示全部楼层
    参数数组必须满足以下两个条件:

    1.参数必须都是以相同的名字开头,后面接下划线加数字的方式顺序赋值。

    2.参数数组必须有一个“参数名_count”的参数来记录数组的长度
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    1 小时前
  • 签到天数: 2653 天

    连续签到: 5 天

    [LV.Master]测试大本营

    发表于 2016-10-8 15:24:50 | 显示全部楼层
    char TestArray[5];
    把这个定义去了试试
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2017-2-22 08:39
  • 签到天数: 270 天

    连续签到: 3 天

    [LV.8]测试军长

     楼主| 发表于 2016-10-8 15:50:58 | 显示全部楼层
    jingzizx 发表于 2016-10-8 15:24
    char TestArray[5];
    把这个定义去了试试

    没有用。


    这个函数是可以的:

            sss = lr_paramarr_idx("TestArray",1);
            lr_output_message("数组的固定值%s",sss);


    但是lr_paramarr_len()这个跟lr_paramarr_random()一样都不行。
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2020-8-4 11:02
  • 签到天数: 943 天

    连续签到: 1 天

    [LV.10]测试总司令

    发表于 2016-10-8 17:23:53 | 显示全部楼层
    char TestArray[5];
           char *temp;
           temp="12";

    1.定义类型错误。char ?  空  temp 定义类型。
    2.取值错误。  lr_output_message("数组的第一个值%s",lr_eval_string("{TestArray_5}"));
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2017-2-22 08:39
  • 签到天数: 270 天

    连续签到: 3 天

    [LV.8]测试军长

     楼主| 发表于 2016-10-9 08:46:56 | 显示全部楼层
    fhhh_eyou 发表于 2016-10-8 17:23
    char TestArray[5];
           char *temp;
           temp="12";

    1、数组是这样定义的哦。char paramArrayName[10];
    2、lr_output_message("数组的第一个值%s",lr_eval_string("{TestArray_5}"));这句话能够正常输出,没有错哦。
    3、无法正常输出的是lr_paramarr_random()这个函数的部分
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2017-2-22 08:39
  • 签到天数: 270 天

    连续签到: 3 天

    [LV.8]测试军长

     楼主| 发表于 2016-10-9 09:18:47 | 显示全部楼层
    我补充一下问题。
    1、随机取数组值函数lr_paramarr_random 运行之后取值为null
    脚本如下:
            char *value;
            char TestArray[3];
            lr_save_string("testA","TestArray_1");
            lr_save_string("testB","TestArray_2");
            lr_save_string("testC","TestArray_3");
            value=lr_paramarr_random("TestArray");        //获取数组的随机值
            lr_output_message("value=%s",value);      //输出value=null


    2、获取数组长度函数lr_paramarr_len  运行 后输出的长度为0
    脚本如下:


             int len;
            int count;
            char TestArray[3];
            lr_save_string("testA","TestArray_1");
            lr_save_string("testB","TestArray_2");
            lr_save_string("testC","TestArray_3");

            len=lr_paramarr_len("TestArray");     //获取数组长度方法1

            count=atoi(lr_eval_string("TestArray_count"));     //获取数组长度方法2

            lr_output_message("数组的长度len=%d",len);      //输出len=0

            lr_output_message("数组的长度count=%d",count);    //输出count=0


    大家有知道为什么的吗?求解答。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2017-2-22 08:39
  • 签到天数: 270 天

    连续签到: 3 天

    [LV.8]测试军长

     楼主| 发表于 2016-10-9 15:49:06 | 显示全部楼层
    顶顶顶
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2017-2-22 08:39
  • 签到天数: 270 天

    连续签到: 3 天

    [LV.8]测试军长

     楼主| 发表于 2016-10-11 15:29:54 | 显示全部楼层
    这个问题我解决了,请看下面的解答!
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2017-2-22 08:39
  • 签到天数: 270 天

    连续签到: 3 天

    [LV.8]测试军长

     楼主| 发表于 2016-10-11 15:32:30 | 显示全部楼层
    因为使用关联函数获取的数组是有长度的,而我自定义的数组没有初始化数组长度,所以导致lr_paramarr_len()和lr_paramarr_random()函数获取的值不正确。

    下面试正确的脚本:
    1、关于  lr_paramarr_len()
    @@@int lr_paramarr_len(const char * paramArrayName);

            char TestArray[3];      //声明一个数组变量
            int count;          //声明一个整型变量用于保存数组的长度
            int len;

            lr_save_string("test","TestArray_1");      //初始化数组的每个元素
            lr_save_string("a","TestArray_2");
            lr_save_string("array","TestArray_3");

            lr_save_string("3","TestArray_count");     //初始化数组的长度


            count=lr_paramarr_len("TestArray");     //获取数组的长度
            lr_output_message("数组的长度是:%d",count);     //输出数组的长度


    2、关于  lr_paramarr_len()

    @@@lr_eval_string(“{paramArrayName _count}”);
            char TestArray[3];      //声明一个数组变量

            lr_save_string("test","TestArray_1");      //初始化数组的每个元素
            lr_save_string("a","TestArray_2");
            lr_save_string("array","TestArray_3");

            lr_save_string("3","TestArray_count");     //初始化数组的长度


            //这里注意,使用lr_eval_string()函数获取到的变量是字符型
            // 需要用atoi()强制转为整型变量,才能正确输出
            lr_output_message("数组的长度是:%d",atoi(lr_eval_string("{TestArray_count}")));     //输出数组的长度


    3、关于lr_paramarr_random()
    @@@char * lr_paramarr_random(const char * paramArrayName);
            char TestArray[3];      //声明一个数组变量
            char *str;    //定义一个变量来保存数组的元素

            lr_save_string("test","TestArray_1");      //初始化数组的每个元素
            lr_save_string("a","TestArray_2");
            lr_save_string("array","TestArray_3");

            lr_save_string("3","TestArray_count");     //初始化数组的长度

            str=lr_paramarr_random("TestArray");       //随机获取数组中的某个元素值保存到变量str中

            lr_output_message("数组的随机值%s",str);      //输出变量str的值,即数组的随机元素值


    注意,这里一定要有【lr_save_string("3","TestArray_count");     //初始化数组的长度 】,不然执行的结果是错误的哦!


    大家可以自己试试!
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2017-2-22 08:39
  • 签到天数: 270 天

    连续签到: 3 天

    [LV.8]测试军长

     楼主| 发表于 2016-10-24 08:41:07 | 显示全部楼层
    Nio 发表于 2016-10-20 16:47
    lr_save_string("1","TestArray_1");
    这个并没有实现将1存到“TestArray”这个char中,而是存在了“TestAr ...

    我知道 是将1存到TestArray_1中。

    但是你说的  char str[10]是表示可以存放10个字母的字符,我有点晕。
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-4-18 08:30 , Processed in 0.078037 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表