lr.start_transaction("GetStocks");
try {
String stocks[];
stocks = orStockServer1.getStockList();
if (stocks.length == 0)
throw new Exception("No stocks returned/available");
lr.end_transaction("GetStocks", lr.PASS);
}
catch (Exception e1) {
lr.end_transaction("GetStocks", lr.FAIL);
lr.message(" An exception occurred : " + e1.toString() );
}
MILY: 宋體">代碼說明:這時一個得到stock list的例子,程序中設置了異常檢查來確保getStockList()方法返回非零的長度。
同時我也進行了如下的腳本修改
………………
lr_start_transaction("天氣");
lr_think_time( 3 );
web_add_cookie("mysinal=ai_erica; DOMAIN=weather.news.sina.com.cn");
web_add_cookie("SINAGLOBAL=221.219.31.58.924471172571904604; DOMAIN=weather.news.sina.com.cn");
………………
lr_end_transaction("天氣", LR_FAIL);
在最后我把該事物的結束狀態設置為FAIL,然后運行該腳本,其實該事物的運行是沒有任何錯誤的,完全可以運行成功,只是在最后我把事務的狀態手工設置為FAIL。當腳本執行完后,查看Ececution Log看到這樣一條log語句:
Action.c(297): Notify: Transaction "天氣" ended with "Fail" status (Duration: 5.1436).
那么這樣做的意義是什么呢?為什么要設置事務結束狀態呢?原因就是在Analysis中生成結果圖表的時候我們就能看到這個名為“天氣”的事務執行是失敗的。如果語句是這樣:
Action.c(297): Notify: Transaction "天氣" ended with "Pass" status (Duration: 5.1436).
Analysis中生成結果圖表的時候我們就能看到這個名為“天氣”的事務執行是成功的。
設置事務結束狀態的用途就在這里。試想Lr為什么能自動生成結果圖表?無非就是Analysis通過一些定義好的API獲取執行腳本過程中的返回值,從而顯示出事務執行的正確還是錯誤,或是顯示出響應時間等信息,然后調用GUI使我們很直觀的看到測試結果。
文章來源于領測軟件測試網 http://www.kjueaiud.com/