zl程序教程

您现在的位置是:首页 >  云平台

当前栏目

loadrunner12.55:常用函数汇总说明之Message Functions消息函数

消息 函数 常用 说明 汇总 message Functions
2023-09-14 09:01:11 时间

根据使用手册内容可见,LR支持的关于Message Functions包括:

 

 接下来对常用的函数进行详细说明:

  1. lr_message:发送所有消息到log日志文件及输出窗口,这里的log文件指output.txt文件;
  2. lr_debug_message:发送调试消息到日志文件或者输出窗口;
  3. lr_error_message:发送错误消息到日志文件或者输出窗口;
  4. lr_output_message:将带有所属脚本及所在行号的消息发送到输出窗口和日志文件中;
  5. lr_set_debug_message( unsigned int message_level_flag, unsigned int on_off ):设置输出消息级别,包括:   

 /*如下均为针对run-time settings的log设置:

 on_off 参数取值:
    开启日志:LR_SWITCH_ON
    关闭日志:LR_SWITCH_OFF

 message_level_flag参数取值:
    LR_MSG_CLASS_DISABLE_LOG:对应不勾选Enable logging
    LR_MSG_CLASS_JIT_LOG_ON_ERROR:对应勾选send messages only when an error occurs
    LR_MSG_CLASS_BRIEF_LOG:对应勾选Standard log
    LR_MSG_CLASS_EXTENDED_LOG 对应勾选Extended log扩展日志功能
    显示扩展日志子项如下:
    ? ?LR_MSG_CLASS_PARAMETERS对应勾选Parameter substitution(参数取值)
    ? ?LR_MSG_CLASS_RESULT_DATA对应勾选Data returned by server(服务器返回)
    ? ?LR_MSG_CLASS_FULL_TRACE对应勾选Advanced trace(高级跟踪)
    */

  1. lr_get_debug_message:输出当前消息日志的设置信息;
  2. lr_log_message:发送消息到虚拟用户log日志文件,当runtime-setting中的Enable logging取消勾选时,该函数功能也被禁用,导致其打印消息无法输出到日志文件和输出窗口中;
  3. lr_set_custom_error_message:设置要在内置错误消息之后输出的自定义消息,要置于lr_error_message之前使用,每当lr_error_message执行后就会执行该函数,否则无法输出自定义消息;若要取消显示自定义错误消息,使用lr_remove_custom_error_message函数取消即可;
  4. lr_remove_custom_error_message:取消使用lr_set_custom_error_message设置的自定义错误消息;
  5. lr_vuser_status_message:向控制器Controller的vuser窗口的“状态”列(Controller->run界面->单击Vusers按钮)发送消息,从VuGen运行时,消息只显示在输出窗口不会被发送到log日志文件output.txt。从Controller运行时,消息只显示在控制器Controller的vuser窗口的“status”列而不会被发送到虚拟用户的log文件中。

场景示例:

示例1:取消勾选runtime-setting中的Enable logging,即不打印执行日志

 

脚本1:

static int iteration;
MessageFunc()
{
	//设置runtime-setting的日志选项
	char *a;
	int msg_level ;
	a = "ABC";
	/*lr_set_debug_message( unsigned int message_level_flag, unsigned int on_off )
	如下均为针对run-time settings的log设置:
	
	on_off 参数取值:
	开启日志:LR_SWITCH_ON
	关闭日志:LR_SWITCH_OFF
	
	message_level_flag参数取值:
	LR_MSG_CLASS_DISABLE_LOG:对应不勾选Enable logging
	LR_MSG_CLASS_JIT_LOG_ON_ERROR:对应勾选send messages only when an error occurs
	LR_MSG_CLASS_BRIEF_LOG:对应勾选Standard log
	LR_MSG_CLASS_EXTENDED_LOG 对应勾选Extended log扩展日志功能
	显示扩展日志子项如下:
	? ?LR_MSG_CLASS_PARAMETERS对应勾选Parameter substitution(参数取值)
	? ?LR_MSG_CLASS_RESULT_DATA对应勾选Data returned by server(服务器返回)
	? ?LR_MSG_CLASS_FULL_TRACE对应勾选Advanced trace(高级跟踪)
	*/
	
	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设置
	
	
	lr_message ("lr_message=%s",lr_eval_string("{myParam}"));	
	lr_error_message("lr_error_message=%s",lr_eval_string("{myParam}"));
	
	lr_output_message("lr_output_message=%s",lr_eval_string("{myParam}"));//将带有所属脚本及所在行号的消息发送到输出窗口和日志文件中;
	lr_log_message("lr_log_message=%s",lr_eval_string("{myParam}"));//取消勾选Enable logging时禁用该函数,无消息打印及输出
	
	lr_vuser_status_message("Para is:%s,%dTimes Iteration",lr_eval_string("{myParam}"),++iteration);
	
	msg_level =lr_get_debug_message();
	/* Check if message level is "Extended log" and "Parameter Substitution" */
	if ((msg_level & LR_MSG_CLASS_EXTENDED_LOG) && (msg_level & LR_MSG_CLASS_PARAMETERS))
	    lr_output_message("Current message level is extended log and parameters.");
	
	/* Check for standard log */
	if (msg_level & LR_MSG_CLASS_BRIEF_LOG)
	    lr_output_message("Logging is enabled.");	
	
	return 0;
}

  

从Vugen执行结果:

因Enable logging取消勾选,导致输出窗口和日志文件中未打印lr_log_message函数的相关内容;此时,因日志级别与判断条件不一致导致lr_get_debug_message相关打印消息未打印,其他所有函数消息打印成功;

另外,可见lr_vuser_status_message消息只显示在了输出窗口中,日志文件中无输出;

 log日志文件output.txt内容:

 

 从Controller执行:

 lr_vuser_status_message消息被发送到vuser窗口的“status”列中,Controller->run界面->单击Vusers按钮即可查看,如下图所示。

其他函数消息在虚拟用户中的输出情况同Vugen运行情况;

脚本2:

MessageFunc_custom()
{
	
	lr_error_message("lr_error_message=%s",lr_eval_string("{myParam}"));	
	
	lr_set_custom_error_message("Details: [%s]",lr_eval_string("{myParam}"));//设置要在内置错误消息之后输出的自定义消息,要置于lr_error_message之前使用,每当lr_error_message执行后就会执行该函数,否则无法输出自定义消息;
	lr_error_message("lr_error_message=%s",lr_eval_string("{myParam}"));
	lr_error_message("lr_error_message=%s",lr_eval_string("{myParam}"));
	
	lr_remove_custom_error_message();//取消使用lr_set_custom_error_message设置的自定义错误消息;			
	lr_error_message("error message without customization");

	return 0;
}

 

Vugen执行结果:

 

 示例2:勾选runtime-setting中的Enable logging,并勾选标准日志

 

脚本3:

MessageFunc_debug()
{
	int msg_level ;
	
	lr_log_message("lr_log_message=%s",lr_eval_string("{myParam}"));//取消勾选Enable logging时禁用该函数,无消息打印及输出
	
	msg_level =lr_get_debug_message();
	/* Check if message level is "Extended log" and "Parameter Substitution" */
	if ((msg_level & LR_MSG_CLASS_EXTENDED_LOG) && (msg_level & LR_MSG_CLASS_PARAMETERS))
	    lr_output_message("Current message level is extended log and parameters.");
	
	/* Check for standard log */
	if (msg_level & LR_MSG_CLASS_BRIEF_LOG)
	    lr_output_message("Current message level is Standard log.");	
	
	
	
	return 0;
}

 Vugen执行结果:

 

 

 此时日志文件Output.txt内容同上;

示例3:勾选runtime-setting中的Enable logging,并勾选扩展日志及Parameter substitution;

 

 

 Vugen执行脚本3的结果:

 

 

  此时日志文件Output.txt内容同上;

 

 至此,关于Message Funcions的相关内容介绍完毕!其他类型函数请见后续更新内容~