51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1993|回复: 7
打印 上一主题 下一主题

[求助] loadrunner 中,将参数为“123,400,400”转换成int型,转换后为:123400400,怎么办呢

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2015-8-28 09:01:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
       loadrunner中,抓取的参数是“123,400,400”,想要将参数转换成int型的,使得转换后的结果为 :123400400;该怎么做呢?
                                     小女子初学,哪位大神可以指点一二呀?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1
回复

使用道具 举报

  • TA的每日心情
    开心
    2015-9-22 15:26
  • 签到天数: 16 天

    连续签到: 1 天

    [LV.4]测试营长

    推荐
    发表于 2015-8-28 10:43:54 | 只看该作者
    网上搜了下这个函数可以直接用,放到globals.h中:
    int StrToNum(const char * pstr)
    {
        int iresult = 0;
        const char * pstrRun = pstr;
        while (pstrRun[0] != '\0')
        {
            if (pstrRun[0] > 1 && pstrRun[0] <255 && isdigit(pstrRun[0]))
            {
                iresult *= 10;
                iresult += (pstrRun[0] - '0');

            }
            ++pstrRun;
        }

        return iresult;
    }


    然后在action中直接调用;
    lr_save_int(StrToNum(lr_eval_string("{aa}")),"my_num");       


    测试通过,打印出来的日志:
    Action.c(5): Notify: Parameter Substitution: parameter "aa" =  "123,400,400"
    Action.c(5): Notify: Saving Parameter "my_num = 123400400".
    回复 支持 1 反对 0

    使用道具 举报

  • TA的每日心情
    慵懒
    2023-7-5 16:55
  • 签到天数: 158 天

    连续签到: 1 天

    [LV.7]测试师长

    2#
    发表于 2015-8-28 09:32:31 | 只看该作者
    如果参数是3个数的话还是分开用int吧,别一个int后跟那么多数
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-9-22 15:26
  • 签到天数: 16 天

    连续签到: 1 天

    [LV.4]测试营长

    3#
    发表于 2015-8-28 10:00:13 | 只看该作者
    char rec_tmp[20];   //定义一个变量,用于存三个参数
    sprintf(rec_tmp,"%s%s%s",lr_eval_string("{str1}"),lr_eval_string("{str2}"),lr_eval_string("{str3}"));   //把三个参数放到变量rec_tem中
    lr_save_int(atoi(rec_tmp),"my_num");        //把变量的值转换int型放到变量my_num中
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-9-22 15:26
  • 签到天数: 16 天

    连续签到: 1 天

    [LV.4]测试营长

    4#
    发表于 2015-8-28 10:03:23 | 只看该作者
    呃,我错了,你抓出来直接是“123,400,400”,还以为是三个参数
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2015-8-28 10:10:33 | 只看该作者
    清凉晨 发表于 2015-8-28 09:32
    如果参数是3个数的话还是分开用int吧,别一个int后跟那么多数

    取出来的参数是一个数的,只不过这个数每三位之间用“,”隔开,所以如果直接使用atoi()函数转型的话,最终转换后的数是“,”隔开的第一段,即:123;现在想要的是,将这个数“123,400,400”转换后的最终结果是:123400400
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2015-8-28 15:34:11 | 只看该作者
    virgolong 发表于 2015-8-28 10:43
    网上搜了下这个函数可以直接用,放到globals.h中:
    int StrToNum(const char * pstr)
    {

    谢谢哈,我试过这个这个方法,的确可用(虽然我不懂这里面的代码是什么意思
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-9-22 15:26
  • 签到天数: 16 天

    连续签到: 1 天

    [LV.4]测试营长

    8#
    发表于 2015-8-28 15:46:44 | 只看该作者
    紫罗兰1225516 发表于 2015-8-28 15:34
    谢谢哈,我试过这个这个方法,的确可用(虽然我不懂这里面的代码是什么意思)

    原理就是,把参数中从左到右每一位取出来,如果是数字,则每次×10后和下一次取的值相加
    例如123,0=((1*10+2)*10+3)*10+0=1230
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-7 11:26 , Processed in 0.067069 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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