51Testing软件测试论坛

标题: 新手提问 lr_save_string后无法用lr_eval_string取出参数的值 [打印本页]

作者: jylizhihui    时间: 2017-7-9 20:06
标题: 新手提问 lr_save_string后无法用lr_eval_string取出参数的值

各位大大,小弟压测时遇到一个问题,给一个参数用lr_save_string后无法用lr_eval_string取出该参数的值,日志中打印出来的值问参数名。
请问该如何才能取出参数{ParamTest1}的值,并在日志中打印出来?
脚本如下:

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 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(18): Notify: Transaction "Test" ended with "Pass" status (Duration: 2.0004 Think Time: 1.9997).        [MsgId: MMSG-16872]
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]
Notify: Next row for parameter ParamTest1 = 1 [table  = ParamTest1].        [MsgId: MMSG-13876]
Notify: Getting new value for parameter 'ParamTest1': table = 'ParamTest1.dat' column = '0' row = '1'.        [MsgId: MMSG-13877]
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(18): Notify: Transaction "Test" ended with "Pass" status (Duration: 2.0009 Think Time: 2.0006).        [MsgId: MMSG-16872]


作者: y2907818    时间: 2017-7-10 09:27
这样写:lr_save_string("hello word","ParamTest1");
作者: jylizhihui    时间: 2017-7-10 11:31
y2907818 发表于 2017-7-10 09:27
这样写:lr_save_string("hello word","ParamTest1");

我试了下lr_save_string("hello word","ParamTest1")的情况下, lr_eval_string("ParamTest1") 跟 lr_eval_string("{ParamTest1}") 都取不到 hello word,而还是取的参数名 ParamTest1跟{ParamTest1}。
情形一
脚本如下:
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]
作者: y2907818    时间: 2017-7-10 14:21
        lr_save_string("hello word","ParamTest1");
        lr_save_string(lr_eval_string("{ParamTest1}"),"a");
       
        lr_log_message ("login failed: %s",lr_eval_string("{a}"));
       
        //lr_output_message(lr_eval_string("{ParamTest1}"));





欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2