个人专长: 胡扯,瞎掰,软件测试稍微靠谱 (空间无原创东西,全部来源网络,如有侵权请联系本人)

LR message函数详细分析

上一篇 / 下一篇  2008-06-03 15:11:40 / 个人分类:loadrunner

Loadrunner提供了若干message函数,以在脚本回放中和脚本运行中,对外输入信息,主要的函数有:
lr_message
 int lr_message (const char *format, exp1, exp2,...expn.);
 
中文解释:lr_message函数将信息发送到日志
文件和输入窗口。在VuGen中运行时,输入文件为output.txt

lr_log_message
 int lr_log_message (const char *format, exp1, exp2,...expn.);
 
中文解释:lr_log_message函数将消息发送到Vuser或代理日志文件(取决于应用程序),而不是发送到输出窗口。通过向日志文件
   
发送错误消息或
其他信息性消息,可以将该函数用于调试。

lr_error_message
 int lr_error_message (const char *format, exp1, exp2,...expn. );
 
中文解释:lr_error_message函数将错误消息发送到输出窗口和Vuser日志文件。要发送不是特定错误消息的特殊通知,请使用lr_output_message

lr_output_message
 int lr_output_message (const char *format, exp1, exp2,...expn.);
 
中文解释:lr_output_message函数将带有脚本部分的行号的消息发送到输出窗口和日志文件。

lr_vuser_status_message
 int lr_vuser_status_message (const char *format);
 
中文解释:lr_vuser_status_message函数向控制器或优化模块控制台的vuser窗口的状态区域发送字符串。它还将该字符串发送
   
vuser日志。从VuGen运行时,消息被发送到output.txt

下面大家看例子:
Action()
{
 int i,j,k;
 char *message;
 j = k = 1000;

 message = "信息";
 lr_message("****************
输出区域开始*****************");
 lr_message("   lr_message   %s:
十进制=%d,八进制=%o,十六进制=0x%x",message,j,j,j);
 lr_log_message("   lr_log_message   %s:
十进制=%d,八进制=%o,十六进制=0x%x",message,j,j,j);
 lr_error_message("   lr_error_message   %s:
十进制=%d,八进制=%o,十六进制=0x%x",message,j,j,j);
 lr_output_message("  lr_output_message   %s:
十进制=%d,八进制=%o,十六进制=0x%x",message,j,j,j);
 lr_message("****************
输出区域结束*****************");
 for (i=1;i<6;i++)
 {
  k += 1000;
  lr_think_time (5);
  lr_vuser_status_message("
%d:%s,十进制=%d,八进制=%o,十六进制=0x%x",i,message,k,k,k);
 }
 return 0;
}
例子说明:
1
message系列的函数参数格式和c语言中的printf格式是完全相同的。
2
、格式化输入标志符号"%",想必大家也比较熟悉。其中%d是十进制,%o是八进制,%x是十六进制,%s是字符;还有%g%u%c等,自己去查。
3
、回放这个脚本后,进入脚本根目录查看mdrv.log,所有输出都可以在这里找到。
4
lr_error_message回放日志中显示的是红色的字体,且显示语句所在行号;同时,如果脚本在controllor中运行时,会生成一个error信息。
5
lr_vuser_status_message会在controllorvuser liststatus列中显示,controllor5秒刷新一次。
6
、当然,也支持转义字符的使用,列表如下:
\a
铃声(警告)
\b Backspace

\f
换页
\n
换行
\r
回车
\t
水平制表符
\v
垂直制表符
\'
单引号标记
\"
双引号标记
\\
反斜杠
\?
文本问号
\ooo ASCII
字符-八进制
支持的转换字符有:
%a ASCII
表示形式
%BX
大端(网络顺序)十六进制
%BO
大端(网络顺序)八进制
%BD
大端(网络顺序)十进制
%LX
小端十六进制
%LO
小端八进制
%LD
小端十进制

==============================================================

此外,loadrunner还提供了在脚本中控制runtime-settinglog设置的函数。
lr_debug_message函数组】
int lr_debug_message (unsigned int message_level, const char *format, ... );
 
中文解释:lr_debug_message函数在指定的消息级别处于活动状态时发送一条调试信息。如果指定的消息级别未出于活动状态,则不
   
发送消息。您可以从用户界面或者使用lr_set_debug_message,将处于活动状态的消息级别设置为MSG_CLASS_BRIEF_LOG
   
MSG_CLASSS_EXTENDED_LOG。要确定当前级别,请使用lr_get_debug_message

unsigned int lr_get_debug_message ( );
 
中文解释:lr_get_debug_message函数返回当前的日志运行时设置。该设置确定发送到输出端的信息。日志设置是使用运行时设置对
   
话框或通过使用lr_set_debug_message函数指定的。

int lr_set_debug_message (unsigned int message_level, unsigned int on_off);
 
中文解释:lr_set_debug_message函数设置脚本执行的调试消息级别message_lvl。通过设置消息级别,可以确定发送哪些信息。 启
   
动设置的方法是将LR_SWITCH_ON作为on_off传递,禁用设置的方法是传递LR_SWITCH_OFF

参数message_level说明: 

 日志级别

 C语言标志

 

 Runtime-setting - Log操作

 Disabled

 LR_MSG_CLASS_DISABLE_LOG

 0

 不勾选Enable logging

 Brief

 LR_MSG_CLASS_BRIEF_LOG

 1

 勾选Standard log

 Extended Log

 LR_MSG_CLASS_EXTENDED_LOG

 16

 勾选Extended log

 Result Data

 LR_MSG_CLASS_RESULT_DATA

 2

 勾选Data returned by server

 Parameter Substitution

 LR_MSG_CLASS_PARAMETERS

 4

 勾选Parameter substitution

 Full Run-Time Trace

 LR_MSG_CLASS_FULL_TRACE

 8

 勾选Advanced trace

 Only on error

 LR_MSG_CLASS_JIT_LOG_ON_ERROR

 512

 勾选send messages only when an error occurs

参数on_off说明:
LR_SWITCH_ON】启用设置
LR_SWITCH_OFF】禁用设置


看下面的小例子:
Action()
{
 int log_leavl;
 log_leavl = lr_get_debug_message();
 lr_error_message ("
当前是:%d",log_leavl);
 return 0;
}
当我设置只有错误信息(error)打印【勾选send messages only when an error occurs】,例子运行结果是:当前是:513
为什么不是512呢,我发现我实际选择的是【Enable logging + send messages only when an error occurs】,按上面的
参数说明,就是【1+512】,也就是513了;因此:
lr_get_debug_message
返回的int数其实是所有勾选操作的代表值相加!


再看下面设置的例子:

Action()
{
//
设置runtime-setting的日志选项【不勾选Enable logging
 char *a;
 a = "ABC";
 lr_set_debug_message (LR_MSG_CLASS_EXTENDED_LOG |LR_MSG_CLASS_PARAMETERS,LR_SWITCH_ON);
 //
打开Runtime-setting LogParameter substitution设置
 lr_debug_message(LR_MSG_CLASS_PARAMETERS,"
打开参数保存的系统日志");
 lr_save_string("aa",a);
 lr_debug_message(LR_MSG_CLASS_PARAMETERS,"
关闭参数保存的系统日志");
 lr_set_debug_message (LR_MSG_CLASS_EXTENDED_LOG |LR_MSG_CLASS_PARAMETERS,LR_SWITCH_OFF);
 //
关闭Runtime-setting LogParameter substitution设置

 return 0;
}
因为设置了runtime-setting不打印任何日志,所以正常运行脚本应该没有任何日志输出;
但是使用lr_set_debug_message函数打开了日志的设置(输出保存参数操作的日志)
因此脚本运行到lr_save_string("aa",a)时,就输出了日志如下:

打开参数保存的系统日志
Action.c(7): Notify: Saving Parameter "ABC = aa"
关闭参数保存的系统日志


TAG: loadrunner

 

评分:0

我来说两句

日历

« 2024-05-28  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 53668
  • 日志数: 84
  • 文件数: 3
  • 建立时间: 2008-04-02
  • 更新时间: 2009-03-23

RSS订阅

Open Toolbar