51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2572|回复: 15
打印 上一主题 下一主题

[原创] 请教LoadRunner一个参数替换的问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-8-28 13:16:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下面是一个参数替换的代码              
                char* orderno;
        //char order_no[5000];
        char* tt;
        char* str="JwwG4wHAyGR6Mh3GAxGEPGQth4wBJNBJDIZQh4xBJFBIyh43F0GF0IEEPHUoh8fkMjHElGUnGEpmc"
                "rkEEl0wmU0mgJGowkcTlcUihaBNHBJaLUYKEOjlIp9IBMUo8UGVHGNBoQJjkNqdXqVTGYwsFIolRqdpq"
                "Q0j9hrFaoVUqcbBoKgA";
        orderno=ng_change_num(str,'N',20);
        lr_output_message("%s",orderno);
        lr_save_string( orderno,"order_no" );

        tt="LZW{order_no}</in3>\r\n</SQLParaUpdate>";
        lr_output_message("%s",tt);
说明:
orderno运行的结果是: JwwG4wHAyHB6Mh3GAxGEPGgth4wBJNBJDIZQh4xBJFBIyh43F0GFwyGQgh46lMPj8hkY4ksnlYwlUUkEEl8xlE0mYJGowkcTlkUihaBNHBJaLUYKEOjlIp9IBMUo82o4xoNCBMchtTGVSqozGFfqVEqNTtFSGkfsFXrNCqlTjYNBUAA=

tt运行的结果是LZW{order_no}</in3>
                 </SQLParaUpdate>

而我想要打印出来的tt是LZWJwwG4wHAyHB6Mh3GAxGEPGgth4wBJNBJDIZQh4xBJFBIyh43F0GFwyGQgh46lMPj8hkY4ksnlYwlUUkEEl8xlE0mYJGowkcTlkUihaBNHBJaLUYKEOjlIp9IBMUo82o4xoNCBMchtTGVSqozGFfqVEqNTtFSGkfsFXrNCqlTjYNBUAA=<\in3>
</SQLParaUpdate>

哪个大侠能告诉我这里的order_no替换是什么地方出了问题啊? 不甚感激!!!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2007-8-28 14:51:18 | 只看该作者
没人回答,帖子都要沉下去了,sdlkfj9
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2007-8-28 14:53:12 | 只看该作者
ai !!这代码我看起来很吃力,还的继续努力
回复 支持 反对

使用道具 举报

  • TA的每日心情
    郁闷
    2017-1-11 15:48
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    4#
    发表于 2007-8-28 15:34:38 | 只看该作者

    回复 #1 流星贝儿 的帖子

    tt="LZW{order_no}</in3>\r\n</SQLParaUpdate>";
    搂主的这句话有问题啊。 可以先将tt的值赋值给一个字符数组变量,然后进行处理后,再赋值回给tt. 请看如下的代码:
      char tt_temp[30];
      char *tt;

      //对于字符串数组tt_temp进行处理
      tt="LZW";
      strcpy(tt_temp,tt);
      strcat(tt_temp,lr_eval_string("{emp_name}"));
      strcat(tt_temp,"</in3>\r\n</SQLParaUpdate>");

      //将处理好的字符串数组tt_temp的值赋给tt;
      tt=tt_temp;
      lr_output_message("the value is:%s",tt);
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2007-8-28 16:11:25 | 只看该作者
    非常感谢楼上的回答,这种strcpy和strcat如果在字符较少的时候是可以处理但字符一多就很麻烦了,本来我的order_no是想替换下面倒数第4行的,这个{order_no}原来就是str中的字符串,麻烦再帮忙看看啊,再次感谢!
    我看到loadrunner的lr_save_string的帮助可以将字符直接替换的啊,不知道怎么到我这里就不行了,sdlkfj8

    soap_request("StepName=SQLParaUpdate",
                    "URL=http://10.0.19.7/A3/SqlEngineService.asmx",
                    "SOAPEnvelope=<?xml version=\"1.0\" encoding=\"GB2312\" standalone=\"no\"?>"
                    "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" "
                    "xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi="
                    "\"http://www.w3.org/2001/XMLSchema-instance\">\r\n<soap:Body>\r\n<SQLParaUpdate "
                    "xmlns=\"http://tempuri.org/\">\r\n<in0>NG00012003</in0>\r\n<in1>"
                    "LZWNJuOZlOR0EEDOhvEBvORkgxtOcIFBzPJzNxvFggOEDOZpiEZjZjMMPMh0kZvNpwkQgO8lMpoN51gs"
                    "bNhvMZzOptjZllctiBwOktkkPOEYkZoMpjNdHN0bNJzMc3msJqVKplQOZvN5zrUkNxjMpsNlaOByhUbO"
                    "U+"
                    "kprrwgMdYNcnkZ1OUTPJsMs9PBnORhOl7EBmMZfm85ncbOh5OBlt9TNJlNx0xeNjcFNxkuggMJtmeTkc"
                    "ltBhM+"
                    "CMpmM1LOmbM9cMhzOBsMNijeeMh1jZkqJj3O7yuCOZoNNCxmCwhfzuflGDwtF0eljcOiEH4sbOBhPO*"
                    "GPWrp0nU85hfOHd79m7sb1pv18LjZiNNk9lwN+"
                    "Tv5jocaq3XPNaj5uO0BblpxfRMcnbVZmBkYocniHIbxqgAZhfQqBUQhAbk7gUcxyfZ1UcWhYl*"
                    "G4a29VJ5XhbqJGJCCFIRZMM2XQMdolgeJXHf2MYpjVkmvikdklHlm49HIeRtGFTwgVtdm0fJK2BSuEYI"
                    "RxshuF9mxjcoZHYdFD22cAYV6b9Ixzl4ZW*CkII9GwdWOCAKA*RubggnCcpvnScZ1nOdp5nie53n2ep+"
                    "nyf6CoGhKAoag6HoWiKLoQKUAA==</in1>\r\n<in2>string,string,datetime,string,string,"
                    "double,string,string,string,string,int,int,int,int,int,string,datetime,string,"
                    "double,double,int,int,datetime,double,double,datetime,string,double,double,int,"
                    "string,double,double,int,string,double,double,int,string,string,string,int,int,"
                    "string,int,string,int,double,string,string,double,double,int,double,double,"
                    "double,double,datetime,string,int,int,datetime,int,string,string,string</in2>"
                    "\r\n<in3>"
                    "LZW{order_no}</in3>\r\n</SQLParaUpdate>\r\n</soap:Body>\r\n</soap:Envelope>",
                    "Snapshot=t852.inf",
                    "ResponseParam=response",
                    LAST);
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2007-8-29 11:17:08 | 只看该作者
    帖子要沉下去了,自己再顶下,:(
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2017-1-11 15:48
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    7#
    发表于 2007-8-29 17:46:55 | 只看该作者

    回复 #5 流星贝儿 的帖子

    你这里的order_no的参数值是从哪里来的? 是从页面上通过参数化抓取下来的呢,还是已经事先在参数列表中已经保存好的参数值?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2007-8-30 10:05:59 | 只看该作者
    char* orderno;
       char* str="JwwG4wHAyGR6Mh3GAxGEPGQth4wBJNBJDIZQh4xBJFBIyh43F0GF0IEEPHUoh8fkMjHElGUnGEpmc"
                    "rkEEl0wmU0mgJGowkcTlcUihaBNHBJaLUYKEOjlIp9IBMUo8UGVHGNBoQJjkNqdXqVTGYwsFIolRqdpq"
                    "Q0j9hrFaoVUqcbBoKgA";
          
        orderno=ng_change_num(str,'N',20);
        lr_output_message("%s",orderno);
        lr_save_string( orderno,"order_no" );

    order_no是通过上面得到的
    其中: ng_change_num返回的是一个加密字符串,将其赋给了orderno,之后将orderno保存到order_no里面去的,之后进行的替换
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2017-1-11 15:48
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    9#
    发表于 2007-8-30 10:33:25 | 只看该作者

    回复 #8 流星贝儿 的帖子

    "LZW{order_no}</in3>\r\n</SQLParaUpdate>\r\n</soap:Body>\r\n</soap:Envelope>",

    这样直接替换是可以的, 我刚才也试过了, 没有问题的, 怎么会在你那里有问题呢?

    而且,我刚才试验的时候,{order_no}也是通过以下这种方式得到的。
    char* orderno;
    char* str="JwwG4wHAyGR6Mh3GAxGEPGQth4wBJNBJDIZQh4xBJFBIyh43F0GF0IEEPHUoh8fkMjHElGUnGEpmcA";
    lr_save_string( orderno,"order_no" );
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-6-25 18:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    10#
    发表于 2007-8-30 11:12:24 | 只看该作者
    tt是c的变量,所以不能用lr的参数调用方法来赋值

    你需要使用字符串拼接才能赋值
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-6-25 18:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    11#
    发表于 2007-8-30 11:28:33 | 只看该作者
    Action()
    {
            char tt[1024];
            lr_save_string("2","a");//将”2“赋值给参数a
            strcat(tt,"1+1=");//将"1+1"保存到tt里
            strcat(tt,lr_eval_string("{a}"));//将参数a的值保存到tt里,并且和前面的连接上
            lr_message("%s",tt);//打印
            return 0;
    }
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-6-25 18:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    12#
    发表于 2007-8-30 11:32:18 | 只看该作者
    char* orderno;
            //char order_no[5000];
            //将tt改成数组
            char tt[5000];
            char* str="JwwG4wHAyGR6Mh3GAxGEPGQth4wBJNBJDIZQh4xBJFBIyh43F0GF0IEEPHUoh8fkMjHElGUnGEpmc"
                    "rkEEl0wmU0mgJGowkcTlcUihaBNHBJaLUYKEOjlIp9IBMUo8UGVHGNBoQJjkNqdXqVTGYwsFIolRqdpq"
                    "Q0j9hrFaoVUqcbBoKgA";
            orderno=ng_change_num(str,'N',20);
            lr_output_message("%s",orderno);
            lr_save_string( orderno,"order_no" );
    //下面这样就可以了
            strcat(tt,"LZW");
            strcat(tt,lr_eval_string("{order_no}");
            strcat(tt,"</in3>\r\n</SQLParaUpdate>");

            lr_output_message("%s",tt);
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2007-8-30 11:36:12 | 只看该作者
    做个标记,留作后用
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2007-8-30 11:39:35 | 只看该作者
    ng_change_num这个是什么??LR中有吗???
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2007-8-30 15:46:22 | 只看该作者
    应该已经有答案了...对于这样的我认为处理最好用C语言的字符串函数来处理,另外lr_eval_string的处理相当重要,
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2007-9-17 19:46:43 | 只看该作者
    lr_message(lr_eval_string("LZW{order_no}</in3>\r\n</SQLParaUpdate>));
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-11 00:58 , Processed in 0.080502 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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