致力于自动化测试技术,性能测试技术的研究,测试技术培训以及项目实施,做一个技术与实施的主导者。

Loadrunner message函数详细分析

上一篇 / 下一篇  2012-03-01 23:08:18 / 个人分类:性能测试技术

Loadrunner提供了若干message函数,以在脚本回放中和脚本运行中,对外输入信息,主要的函数有:「lr_message」51Testing软件测试网K0Zs m5SW+s,WN+x
 51Testing软件测试网F]e?5L!dM#b M
  int lr_message (const char *format, exp1, exp2,……expn.);中文解释:lr_message函数将信息发送到日志文件和输入窗口。在VuGen中运行时,输入文件为 output.txt.「lr_log_message」51Testing软件测试网']$Ph)Z;{Y
 51Testing软件测试网R2o#SKG-{ D
  int lr_log_message (const char *format, exp1, exp2,……expn.);中文解释:lr_log_message函数将消息发送到Vuser或代理日志文件(取决于应用程序),而不是发送到输出窗口。通过向日志文件发送错误消息或其他信息性消息,可以将该函数用于调试。
.wo(d3Ly\0 
J9JegZ1M*?3w\0  「lr_error_message」
V`|%bN e]3UV&F0 
,|2?eE7`+Yc G'db7[0  int lr_error_message (const char *format, exp1, exp2,……expn. );中文解释:lr_error_message函数将错误消息发送到输出窗口和Vuser日志文件。要发送不是特定错误消息的特殊通知,请使用 lr_output_message.「lr_output_message」51Testing软件测试网0z$S+DeWc f
 51Testing软件测试网\R:~8p4F8x*i)Cn.j
  int lr_output_message (const char *format, exp1, exp2,……expn.);中文解释:lr_output_message函数将带有脚本部分的行号的消息发送到输出窗口和日志文件。51Testing软件测试网8}o-l1[1VQ"}{
 51Testing软件测试网A i {nPPa
  「lr_vuser_status_message」
e)QQo!K#SW0 51Testing软件测试网2Yb+Y Dv1Y3ut&}~
  int lr_vuser_status_message (const char *format);中文解释:lr_vuser_status_message函数向控制器或优化模块控制台的vuser窗口的“状态”区域发送字符串。它还将该字符串发送到vuser日志。从VuGen运行时,消息被发送到output.txt.下面大家看例子:Action()51Testing软件测试网7^ \,kZwea+jEQ
 51Testing软件测试网9d8e l/q(G-t K~
   { 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++)51Testing软件测试网 n5OxB%Nf
 51Testing软件测试网.AX s[![m4q&X
  { 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格式是完全相同的。
/t*s1cG}'my0 51Testing软件测试网"l+h"b/y2M K$ex{
  2、格式化输入标志符号"%",想必大家也比较熟悉。其中%d是十进制,%o是八进制,%x是十六进制,%s是字符;还有%g、%u、%c等,自己去查。51Testing软件测试网2`.N6qq"K$x
 51Testing软件测试网id,C%y J,BUD!y
  3、回放这个脚本后,进入脚本根目录查看mdrv.log,所有输出都可以在这里找到。51Testing软件测试网9j$XUJI:?2j*w
 51Testing软件测试网:v ^F lo Js
  4、lr_error_message回放日志中显示的是红色的字体,且显示语句所在行号;同时,如果脚本在controllor中运行时,会生成一个error信息。51Testing软件测试网TT)@1W3Q4V!P2I^'uK
 51Testing软件测试网 vB h n'We5F
  5、lr_vuser_status_message会在controllor的vuser list的status列中显示,controllor每5秒刷新一次。
z/n'UyCQv0 51Testing软件测试网-V_H H0US UX
  6、当然,也支持转义字符的使用,列表如下:\a 铃声(警告)51Testing软件测试网Jf\G5_3V-w
 51Testing软件测试网4JR9m6S.?.b&JoK0x
  \b Backspace 键\f 换页\n 换行\r 回车\t 水平制表符\v 垂直制表符\' 单引号标记\" 双引号标记\\ 反斜杠\? 文本问号\ooo ASCII 字符 - 八进制支持的转换字符有:%a ASCII 表示形式%BX 大端(网络顺序)十六进制%BO 大端(网络顺序)八进制%BD 大端(网络顺序)十进制%LX 小端十六进制%LO 小端八进制%LD 小端十进制loadrunner还提供了在脚本中控制runtime-setting的log设置的函数。
7V"r,[%m6@^0 
)R"y_4kM#M0  「lr_debug_message函数组」51Testing软件测试网!]/\/a5G B4uc
 51Testing软件测试网'MFD'W&T'_Z8m
  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函数指定的。
,NqHnt$Dn0
5f"Y1Zq.[ UF5A0int 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操作」51Testing软件测试网7xp&lkI4t
 51Testing软件测试网s\zz:SD I]
  「Disabled」====「LR_MSG_CLASS_DISABLE_LOG」====「0」====「不勾选Enable logging」
CJ9q2VKXR0 
5fH @AEXr0  「Brief」====「LR_MSG_CLASS_BRIEF_LOG」====「1」====「勾选Standard log」51Testing软件测试网rV ~AD(D
 51Testing软件测试网#k,T,_9{)k:G
  「Extended Log」====「LR_MSG_CLASS_EXTENDED_LOG」====「16」====「勾选Extended log」
R7pB1@\-V0s?9n0 
r u#g:` f,g@:U0  「Result Data」====「LR_MSG_CLASS_RESULT_DATA」====「2」====「勾选Data returned by server
~ kG*I{z0 
g.`x_{0  「Parameter Substitution」====「LR_MSG_CLASS_PARAMETERS」====「4」====「勾选Parameter substitution」
%q-e"}h9W/i&\)h E0 
1P*o p m7ajo+A-m1@0  「Full Run-Time Trace」====「LR_MSG_CLASS_FULL_TRACE」====「8」====「 勾选 Advanced trace」
BRAu e9i/E2cw0 
5ml%[2sA6ix| p0  「Only on error」====「LR_MSG_CLASS_JIT_LOG_ON_ERROR」====「512」====「勾选send messages only when an error occurs」51Testing软件测试网n aw;M,YC
 51Testing软件测试网"V:f+C{/DC
  参数on_off说明:「LR_SWITCH_ON」启用设置「LR_SWITCH_OFF」禁用设置看下面的小例子:Action()51Testing软件测试网?Yn1t fNt7Q~Pv
 51Testing软件测试网3`0Y'n:[A
  { 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数其实是所有勾选操作的代表值相加!
4L9Q5x_,n b:j U5CYg0 51Testing软件测试网^qg5K2s9g
  再看下面设置的例子:Action()
;E7u0a3d.E `0C%z0 
h4CwYl:R0  { //设置runtime-setting的日志选项「不勾选Enable logging」
uE[,O4Pf kg0 
cfPjS!Wp ^0{ //设置runtime-setting的日志选项「不勾选Enable logging」
E3dF5f |Zj3H0 
cx5u;a&j5FDk@?0char *a;a = "ABC";51Testing软件测试网.Q j9V(J ACC] M

lr_set_debug_message (LR_MSG_CLASS_EXTENDED_LOG |LR_MSG_CLASS_PARAMETERS,LR_SWITCH_ON);//打开Runtime-setting Log 的Parameter substitution设置

.o+]s#oZ X051Testing软件测试网;m|@[ pbap$U

lr_debug_message(LR_MSG_CLASS_PARAMETERS,"打开参数保存的系统日志");51Testing软件测试网Q \:w$j3w%O$e-Z

51Testing软件测试网%`VvU:~0Y!R

lr_save_string("aa",a);lr_debug_message(LR_MSG_CLASS_PARAMETERS,"关闭参数保存的系统日志");

Q4gRm:yiTc2?051Testing软件测试网d]%c9`Dg1cC

lr_set_debug_message (LR_MSG_CLASS_EXTENDED_LOG |LR_MSG_CLASS_PARAMETERS,LR_SWITCH_OFF);//关闭Runtime-setting Log 的Parameter substitution设置

BDP O3Cq0

wo` Ta{-VHm!}0return 0;}51Testing软件测试网z8NXT;|tw g*Z

因为设置了runtime-setting不打印任何日志,所以正常运行脚本应该没有任何日志输出;但是使用 lr_set_debug_message函数打开了日志的设置(输出保存参数操作的日志)
1} UB KA.Df0 
c0N#J7S{ _ rh1v0  因此脚本运行到lr_save_string("aa",a)时,就输出了日志如下:打开参数保存的系统日志Action.c(7): Notify: Saving Parameter "ABC = aa"关闭参数保存的系统日志51Testing软件测试网$~p y A u9E[


`;U^"MhU6wM!tF%^F051Testing软件测试网*AP6H7pGX B2A I

51Testing软件测试网U#?"T,SG S.X

TAG:

 

评分:0

我来说两句

vprince

vprince

6年软件测试经验,TIB自动化测试工作室核心成员,ATF框架核心设计和开发人员,熟悉软件自动化测试、性能测试,多年从事软件项目的自动化测试和性能测试,对自动化测试的框架设计开发、框架搭建以及实施有较为丰富的实战经验。 目前关注开源自动化测试领域、 基于Selenium构建Web自动化测试框架,为多家企业进行自动化测试培训、实施自动化测试项目。

日历

« 2024-04-17  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 67332
  • 日志数: 49
  • 建立时间: 2009-09-09
  • 更新时间: 2012-12-14

RSS订阅

Open Toolbar