Service-Level Agreement (服務水平協議)
SLA是為負載測試場景定義的具體目標。例如,評測腳本中任意數量事務的平均響應時間,可以定義具體的目標或閾值。測試運行結束之后,LoadRunner將你定義的目標與實際錄制的平均事務響應時間進行比較,如果實際的平均事務響應時間未超過你定義的閾值,SLA狀態將為通過,否則不通過。
作為目標定義的一部分,你可以指示SLA將負載條件考慮在內。這意味着可接受的閾值將根據負載級別而有所更改(例如,運行的Vuser數、吞吐量等)。隨着負載的增加,你可以允許更大的閾值。
SLA與面向目標場景的主要區別是前者有一定的調整幅度,而面向目標場景是很具體的目標設定。
LR常見函數
1.事務函數
Lr_start_transaction(); //標記事務的開始
Lr_end_transaction(); //標記事務的結束,一般情況下,事務開始與結束聯合使用
Lr_get_trans_instance_status(); //得到事務的狀態,當事務由許多步驟組成,或者可能存在導致事務失敗的執行點,這個函數非常有用,可以通過檢查狀態和終止Vuser,可以避免不必要的活動。
Lr_get_transaction_think_time(); //得到事務的指定思考時間。
Lr_stop_transaction(); //停止事務,該函數返回當前事務的持續時間,以毫秒為單位,當為錯誤時返回一個負數。
2.日志函數:
Lr_debug_message(); //發送調試信息到日志文件,這個函數將返回設定的字符,不包括終止null字符。錯誤時返回一個負值。
Lr_get_debug_message(); //返回當前調試的信息,其返回值根據不同設置返回不同的值。
Lr_error_message(); //發送錯誤信息到LR輸入窗口或日志文件里,如果這個函數成功,返回發送的消息的長度。如果函數失敗,它將返回一個負數。
Lr_log_message(); //發送信息到用戶日志文件,如果這個函數成功,返回發送的消息的長度。如果函數失敗,它將返回一個負數。
Lr_output_message(); //發送信息到輸出窗口或日志文件
Lr_vuser_status_message(); //發送虛擬用戶的狀態到LR的Controller,如果它成功,這個函數返回0,如果事務的名字是非法的或如果和Lr_start_transaction事務開始名稱不同時,返回1.
3.運行時函數:
Lr_abort(); //終止執行的腳本,它能停止執行action部分,Vuser end部分,以及結束腳本執行。當你需要手動終止運行的一個特定的錯誤條件可以使用這個函數。當你結束運行使用此函數時,狀態是“停止”。
Lr_continue_on_error(); //當發生錯誤后運行的事件,參數為1表示發生錯誤繼續運行腳本,參數為0表示取消出錯繼續運行腳本。
Lr_exit();//該函數允許你運行中退出腳本。在聲明該函數的事務退出后不會出現在Controller的事務狀態集合中,也不會被計入到通過和失敗的事務數。
Lr_think_time();//設置思考時間,在性能測試中為了更好模擬以后操作,可以根據實際生產環境設置思考時間。
Lr_rendezous();//集合點,可以設置虛擬用戶相同操作之間進行集合,通過集合點可以增加被測試應用的壓力,從而達到壓力測試的目的。
Lr_load_dll();//調用DLL文件,這個函數執行成功,將返回0, 如果導致內存溢出條件 返回10,如果文件不存在,返回11.