天天看點

Loadrunner 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