5.2設置和保存判斷成功與否的參數,這也是最關鍵的地方。
有一點大家都很清楚,業務成功返回的字符串和失敗返回的字符串是不同的,我們所要做的是將返回的字符串做為參數保存下來,然后拿這個參數和我們事先定義好的成功的標志做比較,有兩種方式可以設置和保存這一參數,下面簡單介紹:
第一種方式也是最準確的方式,是以View Tree 方式找到相關的界面,然后從Server Response的Snapshot的Body里的成功的返回標志,然后對其進行Create Parameter,這樣LoadRunner會自動在腳本中添加web_reg_save_param函數,具體如下:
// [WCSPARAM WCSParam_Text2 24 操作業務數據成功!_Text2] Parameter {WCSParam_Text2} created by Correlation Studio
web_reg_save_param("WCSParam_Text2",
"LB=---------",
"RB=-",
"Ord=1",
"RelFrameId=1",
"Search=Body",
LAST);
第二種方式是在提交事件前添加web_reg_save_param函數,具體操作是在提交事件前右擊鼠標選擇Insert Before 選項,然后在彈出的對話框中選擇Services里的web_reg_save_param選項,單擊OK按紐,然后在彈出的對話框中輸入相關的數據。
5.3 編寫相關判斷代碼段。
在已經定義好判斷字符串和設置和保存好成功與否的標志字符串參數后,編寫相關判斷代碼段,這也是最關鍵的地方,具體代碼段如下:
if (strcmp(fanhuiflag,lr_eval_string("{WCSParam_Text2}"))!=0)
{
lr_error_message("消息: %s,在第 %s 次循環時出錯,出錯號碼:%s", "提交異地繳費數據失敗!", lr_eval_string("{iteration}"), lr_eval_string("{PhoneNum}"));
}
簡單解釋如下:
fanhuiflag:前面已經定義好的成功標志字符串的數組名,當然前面也可以用指針來實現,這里不做介紹。
WCSParam_Text2:為實現設置和保存好的成功與否返回的字符串的參數;
PhoneNum:服務號碼的參數化,具體為電話號碼。關于參數化,這里不做分析和解釋部分。
Iteration:為了定位具體的循環而設置的參數。
Strcmp函數:LoadRunner自帶的字符串比較函數,相等時返回0
lr_eval_string函數:LoadRunner自帶求字符串函數,函數格式為
char * lr_eval_string (const char * instring );
。硪环N判斷方式:先事先定義好int rc=1; char *fanhuiflag="操作業務數據成功!";然后在定義事務的結尾進行判斷: rc=strcmp(str_tip,lr_eval_string("{re_str_tip}"));
if(rc==0)
{
lr_end_transaction("異地繳費_提交", LR_PASS);
}
else
{
lr_error_message("異地繳費_提交失敗,號碼為:%s",lr_eval_string("{msisdn}"));
lr_end_transaction("異地繳費_提交", LR_FAIL);
}
//lr_end_transaction("異地繳費_提交",LR_AUTO);)
5.4驗證我們的需求是否實現
下面簡單介紹,整個驗證過程,在確保腳本正確和測試環境正常的情況下,我們先在VU里驗證下是否真正實現了我們想要的功能,為了方便,我特地將判斷條件該為==而不是!=,通過查看日志來檢查。
首先,選中菜單欄里的Run-time Settings子菜單,設置里面的Log選項,選中Enable Logging 和Always send messages 和Extended log 及Parameter substitution。
設置Run Logic 里的Number of Iterations 為2,然后運行,并查看日志?梢缘玫饺缦碌娜罩荆ㄖ蝗×岁P鍵部分的):
第一次循環關鍵部分:
YiDiJiaoFei.c(598): Notify: Transaction "提交異地繳費數據" ended with "Fail" status (Duration: 4.8459 Wasted Time: 0.0060).
YiDiJiaoFei.c(605): Notify: Parameter Substitution: parameter "WCSParam_Text2" = "操作業務數據成功!"
YiDiJiaoFei.c(607): Notify: Next row for parameter iteration = 1 [table = iteration].
YiDiJiaoFei.c(607): Notify: Parameter Substitution: parameter "iteration" = "1"
YiDiJiaoFei.c(607): Notify: Parameter Substitution: parameter "PhoneNum" = "13953555588"
YiDiJiaoFei.c(607): Error: 消息: 提交異地繳費數據失敗!,在第 1 次循環時出錯,出錯號碼:13953555588
第二次循環關鍵部分:
YiDiJiaoFei.c(598): Notify: Transaction "提交異地繳費數據" ended with "Fail" status (Duration: 4.2347 Wasted Time: 0.0064).
YiDiJiaoFei.c(605): Notify: Parameter Substitution: parameter "WCSParam_Text2" = "操作業務數據成功!"
YiDiJiaoFei.c(607): Notify: Next row for parameter iteration = 2 [table = iteration].
YiDiJiaoFei.c(607): Notify: Parameter Substitution: parameter "iteration" = "2"
YiDiJiaoFei.c(607): Notify: Parameter Substitution: parameter "PhoneNum" = "13953572390"
YiDiJiaoFei.c(607): Error: 消息: 提交異地繳費數據失敗!,在第 2 次循環時出錯,出錯號碼:13953572390
下面驗證執行時,能正確找到出錯的號碼信息,將腳本加入到場景后,同樣設置好Run-time Settings。
設置結果保存路徑等相關信息,按Start Scenario 執行場景,等出錯是單擊右上角的Errors,然后選中錯誤信息再按Details按紐查看錯誤信息。
文章來源于領測軟件測試網 http://www.kjueaiud.com/