zoukankan      html  css  js  c++  java
  • loadrunner12.55:常用函数汇总说明之Message Functions消息函数

    根据使用手册内容可见,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的相关内容介绍完毕!其他类型函数请见后续更新内容~

  • 相关阅读:
    一个6亿的表a,一个3亿的表b,通过外间tid关联,你如何最快的查询出满足条件的第50000到第50200中的这200条数据记录
    MySQL复制表的方式以及原理和流程
    Python里面如何拷贝一个对象
    python中*args,**kwargs
    Python删除list里面的重复元素的俩种方法
    Python是如何进行内存管理
    python中lambda函数
    python中filter(),reduce()函数
    python中map()函数用法
    重磅发布:阿里开源 OpenJDK 长期支持版本 Alibaba Dragonwell
  • 原文地址:https://www.cnblogs.com/apple2016/p/14666148.html
Copyright © 2011-2022 走看看