51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2296|回复: 4

LR11问题 lr_eval_string获取不到lr_save_string参数化后的值

[复制链接]

该用户从未签到

发表于 2017-7-10 14:01:15 | 显示全部楼层 |阅读模式
本帖最后由 jylizhihui 于 2017-7-10 14:05 编辑

测试软件为:LoadRunner Software 11.00

lr_save_string将"hello world"参数化为ParamTest1后无法用lr_eval_string取出参数ParamTest1的值hello world,日志中打印出来的值为参数名ParamTest1。
请问该如何才能取出参数{ParamTest1}的值hello world,并在日志中打印出来?试了几种情况都无效。



情形一
脚本如下:
Action()
{
  lr_start_transaction("Test");
        lr_think_time(2);
        lr_save_string("hello world","{ParamTest1}");
        lr_log_message("~~~~~~~~~~~~~ Begin ~~~~~~~~~~~~~");
  lr_log_message("The value of {ParamTest1} is: %s ! ",lr_eval_string("{ParamTest1}"));
        lr_log_message("~~~~~~~~~~~~~ End ~~~~~~~~~~~~~");
  lr_end_transaction("Test",LR_AUTO);
        return 0;
}

日志如下:
Starting iteration 1.        [MsgId: MMSG-15968]
Starting action Action.        [MsgId: MMSG-15919]
Action.c(12): Notify: Transaction "Test" started.        [MsgId: MMSG-16999]
Action.c(13): lr_think_time: 2.00 seconds.        [MsgId: MMSG-15948]
Action.c(14): Notify: Saving Parameter "{ParamTest1} = hello world".        [MsgId: MMSG-13798]
~~~~~~~~~~~~~ Begin ~~~~~~~~~~~~~        [MsgId: MMSG-17999]
The value of {ParamTest1} is: {ParamTest1} !         [MsgId: MMSG-17999]
~~~~~~~~~~~~~ End ~~~~~~~~~~~~~        [MsgId: MMSG-17999]
Action.c(20): Notify: Transaction "Test" ended with "Pass" status (Duration: 2.0008 Think Time: 2.0002).        [MsgId: MMSG-16872]
Ending action Action.        [MsgId: MMSG-15918]
Ending iteration 1.        [MsgId: MMSG-15965]


情形二
脚本如下:
Action()
{
  lr_start_transaction("Test");
        lr_think_time(2);
        lr_save_string("hello world","{ParamTest1}");
        lr_log_message("~~~~~~~~~~~~~ Begin ~~~~~~~~~~~~~");
        lr_log_message("The value of \"ParamTest1\" is: %s ! ",lr_eval_string("ParamTest1"));
        lr_log_message("~~~~~~~~~~~~~ End ~~~~~~~~~~~~~");
  lr_end_transaction("Test",LR_AUTO);
        return 0;
}

日志如下:
Starting iteration 1.        [MsgId: MMSG-15968]
Starting action Action.        [MsgId: MMSG-15919]
Action.c(12): Notify: Transaction "Test" started.        [MsgId: MMSG-16999]
Action.c(13): lr_think_time: 2.00 seconds.        [MsgId: MMSG-15948]
Action.c(14): Notify: Saving Parameter "{ParamTest1} = hello world".        [MsgId: MMSG-13798]
~~~~~~~~~~~~~ Begin ~~~~~~~~~~~~~        [MsgId: MMSG-17999]
The value of "ParamTest1" is: ParamTest1 !         [MsgId: MMSG-17999]
~~~~~~~~~~~~~ End ~~~~~~~~~~~~~        [MsgId: MMSG-17999]
Action.c(20): Notify: Transaction "Test" ended with "Pass" status (Duration: 2.0070 Think Time: 2.0063).        [MsgId: MMSG-16872]
Ending action Action.        [MsgId: MMSG-15918]
Ending iteration 1.        [MsgId: MMSG-15965]


情形三
脚本如下:
Action()
{
  lr_start_transaction("Test");
        lr_think_time(2);
        lr_save_string("hello world","ParamTest1");
        lr_log_message("~~~~~~~~~~~~~ Begin ~~~~~~~~~~~~~");
  lr_log_message("The value of {ParamTest1} is: %s ! ",lr_eval_string("{ParamTest1}"));
        lr_log_message("~~~~~~~~~~~~~ End ~~~~~~~~~~~~~");
  lr_end_transaction("Test",LR_AUTO);
        return 0;
}

日志如下:
Starting iteration 1.        [MsgId: MMSG-15968]
Starting action Action.        [MsgId: MMSG-15919]
Action.c(12): Notify: Transaction "Test" started.        [MsgId: MMSG-16999]
Action.c(13): lr_think_time: 2.00 seconds.        [MsgId: MMSG-15948]
Action.c(15): Notify: Saving Parameter "ParamTest1 = hello world".        [MsgId: MMSG-13798]
~~~~~~~~~~~~~ Begin ~~~~~~~~~~~~~        [MsgId: MMSG-17999]
The value of {ParamTest1} is: {ParamTest1} !         [MsgId: MMSG-17999]
~~~~~~~~~~~~~ End ~~~~~~~~~~~~~        [MsgId: MMSG-17999]
Action.c(20): Notify: Transaction "Test" ended with "Pass" status (Duration: 2.0036 Think Time: 2.0029).        [MsgId: MMSG-16872]
Ending action Action.        [MsgId: MMSG-15918]
Ending iteration 1.        [MsgId: MMSG-15965]


情形四
脚本如下:
Action()
{
  lr_start_transaction("Test");
        lr_think_time(2);        //lr_save_string("hello world","{ParamTest1}");
        lr_save_string("hello world","ParamTest1");
        lr_log_message("~~~~~~~~~~~~~ Begin ~~~~~~~~~~~~~");
        lr_log_message("The value of \"ParamTest1\" is: %s ! ",lr_eval_string("ParamTest1"));
        lr_log_message("~~~~~~~~~~~~~ End ~~~~~~~~~~~~~");
  lr_end_transaction("Test",LR_AUTO);
        return 0;
}

日志如下:
Starting iteration 1.        [MsgId: MMSG-15968]
Starting action Action.        [MsgId: MMSG-15919]
Action.c(12): Notify: Transaction "Test" started.        [MsgId: MMSG-16999]
Action.c(13): lr_think_time: 2.00 seconds.        [MsgId: MMSG-15948]
Action.c(15): Notify: Saving Parameter "ParamTest1 = hello world".        [MsgId: MMSG-13798]
~~~~~~~~~~~~~ Begin ~~~~~~~~~~~~~        [MsgId: MMSG-17999]
The value of "ParamTest1" is: ParamTest1 !         [MsgId: MMSG-17999]
~~~~~~~~~~~~~ End ~~~~~~~~~~~~~        [MsgId: MMSG-17999]
Action.c(20): Notify: Transaction "Test" ended with "Pass" status (Duration: 2.0142 Think Time: 2.0133).        [MsgId: MMSG-16872]
Ending action Action.        [MsgId: MMSG-15918]
Ending iteration 1.        [MsgId: MMSG-15965]





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复

使用道具 举报

  • TA的每日心情
    开心
    2022-11-28 13:12
  • 签到天数: 10 天

    连续签到: 1 天

    [LV.3]测试连长

    发表于 2017-7-10 14:51:53 | 显示全部楼层
    这样就可以,另外,不需要新建参数paramtest1.
    Action()
    {
            lr_save_string("hello world","ParamTest1");
            lr_log_message("~~~~~~~~~~~~~ Begin ~~~~~~~~~~~~~");
            lr_log_message("The value of {ParamTest1} is: %s ! ",lr_eval_string("{ParamTest1}"));
            lr_log_message("~~~~~~~~~~~~~ End ~~~~~~~~~~~~~");
            return 0;
    }


    输出结果:

    Virtual User Script started
    Starting action vuser_init.
    Web Turbo Replay of LoadRunner 9.50 for WINXP; WebReplay9a build 6220 (Dec 28 2008 17:01:56)          [MsgId: MMSG-27143]
    Run Mode: HTML          [MsgId: MMSG-26000]
    Run-Time Settings file: "C:\Documents and Settings\Administrator\Local Settings\Temp\noname2\\default.cfg"          [MsgId: MMSG-27141]
    Ending action vuser_init.
    Running Vuser...
    Starting iteration 1.
    Starting action Action.
    ~~~~~~~~~~~~~ Begin ~~~~~~~~~~~~~
    The value of {ParamTest1} is: hello world !
    ~~~~~~~~~~~~~ End ~~~~~~~~~~~~~
    Ending action Action

    评分

    参与人数 1测试积点 +10 收起 理由
    lsekfe + 10 积极回复获得测试积点10 赶快去商城换取奖.

    查看全部评分

    回复 支持 反对

    使用道具 举报

    该用户从未签到

     楼主| 发表于 2017-7-10 15:22:02 | 显示全部楼层
    天之秦 发表于 2017-7-10 14:51
    这样就可以,另外,不需要新建参数paramtest1.
    Action()
    {

    这真的很奇怪
    我按照你的脚本来运行,把ParamTest1参数删除了,结果还是一样的取不到lr_save_string参数化后的ParamTest1参数的值。是不是你的loadrunner为9.5,而我的loadrunner为11的原因。

    脚本如下
    #include "lrs.h"

    Action()
    {
            lr_save_string("hello world","ParamTest1");
            lr_log_message("~~~~~~~~~~~~~ Begin ~~~~~~~~~~~~~");
            lr_log_message("The value of {ParamTest1} is: %s ! ",lr_eval_string("{ParamTest1}"));
            lr_log_message("~~~~~~~~~~~~~ End ~~~~~~~~~~~~~");
            return 0;
    }

    日志如下
    Virtual User Script started at : 2017-07-10 15:08:35        [MsgId: MMSG-15967]
    Starting action vuser_init.        [MsgId: MMSG-15919]
    vuser_init.c(12): lrs_startup(257)        [MsgId: MMSG0]
    Ending action vuser_init.        [MsgId: MMSG-15918]
    Running Vuser...        [MsgId: MMSG-15964]
    Starting iteration 1.        [MsgId: MMSG-15968]
    Starting action Action.        [MsgId: MMSG-15919]
    Action.c(11): Notify: Saving Parameter "ParamTest1 = hello world".        [MsgId: MMSG-13798]
    ~~~~~~~~~~~~~ Begin ~~~~~~~~~~~~~        [MsgId: MMSG-17999]
    The value of {ParamTest1} is: {ParamTest1} !         [MsgId: MMSG-17999]
    ~~~~~~~~~~~~~ End ~~~~~~~~~~~~~        [MsgId: MMSG-17999]
    Ending action Action.        [MsgId: MMSG-15918]
    Ending iteration 1.        [MsgId: MMSG-15965]
    Starting iteration 2.        [MsgId: MMSG-15968]
    Notify: Next row for parameter ParamTest = 2 [table  = ParamTest].        [MsgId: MMSG-13876]
    Notify: Getting new value for parameter 'ParamTest': table = 'ParamTest.dat' column = '0' row = '2'.        [MsgId: MMSG-13877]
    Starting action Action.        [MsgId: MMSG-15919]
    Action.c(11): Notify: Saving Parameter "ParamTest1 = hello world".        [MsgId: MMSG-13798]
    ~~~~~~~~~~~~~ Begin ~~~~~~~~~~~~~        [MsgId: MMSG-17999]
    The value of {ParamTest1} is: {ParamTest1} !         [MsgId: MMSG-17999]
    ~~~~~~~~~~~~~ End ~~~~~~~~~~~~~        [MsgId: MMSG-17999]
    Ending action Action.        [MsgId: MMSG-15918]
    Ending iteration 2.        [MsgId: MMSG-15965]



    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2017-7-10 15:31:40 | 显示全部楼层
    还有一个你看下general options里面的parameter braces是{}还是<>
    回复 支持 反对

    使用道具 举报

    该用户从未签到

     楼主| 发表于 2017-7-10 16:35:37 | 显示全部楼层
    remind19 发表于 2017-7-10 15:31
    还有一个你看下general options里面的parameter braces是{}还是

    还真是这个问题,我用Socket协议来测试的,故变量的符合是<>,改为lr_eval_string("<ParamTest1>")就可以了。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-3-29 00:35 , Processed in 0.067760 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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