51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2393|回复: 12
打印 上一主题 下一主题

[原创] 为什么在loadrunner中一个判断不起作用?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2012-5-17 10:43:05 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
我将一个字符串转化为整数类型的,但转化后判断却不起作用了,请高手指点,谢谢。
代码如下:我这个函数的目的是想把str1中的数字“52581”单独拿出来,各位高手如果有其他方法请指点?


int Slength=0;
int i,j,y;
char str2[5];
char *str1="\r\n                                 \r\n                                       52581\r\n         \r\n                            \r\n                                        ";


Action()
{
    Slength=strlen(str1);
    j=0;

    for (i=0;i<=Slength+1;i++) {

         *(str2)=*(str1+i);
         lr_save_string(str2,"New_OrderID");
         y=itoa(lr_eval_string(str2));
         lr_output_message("%d",y);

         if (0<Y<=9) {

                        //  lr_save_string("hello world","param");
               //  lr_output_message("This is:",lr_eval_string("{param}"));
                       lr_output_message("This is:",lr_eval_string("{New_OrderID}"));
                              }

                                 }
                return 0;
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    奋斗
    2015-11-25 15:40
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    13#
    发表于 2012-5-23 16:04:17 | 只看该作者
    回复 12# gdutlzl


        学会调试,把你原始截取到的字符串打印出来。。。
        每一个你觉得有怀疑的位置都可以打印出来,你会发现很多问题就明显了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
     楼主| 发表于 2012-5-23 15:53:57 | 只看该作者
    求高手指点一下,急,谢谢!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
     楼主| 发表于 2012-5-17 16:30:20 | 只看该作者
    求高手指点一下,急,谢谢!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
     楼主| 发表于 2012-5-17 16:12:00 | 只看该作者
    我还曾这样改过代码:
    char *str1;
    char * token;
    char * tokeny;
    char sepA[] = "\r\n";
    char sepB[] = " ";

    Action()
    {

    lr_save_string("\r\n                                                                                               \r\n                                                                                                        52581\r\n                                                                                            \r\n                                                                                        \r\n                                        ","str");

    token = (char *)strtok(lr_eval_string("{str}"), sepA);

    while (token != NULL ) { // While valid tokens are returned

            lr_output_message ("%s", token );

            tokeny=(char *)strtok(token, sepB);

                if (tokeny!=NULL) {

                        lr_output_message ("%s", tokeny );

                    }

           token = (char *)strtok(NULL, sepA); // Get the next token
       }

                    return 0;
    }

    可结果只运行了一次就结束了,lr_output_message ("%s", token )返回的结果是空,而且lr_output_message ("%s", tokeny ); 没有打印任何东东
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2012-5-17 16:08:34 | 只看该作者
    strtok貌似是按照一个字符来的。。。你多取几次吧。。算好次数就行了,要么你用另外一个自己写的函数,去找一下fin写的一个函数也可以做到
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2012-5-17 16:07:02 | 只看该作者
    我一个一个加,一直加到5个,可结果还是一样的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2012-5-17 16:04:29 | 只看该作者
    你敢不敢多放几个\t
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2012-5-17 16:00:48 | 只看该作者
    if (token!="\t") {

                       lr_output_message ("%d", i );
               }

    我用这个判断,结果也不对。每一行都有打印出 i

    Action.c(20):
    Action.c(24): 0
    Action.c(20):
    Action.c(24): 0
    Action.c(20): 52581
    Action.c(24): 0
    Action.c(20):
    Action.c(24): 0
    Action.c(20):
    Action.c(24): 0
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2012-5-17 15:48:12 | 只看该作者
    你到的空是\t制表符
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
     楼主| 发表于 2012-5-17 15:47:45 | 只看该作者
    我的意思是说,虽然Action.c(20): 看起来是没有值的,但下面的判断不起作用。而且Action.c(20): 52581
    其实也是带有“\r\n”的。
          if (token!="") {

                       lr_output_message ("%d", i );
               }
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
     楼主| 发表于 2012-5-17 15:45:36 | 只看该作者
    char *str1;
    char * token;
    char * tokeny;
    char sepA[] = " ";

    Action()
    {

    lr_save_string("\r\n                                                                                               \r\n                                                                                                        52581\r\n                                                                                            \r\n                                                                                        \r\n                                        ","str");

    token = (char *)strtok(lr_eval_string("{str}"), sepA);

    while (token != NULL ) { // While valid tokens are returned

            lr_output_message ("%s", token );

           if (token=="") {

                       lr_output_message ("%d", i );
               }

           token = (char *)strtok(NULL, sepA); // Get the next token
       }

                    return 0;
    }



    我这样修改后, 还是得不到想要的结果。运行的结果如下:
    Action.c(20):
    Action.c(20):
    Action.c(20): 52581
    Action.c(20):
    Action.c(20):
    虽然显示是没有值的,但实际是有“\r\n”的, 请指点一下。
    还有,小弟对       token = (char *)strtok(NULL, sepB); 这一句不懂,这句怎么就可以循环了呢?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2#
    发表于 2012-5-17 10:47:24 | 只看该作者
    关联直接做到位,或者用strtok来做就简单了,别那么复杂
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-9-27 07:25 , Processed in 0.074338 second(s), 26 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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