LoadRunner message函数

本文详细介绍了LoadRunner中各种日志输出函数的功能与用法,包括lr_message、lr_log_message、lr_error_message等,并提供了具体的应用实例。此外,还探讨了如何利用lr_debug_message函数组来控制日志级别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 转帖~~~

 

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

d q2b�Rero21614251Testing软件测试网2E,/ j"F)Q*?!C9q.mq

【lr_log_message】
&@ P)E9g$B9nd216142 int lr_log_message (const char *format, exp1, exp2,...expn.);
-O0~H5r5sYt ybJ/n216142 中文解释:lr_log_message函数将消息发送到Vuser或代理日志文件(取决于应用程序),而不是发送到输出窗口。通过向日志文件
:x'dsdM,M Xp$D216142    发送错误消息或其他信息性消息,可以将该函数用于调试。51Testing软件测试网#J(m Rv&w+w

51Testing软件测试网UY _1ou;W8]"lQ5W+T

【lr_error_message】51Testing软件测试网"U3uX#cj[J#/1Q~
 int lr_error_message (const char *format, exp1, exp2,...expn. );
Twg)k Bq_216142 中文解释:lr_error_message函数将错误消息发送到输出窗口和Vuser日志文件。要发送不是特定错误消息的特殊通知,请使用lr_output_message。

l�G*v%qs Qy[21614251Testing软件测试网"w+wr*YM;/Z0_

【lr_output_message】51Testing软件测试网&T!~v^G,i*}!h
 int lr_output_message (const char *format, exp1, exp2,...expn.);
n.WQ k+n216142 中文解释:lr_output_message函数将带有脚本部分的行号的消息发送到输出窗口和日志文件。

dG)FJW |1[/Q216142

E_+| x2]m-YD7c+/5{3W216142【lr_vuser_status_message】
/Ji1A~ L9V~:P216142 int lr_vuser_status_message (const char *format);
z2@+[2@^#D216142 中文解释:lr_vuser_status_message函数向控制器或优化模块控制台的vuser窗口的“状态”区域发送字符串。它还将该字符串发送51Testing软件测试网p%?nZ)k1FgP&Q/y:g
    到vuser日志。从VuGen运行时,消息被发送到output.txt。

_*}jc:P,`x We216142

6Ay*GU q,p216142下面大家看例子:51Testing软件测试网(H:I)Ayc
Action()51Testing软件测试网UEr+h$Gw3C
{
rz'r H2k#|J5[-iJ216142 int i,j,k;51Testing软件测试网L:K5j;?S/V5V
 char *message;
k,[ PDbYn X&s.B216142 j = k = 1000;

z NAS5E&V#@%M rBE:y216142

E f.^C x%]N[ A i%U216142 message = "信息";
*H0capN(~2o jkU216142 lr_message("****************输出区域开始*****************");
w9ce*e1_8Q-o6t /216142 lr_message("   lr_message   %s:十进制=%d,八进制=%o,十六进制=0x%x",message,j,j,j);
0va#n | M/.tRw5K216142 lr_log_message("   lr_log_message   %s:十进制=%d,八进制=%o,十六进制=0x%x",message,j,j,j);
k?�`N4{1X k L216142 lr_error_message("   lr_error_message   %s:十进制=%d,八进制=%o,十六进制=0x%x",message,j,j,j);51Testing软件测试网!{8jG*PZ
 lr_output_message("  lr_output_message   %s:十进制=%d,八进制=%o,十六进制=0x%x",message,j,j,j);51Testing软件测试网`Y2[/Bl6R Q
 lr_message("****************输出区域结束*****************");51Testing软件测试网C nI C"I t t^:G8_b b
 for (i=1;i<6;i++)
jv3A%rZ8|8o F#HE#G216142 {
-p3PR M7{216142  k += 1000;51Testing软件测试网:q.v�B8S4G Dp
  lr_think_time (5);51Testing软件测试网hf5q3eM K
  lr_vuser_status_message("第%d次:%s,十进制=%d,八进制=%o,十六进制=0x%x",i,message,k,k,k);
hk'K.m}6q L216142 }
,j([Os7U Z.c o m216142 return 0;
nsQv'Z216142}51Testing软件测试网:e)c%V t$Q(X,Z%L
例子说明:51Testing软件测试网 J _!|}"B0h v'hQ
1、message系列的函数参数格式和c语言中的printf格式是完全相同的。51Testing软件测试网4Y(|{ t.j#D_7r
2、格式化输入标志符号"%",想必大家也比较熟悉。其中%d是十进制,%o是八进制,%x是十六进制,%s是字符;还有%g、%u、%c等,自己去查。51Testing软件测试网�e-f6?2@t"yq"L
3、回放这个脚本后,进入脚本根目录查看mdrv.log,所有输出都可以在这里找到。
D0m j$UIcaY%I2161424、lr_error_message回放日志中显示的是红色的字体,且显示语句所在行号;同时,如果脚本在controllor中运行时,会生成一个error信息。
1vq F2d�zs/sk#]2161425、lr_vuser_status_message会在controllor的vuser list的status列中显示,controllor每5秒刷新一次。51Testing软件测试网,Lb,m"L.d
6、当然,也支持转义字符的使用,列表如下:51Testing软件测试网P2A1d hn t2_
/a 铃声(警告)51Testing软件测试网,I)]&OyD[+n}
/b Backspace 键
FsG/Sw&V7a216142/f 换页51Testing软件测试网;K%mCH z|
/n 换行
(g9E/m:OS nE8r216142/r 回车
$?jQK(^_&z[216142/t 水平制表符51Testing软件测试网ZupMur.g H
/v 垂直制表符
D%h�{k'G6k'a*o216142/' 单引号标记
*_@;Tx(hRo0R#j216142/" 双引号标记51Testing软件测试网!M.yf R3hXA
// 反斜杠
#R/H8H'HLn216142/? 文本问号
fh$F)D ^ Z'F,e216142/ooo ASCII 字符 - 八进制
4pa�Aq^ V216142支持的转换字符有:
g B5U n5h)t216142%a ASCII 表示形式51Testing软件测试网`&D(g;u?
%BX 大端(网络顺序)十六进制51Testing软件测试网#`)j4n_u{#e3y
%BO 大端(网络顺序)八进制51Testing软件测试网-h(H!T�p/t+M
%BD 大端(网络顺序)十进制51Testing软件测试网g,D'Aw Oj+De vm.B
%LX 小端十六进制51Testing软件测试网Z&[3j bGgP
%LO 小端八进制
xt XX[Eb2VF216142%LD 小端十进制

UG|-Yb_/T+[#e216142

/t+ZC}`T Q?/gn216142==============================================================51Testing软件测试网d:t9bJ6jFX

6?E:Bh onD�V216142此外,loadrunner还提供了在脚本中控制runtime-setting的log设置的函数。51Testing软件测试网 D;g8K�@dI w
【lr_debug_message函数组】51Testing软件测试网3kwPS a�@
int lr_debug_message (unsigned int message_level, const char *format, ... );
H-it],iW~ {216142 中文解释:lr_debug_message函数在指定的消息级别处于活动状态时发送一条调试信息。如果指定的消息级别未出于活动状态,则不51Testing软件测试网S1| syf#s
    发送消息。您可以从用户界面或者使用lr_set_debug_message, 将处于活动状态的消息级别设置为MSG_CLASS_BRIEF_LOG51Testing软件测试网3i6Z9Z^ WFpP
    或MSG_CLASSS_EXTENDED_LOG。要确定当前级别,请使用lr_get_debug_message。51Testing软件测试网$~%B`,g@OY+^

51Testing软件测试网/Xx AT%h0b�? J}@o

unsigned int lr_get_debug_message ( );51Testing软件测试网4GU+A.A F!aF
 中文解释:lr_get_debug_message函数返回当前的日志运行时设置。该设置确定发送到输出端的信息。日志设置是使用运行时设置对51Testing软件测试网 j;sNkC6G;E0x"r G
    话框或通过使用lr_set_debug_message函数指定的。51Testing软件测试网y9J8p5[P!kv

51Testing软件测试网X.A!`#|#T%q$o

int lr_set_debug_message (unsigned int message_level, unsigned int on_off);51Testing软件测试网,g;K+bK1OL J'x&u
 中文解释:lr_set_debug_message函数设置脚本执行的调试消息级别message_lvl。通过设置消息级别,可以确定发送哪些信息。 启
o0[Ky"Z*w216142    动设置的方法是将LR_SWITCH_ON作为on_off传递,禁用设置的方法是传递LR_SWITCH_OFF。

*r+x:m9sS7Nz#D216142

$I:m?/t/&_*H ^0R'B216142参数message_level说明: 

"R*d!mR VW#m:JPo216142

/ts~7T'F Pfs216142

 日志级别

)T8j9?$N!rV M%h t)TVq216142

 C语言标志51Testing软件测试网C [2g5ee? eXw

 值

-Z$OX,a` H216142

 Runtime-setting - Log操作51Testing软件测试网4eXX} E^{)@

 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
51Testing软件测试网 W*w|v w,V!o

)Y*E!z Mq*F)l216142参数on_off说明:
"z.WcaW216142【LR_SWITCH_ON】启用设置
fEy&B-K*_ Ep:A.p216142【LR_SWITCH_OFF】禁用设置51Testing软件测试网}/z"Rk P-h/ |2kN!YK

8[s']|/ ni216142
6~&t GF:sP'V,J216142看下面的小例子:51Testing软件测试网 {F$Utv9i+`6o
Action()
M9AgW'M Lz z216142{
ZEr? q216142 int log_leavl;
.e?!WY+iv2F)U(U[216142 log_leavl = lr_get_debug_message();51Testing软件测试网@!vz [)t
 lr_error_message ("当前是:%d",log_leavl);51Testing软件测试网2J'L-SBX3wX
 return 0;51Testing软件测试网9y~[7i0O8T1o3Q
}51Testing软件测试网,y(ASd7YuL^
当我设置只有错误信息(error)打印【勾选send messages only when an error occurs】,例子运行结果是:当前是:513;
QG6OXXq w `216142为什么不是512呢,我发现我实际选择的是【Enable logging + send messages only when an error occurs】,按上面的
7wfW5VDRq/yd216142参数说明,就是【1+512】,也就是513了;因此:
OuQ,gL#y)mY216142lr_get_debug_message返回的int数其实是所有勾选操作的代表值相加!51Testing软件测试网4f?-KJ0~/ Z]

g [ qbV.Hz |21614251Testing软件测试网8Z4k3w,p*G6}~zO)Pl
再看下面设置的例子:51Testing软件测试网_1Ca'T#R6C8X

51Testing软件测试网-p9Q!SF/U2ck

Action()
t(P iM(N216142{
/w//!UH&B`o216142//设置runtime-setting的日志选项【不勾选Enable logging】51Testing软件测试网't(Nyt"Y~3Rio
 char *a;
mu-t1N"|m216142 a = "ABC";51Testing软件测试网+T [C7K8u%T5x%f JoC
 lr_set_debug_message (LR_MSG_CLASS_EXTENDED_LOG |LR_MSG_CLASS_PARAMETERS,LR_SWITCH_ON);
SM.`~ hb+M*o216142 //打开Runtime-setting Log 的Parameter substitution设置
&bDSfL!{1]@(v`216142 lr_debug_message(LR_MSG_CLASS_PARAMETERS,"打开参数保存的系统日志");51Testing软件测试网4Z Vy%/Rg GU6^
 lr_save_string("aa",a);51Testing软件测试网+eKA%c%Id
 lr_debug_message(LR_MSG_CLASS_PARAMETERS,"关闭参数保存的系统日志");
TF}l!?+K4VZC216142 lr_set_debug_message (LR_MSG_CLASS_EXTENDED_LOG |LR_MSG_CLASS_PARAMETERS,LR_SWITCH_OFF);
@8a/B"i(_PV%O216142 //关闭Runtime-setting Log 的Parameter substitution设置

f:G!H6PS216142

o f_*m*a_216142 return 0;51Testing软件测试网+v)d-B {U){�Fp
}51Testing软件测试网;@ I?N9O
因为设置了runtime-setting不打印任何日志,所以正常运行脚本应该没有任何日志输出;51Testing软件测试网/g~D N#U4U$I J
但是使用lr_set_debug_message函数打开了日志的设置(输出保存参数操作的日志)51Testing软件测试网 gL9hr^ QtA
因此脚本运行到lr_save_string("aa",a)时,就输出了日志如下:

T/6Q9a�{'S21614251Testing软件测试网-X'uR IM

打开参数保存的系统日志
'i-m V*XNo5DV,T216142Action.c(7): Notify: Saving Parameter "ABC = aa"51Testing软件测试网'{(|rEOPt.o
关闭参数保存的系统日志

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值