一、Run-Time Setting日志参数的设置
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”。
但是,如果日志记录模式被禁用或者设置为“扩展”,则将脚本添加到场景、会话步骤或配置文件中将不会影响其日志记录设置。
//记录所有的请求反馈的日志,包括successful和fail的日志
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函数将带有脚本部分的行号的消息发送到输出窗口和日志文件。
总结了一下loadrunner中的log的使用,留个印:)
1、log的设置方式。
在 runtime setting中可以设置log的生成方式:
默认的log方式:
Enable logging选中,log option是Send messages only when an error occurs.
可以修改日志的方式:
Always send messages(这种方式会一直打印输出日志,不仅在错误时)
standard log——记录所有的请求反馈的日志,包括successful和fail的日志。
Extended log——可提供扩展的日志信息,包括
Parameter subsititution——日志中打印所有中使用的参数值。
Data returned by server——日志中打印每个客户端请求服务器返回的数据值
Advanced trace——日志中打印所有的消息信息和函数执行信息
2、log的存储方式
log的存储路径在res文件夹下。
如果是从脚本中直接关联createscenario则在脚本的目录下的res下。如果是直接createscenario然后再选择脚本的话,则存储在c盘,如“C:\Documents and Settings\USERNAME\LocalSettings\Temp\res\log”
具体该场景的日志结果存哪,可以查看controll的result界面的resultsetting定义的目录。
根据不同的log记录级别,在log文件中记录日志。
3、log信息的分析
1)从log中得到虚拟用户失败的原因。
通常如果场景在运行时出现用户失败,则先要查看错误原因,可直接查看日志,从日志中查看ERROR的信息;
从outputdb中可以查看到错误代码ERROR CODE
2)从日志中确认每次分配给虚拟用户的参数值
想判断是否在场景中每个用户使用不同的或预定义规则的参数,可以通过在log生成规则处设定为parametersubsititution,然后查看每个日志文件中的对应行参数值是否为预计的参数值。可从此判断出是否同用户的实际使用类似,是否达到对服务器的压力策略。
3)从日志中确认服务器端返回的值是什么。
在脚本中通常设定了检查点,检查点策略是否生效,如果对此产生怀疑则可以考虑从日志中查看一下。查看服务器返回的值来验证是不是所期待得到的值。
思考问题
log的输出 会不会影响到客户端,会不会使客户端成为瓶颈?(认为是会的,任何程序都是要消耗资源的,loadrunner也一样,所以选取日志输出的模式是要谨慎考虑尽量以适用为前提)