LR中日志参数的设置与使用

1、Run-Time Setting日志参数的设置

在loadrunner的vuser菜单下的Run-Time Setting的General的LOG选项中可以对在执行脚本时Loadrunner对日志的操作行为进行定义,下面逐一介绍:

1) Enable logging

  启用日志记录。如果选中该选项Loadrunner在执行脚本时,进行日志的记录,否则不记录日志

2) Send messages only when an error occurs

  仅在出错时发送消息。也称为 JIT (实时)消息传递,仅当错误发生时才写入日志,选择该选项后则可以设置高级选项,指明日志缓存的大小,loadrunner默认的日志到小为1k

3)Always send messages

  始终发送消息

4)Standard log

  标准日志:创建在脚本执行期间发送的函数和消息的标准日志,供调试时使用。对于大型负载测试场景、优化会话或配置文件禁用此选项。如果日志记录级别设置为“标准”,当把脚本添加到场景、会话步骤或配置文件中时,日志记录模式将被自动设置为“Send messages only when an error occurs”。但是,如果日志记录模式被禁用或者设置为“扩展”,则将脚本添加到场景会话步骤或配置文件中将不会影响其日志记录设置。

5) Extended log-----Parameter substitution

  参数替换:选择此选项可以记录指定给脚本的所有参数及其相应的值。当脚本进行参数化、插入事务、关联等优化后,在执行脚本过程中,参数化的值、事务所耗时间、关联函数取出的变量值均会在日志中输出,这个选项对调试脚本查看参数化取值、关联取值是否正确有着重要的作用。

6) Extended log-----Data returned by server

  选择此选项可以记录服务器返回的所有数据。Loadrunner会将所有对服务器发出请求后的response情况记录在日志中,从这个日志中可以查看到服务器对请求的回应是否正确,在使用关联取值时往往需要到该日志中查看需要关联的值,从而确认所取数据左右边界。

7)Extended log-----Advanced trace

  高级跟踪。选择此选项可以记录 Vuser 在会话期间发送的所有函数和消息。调试 Vuser 脚本时,该选项非常有用,特别是在调试手工编写的脚本时,需要查看发送出的请求和响应详细的数据包,非常有用。

  

日志函数的使用

Loadrunner提供了一下几个message函数:

1)lr_message

  int lr_message (const char * format, exp1, exp2,...expn.);

 lr_message函数将信息发送到日志文件和输入窗口。在VuGen中运行时,输入文件为output.txt。

 例如:

  char* abort="aborting";

  lr_message ("login failed: %s", abort);

  在日志中将会看到:login failed: aborting

2)lr_log_message

  int lr_log_message (const char * format, exp1, exp2,...expn.);

  lr_log_message函数将消息发送到Vuser或代理日志文件(取决于应用程序),而不是发送到输出窗口。通过向日志文件发送错误消息或其他信息性消息,
可以将该函数用于调试。

3)lr_error_message

  int lr_error_message (const char *format, exp1, exp2,...expn. );

  lr_error_message函数将错误消息发送到输出窗口和Vuser日志文件。

  如果Run-time settings > General > Miscellaneous >Continue on error未被选中,当脚本执行到此处时将终止执行,这个函数所输出的错误级别较高的信息

,所以一般情况下如果使用该函数时选中Continue on error。

4)lr_output_message

  int lr_output_message (const char *format, exp1, exp2,...expn.);

  lr_output_message函数将带有脚本部分的行号的消息发送到输出窗口和日志文件,类型C语言中的printf(),常用。

在脚本中定义日志的输出模式

1)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。

2)unsigned int lr_get_debug_message ( );

  lr_get_debug_message函数返回当前的日志运行时设置。该设置确定发送到输出端的信息。日志设置是使用运行时设置对话框或通过使用lr_set_debug_message函数指定的。

3)int lr_set_debug_message (unsigned int message_level, unsigned int on_off);

简介:
lr_set_debug_mssage()函数可以作为脚本中日志输出的开关,其作用如同Runtime Setting -> log中的设置一样,如果Runtime setting中取消勾选Enable log,而在脚本调试的过程中需要查看日志输出就可以使用lr_set_debug_mssage()函数。
该函数使用起来比Runtime Setting要灵活,他可以根据需要设置应该输出哪些代码段的日志,而不是像Runtime Setting一样,只要设置了就会输出整个脚本的日志,不管这些日志对用户来说是否有用。如果把这两种设置方式比作变量的话,Runtime Setting就是一个全局变量,在整个脚本中有效,而lr_set_debug_message()函数则属于局部变量,只在当前脚本中有效。
比如说脚本中有一个登录一个退出函数,我只想在脚本调试过程中查看登录的日志,那么就可以实现这样的设置:lr_set_debug_mssage(开) -登录- lr_set_debug_mssage(关),如此以来,就可以只针对性的查看“登录”的日志了。

函数介绍:
intlr_set_debug_message(unsigned intmessage_level, unsigned inton_off);
message_level有如下几种形式
1、标准日志(Brief):LR_MSG_CLASS_BRIEF_LOG
2、扩展日志(Extended Log):LR_MSG_CLASS_EXTENDED_LOG
扩展日志中还包括几个小项
服务器返回值(Result Data):LR_MSG_CLASS_RESULT_DATA
参数替换(Parameter Substitution):LR_MSG_CLASS_PARAMETERS
高级输出(Full Run-Time Trace) :LR_MSG_CLASS_FULL_TRACE

3、另外还有一种情况就是仅当在出错的时候输出:
LR_MSG_CLASS_JIT_LOG_ON_ERROR

on_off有2种形式:
LR_SWITCH_ON和LR_SWITCH_OFF

由上可知lr_set_debug_message()函数使用大致如下
lr_set_debug_message(LR_MSG_CLASS_EXTENDED_LOG| LR_MSG_CLASS_PARAMETERS,LR_SWITCH_ON);
… …
lr_set_debug_message(LR_MSG_CLASS_EXTENDED_LOG| LR_MSG_CLASS_PARAMETERS,LR_SWITCH_OFF);

示例:
/*********************************************************
本示例主要是关于lr_set_debug_message()函数的使用
如果关闭了Runtime setting中的Log输出,
但是在脚本中设置了lr_set_debug_message()开关,
脚本调试过程中仍然能够输出调试日志
注:运行该脚本前请取消勾选Runtime setting->Log中的Enable Log
*********************************************************/
Action()
{
char str[10] = "tester";

lr_output_message("*****开启日志保存前%s*****",str);
//开启日志输出
lr_set_debug_message(LR_MSG_CLASS_EXTENDED_LOG|LR_MSG_CLASS_PARAMETERS|LR_MSG_CLASS_RESULT_DATA|LR_MSG_CLASS_FULL_TRACE ,LR_SWITCH_ON);
//设置一个开始日志输出的flag
lr_debug_message(LR_MSG_CLASS_PARAMETERS |LR_MSG_CLASS_RESULT_DATA|LR_MSG_CLASS_FULL_TRACE ,"*****开始标志****");

lr_save_string("good",str);
//设置一个结束日志输出的flag
lr_debug_message(LR_MSG_CLASS_PARAMETERS |LR_MSG_CLASS_RESULT_DATA|LR_MSG_CLASS_FULL_TRACE ," *****结束标志****");
//关闭日志输出
lr_set_debug_message(LR_MSG_CLASS_EXTENDED_LOG|LR_MSG_CLASS_PARAMETERS|LR_MSG_CLASS_RESULT_DATA|LR_MSG_CLASS_FULL_TRACE ,LR_SWITCH_OFF);

lr_output_message("*****开启日志保存后%s*****",str);

return 0;
}
该实例中还使用了一个lr_debug_message()函数,该函数的第一个参数与lr_set_debug_message()函数中的参数相同。
运行结果:
Action.c(12): *****开启日志保存前tester*****
*****开始标志****
Action.c(20): Notify: Saving Parameter "tester = good"
*****结束标志****
Action.c(29): *****开启日志保存后tester*****
Ending action Action.
Ending iteration 1.
Ending Vuser...
Starting action vuser_end.
Ending action vuser_end.
Vuser Terminated.

LR中日志设置和日志函数的更多相关文章

  1. LR中日志参数的设置

    LR中日志参数的设置 1.Run-Time Setting日志参数的设置 在loadrunner的vuser菜单下的Run-Time Setting的General的LOG选项中可以对在执行脚本时Lo ...

  2. Jmeter 日志设置---如何设置java协议中被测jar的日志?

    先转载一下Jmeter的日志设置: Jmeter运行出现问题可以通过调整jmeter的日志级别定位问题,但运行测试时建议关闭jmeter日志,jmeter打印日志耗费系统性能. Jmeter日志默认存 ...

  3. falsk 项目中日志设置

    app/__init__.py: 1 import logging from logging.handlers import RotatingFileHandler ''' 开发中使用DEBUG级别, ...

  4. 在idea中如何添加log日志

    1.首先下载log4的jar包,官方路径为:http://www.apache.org/dyn/closer.cgi/logging/log4j/1.2.17/log4j-1.2.17.zip 2.下 ...

  5. Python中内置的日志模块logging用法详解

    logging模块简介 Python的logging模块提供了通用的日志系统,可以方便第三方模块或者是应用使用.这个模块提供不同的日志级别,并可以采用不同的方式记录日志,比如文件,HTTP GET/P ...

  6. Go中的日志及第三方日志包logrus

    有别的语言使用基础的同学工作中都会接触到日志的使用,Go中自然也有log相关的实现.Go log模块主要提供了3类接口,分别是 "Print .Panic .Fatal ",对每一 ...

  7. 在 ASP.NET Core 中使用 Serilog 进行日志记录

    目录 从 NuGet 安装 Serilog 在 Main函数 中配置 Serilog 在项目中使用 Serilog 进行日志输出 从 NuGet 安装 Serilog 核心的包是 Serilog 和 ...

  8. iOS 中捕获程序崩溃日志

    iOS 中捕获程序崩溃日志 (2014-04-22 17:35:59) 转载▼     iOS开发中遇到程序崩溃是很正常的事情,如何在程序崩溃时捕获到异常信息并通知开发者,是大多数软件都选择的方法.下 ...

  9. Log4j的扩展-支持设置最大日志数量的DailyRollingFileAppender

    Log4j现在已经被大家熟知了,所有细节都可以在网上查到,Log4j支持Appender,其中DailyRollingFileAppender是被经常用到的Appender之一.在讨论今天的主题之前, ...

随机推荐

  1. $GLOBALS['HTTP_RAW_POST_DATA'] 和$_POST的区别

    $_POST:通过 HTTP POST 方法传递的变量组成的数组.是自动全局变量. $GLOBALS['HTTP_RAW_POST_DATA'] :总是产生 $HTTP_RAW_POST_DATA 变 ...

  2. Scala入门

    搭建环境请参考: http://www.cnblogs.com/super-d2/p/4534208.html 1.交互式编程: adeMacBook-Pro:ssdb-master apple$ s ...

  3. poj 3264 RMQ 水题

    题意:找到一段数字里最大值和最小值的差 水题 #include<cstdio> #include<iostream> #include<algorithm> #in ...

  4. 利用SQLiteOpenHelper来管理SQLite数据库 (转)

    转载自 利用SQLiteOpenHelper来管理SQLite数据库 http://blog.csdn.net/conowen/article/details/7306545 Android学习笔记( ...

  5. codeforces732D 二分加贪心。。

    啊,不好意思..这个题窝也不会,看了网上的题解做的.. 先说一下题意.. 你要考试了..然后你有n天的时间准备以及进行考试 并且,每一天..要么你花一天时间去考一门(每天只能考一门),要么花一天时间休 ...

  6. hbase shell中log4j重复问题

    [root@centos ~]# hbase shellSLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding ...

  7. JVM的数据类型

    Java虚拟机是通过某些数据类型来执行计算的,数据类型可以分为两种:基本类型和引用类型,基本类型的变量持有原始值,而引用类型的变量持有引用值. Java语言中的所有基本类型同样也都是Java虚拟机中的 ...

  8. 转:EasyHook远程代码注入

    EasyHook远程代码注入 最近一段时间由于使用MinHook的API挂钩不稳定,经常因为挂钩地址错误而导致宿主进程崩溃.听同事介绍了一款智能强大的挂钩引擎EasyHook.它比微软的detours ...

  9. 暴力+降复杂度 BestCoder Round #39 1002 Mutiple

    题目传送门 /* 设一个b[]来保存每一个a[]的质因数的id,从后往前每一次更新质因数的id, 若没有,默认加0,nlogn复杂度: 我用暴力竟然水过去了:) */ #include <cst ...

  10. SPOJ839 Optimal Marks(最小割)

    题目大概说给一张图,每个点都有权,边的权等于其两端点权的异或和,现已知几个点的权,为了使所有边的边权和最小,其他点的权值该是多少. 很有意思的一道题,完全看不出和网络流有什么关系. 考虑每个未知的点$ ...