Loadrunner message函数详细分析

本文详细介绍了LoadRunner中的多种日志记录函数,包括lr_message、lr_log_message、lr_error_message等,并通过实例展示了这些函数的具体应用及效果。此外,还讲解了如何使用lr_debug_message函数组来控制脚本运行时的调试信息。
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会在controllor的vuser list的status列中显示,controllor每5秒刷新一次。


  6、当然,也支持转义字符的使用,列表如下:

  \a 铃声(警告)


  \b Backspace 键

  \f 换页


  \n 换行


  \r 回车

  \t 水平制表符


  \v 垂直制表符

  \' 单引号标记


  \" 双引号标记


  \\ 反斜杠

  \? 文本问号

  \ooo ASCII 字符 - 八进制


  支持的转换字符有:


  %a ASCII 表示形式


  %BX 大端(网络顺序)十六进制


  %BO 大端(网络顺序)八进制

  %BD 大端(网络顺序)十进制


  %LX 小端十六进制

  %LO 小端八进制


  %LD 小端十进制

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


  此外,loadrunner还提供了在脚本中控制runtime-setting的log设置的函数。

  【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。
 参数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 Log 的Parameter 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 Log 的Parameter substitution设置

  return 0;


  }

  因为设置了runtime-setting不打印任何日志,所以正常运行脚本应该没有任何日志输出;

  但是使用lr_set_debug_message函数打开了日志的设置(输出保存参数操作的日志)

  因此脚本运行到lr_save_string("aa",a)时,就输出了日志如下:

  打开参数保存的系统日志

  Action.c(7): Notify: Saving Parameter "ABC = aa"


  关闭参数保存的系统日志

转自:领测软件测试网[http://www.ltesting.net]
原文链接:http://www.ltesting.net/ceshi/ceshijishu/rjcsgj/mercury/loadrunner/2012/0517/204897_2.html
一、数据采集层:多源人脸数据获取 该层负责从不同设备 / 渠道采集人脸原始数据,为后续模型训练与识别提供基础样本,核心功能包括: 1. 多设备适配采集 实时摄像头采集: 调用计算机内置摄像头(或外接 USB 摄像头),通过OpenCV的VideoCapture接口实时捕获视频流,支持手动触发 “拍照”(按指定快捷键如Space)或自动定时采集(如每 2 秒采集 1 张),采集时自动框选人脸区域(通过Haar级联分类器初步定位),确保样本聚焦人脸。 支持采集参数配置:可设置采集分辨率(如 640×480、1280×720)、图像格式(JPG/PNG)、单用户采集数量(如默认采集 20 张,确保样本多样性),采集过程中实时显示 “已采集数量 / 目标数量”,避免样本不足。 本地图像 / 视频导入: 支持批量导入本地人脸图像文件(支持 JPG、PNG、BMP 格式),自动过滤非图像文件;导入视频文件(MP4、AVI 格式)时,可按 “固定帧间隔”(如每 10 帧提取 1 张图像)或 “手动选择帧” 提取人脸样本,适用于无实时摄像头场景。 数据集对接: 支持接入公开人脸数据集(如 LFW、ORL),通过预设脚本自动读取数据集目录结构(按 “用户 ID - 样本图像” 分类),快速构建训练样本库,无需手动采集,降低系统开发与测试成本。 2. 采集过程辅助功能 人脸有效性校验:采集时通过OpenCV的Haar级联分类器(或MTCNN轻量级模型)实时检测图像中是否包含人脸,若未检测到人脸(如遮挡、侧脸角度过大),则弹窗提示 “未识别到人脸,请调整姿态”,避免无效样本存入。 样本标签管理:采集时需为每个样本绑定 “用户标签”(如姓名、ID 号),支持手动输入标签或从 Excel 名单批量导入标签(按 “标签 - 采集数量” 对应),采集完成后自动按 “标签 - 序号” 命名文件(如 “张三
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值