圖1-30 miscellaneous標籤項
顯然,無論是否勾選continue on error項,對於一些在controller中執行的指令碼都可能存在問題:勾選後,將會忽略所有函式的執行錯誤,即使一些關鍵業務函式執行發生錯誤也會忽略掉,而遇到這種情況時繼續執行場景顯然已經沒有意義;如果不勾選,一些無關緊要的函式執行時如果發生錯誤將導致當前vuser停止執行,而當較多vuser因為小錯誤而停止執行後同樣會導致整個場景的執行結果失去意義,顯然這種情況也不應該發生。
vugen提供了錯誤處理函式lr_continue_on_error,用來在指令碼中實時修改vuser的出錯設定。lr_continue_on_error函式語法結構如下:
voidlr_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_action
2發生錯誤跳至下個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()
lr_continue_on_error (0); //下面是一些重要事務**,因此關閉出錯繼續執行設定
return 0;
反之,如果在run-time settings中沒有勾選continue on error項,則應該通過組合使用lr_continue_on_error (1)與lr_continue_on_error (0)來使一些非關鍵業務發生錯誤後繼續執行。
圖1-30 miscellaneous標籤項
顯然,無論是否勾選continue on error項,對於一些在controller中執行的指令碼都可能存在問題:勾選後,將會忽略所有函式的執行錯誤,即使一些關鍵業務函式執行發生錯誤也會忽略掉,而遇到這種情況時繼續執行場景顯然已經沒有意義;如果不勾選,一些無關緊要的函式執行時如果發生錯誤將導致當前vuser停止執行,而當較多vuser因為小錯誤而停止執行後同樣會導致整個場景的執行結果失去意義,顯然這種情況也不應該發生。
vugen提供了錯誤處理函式lr_continue_on_error,用來在指令碼中實時修改vuser的出錯設定。lr_continue_on_error函式語法結構如下:
voidlr_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_action
2發生錯誤跳至下個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()
lr_continue_on_error (0); //下面是一些重要事務**,因此關閉出錯繼續執行設定
return 0;
反之,如果在run-time settings中沒有勾選continue on error項,則應該通過組合使用lr_continue_on_error (1)與lr_continue_on_error (0)來使一些非關鍵業務發生錯誤後繼續執行。
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...
PHP 錯誤處理
在 php 中,預設的錯誤處理很簡單。一條訊息會被傳送到瀏覽器,這條訊息帶有檔名 行號以及一條描述錯誤的訊息。在建立指令碼和 web 應用程式時,錯誤處理是乙個重要的部分。如果您的 缺少錯誤檢測編碼,那麼程式看上去很不專業,也為安全風險敞開了大門。本教程介紹了 php 中一些最為重要的錯誤檢測方法。...