LR錯誤處理函式的用法

2021-08-23 15:54:13 字數 1460 閱讀 2668

**【

】在指令碼的run-time settings中,可以設定在指令碼執行過程中發生錯誤的處理方式。進入到run-time settings中,切換到miscellaneous標籤頁,可以看到error handing的第乙個設定項:continue on error,。勾選continue on error選項後,如果執行過程中發生錯誤,也會繼續執行指令碼。

顯然,無論是否勾選continue on error項,對於一些在controller中執行的指令碼都可能存在問題:勾選後,將會忽略所有函式的執行錯誤,即使一些關鍵業務函式執行發生錯誤也會忽略掉,而遇到這種情況時繼續執行場景顯然已經沒有意義;如果不勾選,一些無關緊要的函式執行時如果發生錯誤將導致當前vuser停止執行,而當較多vuser因為小錯誤而停止執行後同樣會導致整個場景的執行結果失去意義,顯然這種情況也不應該發生。

vugen提供了錯誤處理函式lr_continue_on_error,用來在指令碼中實時修改vuser的出錯設定。lr_continue_on_error函式語法結構如下:void lr_continue_on_error ( int value );

其中value是是指令碼執行出錯設定的取值,具體取值及相應值的含義如表1-7所示。在使用表1-7中的引數時,既可以使用常量名稱作為引數,也可直接使用對應常量值作為引數。

表1-7:

常量名稱 常量值 含義

lr_on_error_no_options 0取消出錯繼續執行設定

lr_on_error_continue 1發生錯誤繼續執行指令碼

lr_on_error_skip_to_next_action2發生錯誤跳至下個action執行

lr_on_error_skip_to_next_iteration 3發生錯誤跳至下一迭代來執行

lr_on_error_end_vuser 4發生錯誤結束當前使用者

lr_continue_on_error呼叫後將對其後面所有的語句產生影響。因此,指令碼中較常用的是lr_continue_on_error (0)與lr_continue_on_error (1)。這兩個語句成對出現,期間包含著需要設定為發生錯誤停止執行的關鍵業務指令碼,如例1-71所示。

可以看出,例1-71比較適合壓力較大且在夜間自動執行的測試場景,而這類場景通常會在run-time settings中開啟continue on error選項,因此需要通過lr_continue_on_error (0) 關閉continue on error選項,使一些關鍵業務發生錯誤停止執行。對於一些非關鍵業務,則需要通過lr_continue_on_error (1)開啟continue on error選項,這樣即使遇到錯誤也不會影響指令碼的繼續執行。

例1-71

action()

反之,如果在run-time settings中沒有勾選continue on error項,則應該通過組合使用lr_continue_on_error (1)與lr_continue_on_error (0)來使一些非關鍵業務發生錯誤後繼續執行。

LR之錯誤處理

1.指令碼的健壯性 乙個健壯的指令碼應該能捕獲一些錯誤資訊,並對這些資訊進行相關的處理,否者一旦發生較大錯誤就只能退出執行了 2.vugen的處理機制 分為兩種 遇到錯誤,停止執行,退出執行 另一種是忽略錯誤,繼續執行下去 相關設定可以在run time settings 裡進行 3.lr cont...

MySql錯誤處理 錯誤處理的例子

有幾種錯誤處理的宣告形式 如果任何錯誤 不是 not found 設定 l error 為 1 後繼續執行 declare continue handler for sqlexception set l error 1 如果發生任何錯誤 不是 not found 執行 rollback和產生一條錯誤...

MySql錯誤處理(三) 錯誤處理的例子

mysql錯誤處理 三 錯誤處理的例子 有幾種錯誤處理的宣告形式 如果任何錯誤 不是 not found 設定 l error 為 1 後繼續執行 declare continue handler for sqlexception set l error 1 如果發生任何錯誤 不是 not foun...