51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

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

[原创] 参数化有问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-10-16 16:08:34 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
脚本如下,其中事务名name参数化策略为“去当前group name”,为什么输出事务名时总是这样:Transaction {name} ended with Pass status (Duration: 0.0257).
也就是说事务名称为{name},而不是name的各个参数值。为什么?


=========================================
#include "as_web.h"

Action()
{   
lr_start_transaction("{name}");
  lr_message("transaction name is {name}");
lr_end_transaction("{name}", LR_AUTO);
return 0;
}

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

使用道具 举报

该用户从未签到

13#
发表于 2007-10-17 11:55:45 | 只看该作者
原帖由 qiguojie 于 2007-10-17 09:51 发表
3、参数值的引用方法
   参数值的引用分2种:一是直接引用,一个是使用lr_eval_string函数引用
   一、直接引用
       引用格式为:{参数名}
       一般在web_url、web_submit_data等函数体里使用,例如:
   ...



太谢谢元老了!    俺要更加努力学习了!   
回复 支持 反对

使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    12#
    发表于 2007-10-17 11:55:21 | 只看该作者
    估计只有LR的一些函数可以直接引用。。。:)
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    11#
    发表于 2007-10-17 11:54:34 | 只看该作者
    C函数的参数列表里直接引用是不可以的,为了验证,我写了一个例程:
    =======================
    int abc(char ps[],int a,int b)
    {
            lr_message("%s,%d+%d = %d\n",ps,a,b,a+b);
            return 0;
    }
    Action()
    {
            int i,j;
            lr_save_string ("运算结果","ps");
            for (i=0;i<10;i++)
            {
                    for (j=10;j>0;j--)
                    {
                       abc("{ps}是",i,j);
                    }
            }
            return 0;
    }
    =============================
    执行结果如下:
    Starting action Action.
    {ps}是,0+10 = 10
    {ps}是,0+9 = 9
    {ps}是,0+8 = 8
    {ps}是,0+7 = 7
    {ps}是,0+6 = 6
    …………
    {ps}是,9+6 = 15
    {ps}是,9+5 = 14
    {ps}是,9+4 = 13
    {ps}是,9+3 = 12
    {ps}是,9+2 = 11
    {ps}是,9+1 = 10
    Ending action Action.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
     楼主| 发表于 2007-10-17 11:34:24 | 只看该作者
    反正,如果用到参数化的地方,两个方法总有一个适用。一个不行就用另一个。嘿嘿,不求甚解。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
     楼主| 发表于 2007-10-17 11:33:03 | 只看该作者
    我是这么理解的,不知道对不对:

    如果把直接引用放到函数的attribute list里面,lr会把它当作参数、然后去匹配正确的值;
    如果把直接引用放到其他的字符串里面(不是函数的attribute list:比如说定义一个字符串char *s="{name}",或者放到打印的函数里面),lr会不会把它当作参数匹配正确的值,而是直接当作静态字符串处理。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2007-10-17 11:29:08 | 只看该作者

    to:5#

    正解!今天我也发现这个问题了。
    还有,谢谢您的参数值的引用方法。充分理解了
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    7#
    发表于 2007-10-17 09:51:36 | 只看该作者
    3、参数值的引用方法
       参数值的引用分2种:一是直接引用,一个是使用lr_eval_string函数引用
       一、直接引用
           引用格式为:{参数名}
           一般在web_url、web_submit_data等函数体里使用,例如:
            lr_save_string("index.asp","url");
            lr_save_string("410","fid");
            lr_save_string("555","cid");
            web_url("{url}",
               "URL=http://192.168.5.113/bbs/{url}?theurl=http_Colon_//192.168.5.113/bbs/post.asp?fid={fid}_And_cid={cid}",
               "TargetFrame=",
               "Resource=0",
               "RecContentType=text/html",
               "Referer=",
               "Snapshot=t1.inf",
               "Mode=HTML",
               EXTRARES,
               "Url=images/gslt.gif", "Referer=http://192.168.5.113/bbs/top.htm", ENDITEM,
               LAST);
           通常,使用lr的参数替换功能形成的参数,格式都是这个。



        二、lr_eval_string()
           这个引用通常是在赋值和打印等操作中,用来引用形参所对应的实际值。
           例如:lr_save_string("这是实际值!","values");
                 lr_message("实际值是:%s",lr_eval_string("{values}"));

    具体文章,可以参考我的blog:http://www.51testing.com/?6343/action_viewspace_itemid_16481.html
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2007-10-17 09:37:52 | 只看该作者
    原帖由 qiguojie 于 2007-10-17 09:01 发表
    用 lr_eval_string("{name}")试试,你的脚本替换如下:

    #include "as_web.h"

    Action()
    {   
    lr_start_transaction(lr_eval_string("{name}"));
    lr_message("transaction name is %s",lr_eval_string("{name ...



    元老能否说下两种参数引用的不同,及何种情况下使用哪种引用方法吗?  多谢了!~
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    5#
    发表于 2007-10-17 09:01:37 | 只看该作者
    用 lr_eval_string("{name}")试试,你的脚本替换如下:

    #include "as_web.h"

    Action()
    {   
    lr_start_transaction(lr_eval_string("{name}"));
    lr_message("transaction name is %s",lr_eval_string("{name}"));
    lr_end_transaction(lr_eval_string("{name}"), LR_AUTO);
    return 0;
    }

    LR的参数引用有2种情况。。多做做就能搞明白了。。
    楼主C语言基础多巩固一下,嘿嘿
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2007-10-16 17:43:30 | 只看该作者
    呵呵,版主这是为什么啊?
       能说下原因?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2007-10-16 17:19:06 | 只看该作者

    因为就是这样的

    所以你怎么改都是输出{name}这个事务名称
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2#
     楼主| 发表于 2007-10-16 16:09:23 | 只看该作者
    把参数类型改为file,编辑了参数表*.dat,为什么还是这个结果?55555
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-8 03:34 , Processed in 0.076053 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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