引子:
在做業(yè)務功能測試的時候观游,時常需要模擬某種特殊的業(yè)務場景,而這種業(yè)務場景在常規(guī)業(yè)務流程下難以復現(xiàn)驮俗,此時需要將這個業(yè)務流程按照對應的技術框架做結構拆分懂缕,從驗證各個拆分部分+關聯(lián)接口從而驗證整個業(yè)務是否滿足預期。
其中一種是驗證某個數(shù)據(jù)流到客戶端的后的響應王凑,這里主要是講到驗證app在獲取后端一些特定數(shù)據(jù)后做出響應的業(yè)務過程搪柑。
思路:利用fiddler抓包并修改接口響應結果聋丝,以模擬出app端業(yè)務響應所需條件,然后驗證客戶端的功能反饋即可工碾。
三種實現(xiàn)方式:
1.通過設置Rules-Automatic Breakpoint-After Responses選中弱睦,為接口打斷點的方式設置響應結果。
圖中標紅1為比如修改34℃為38℃倚喂,2修改完畢點擊運行完成
優(yōu)點:方便對一個接口單步調試
缺點:斷點規(guī)則同樣會阻塞其他接口的執(zhí)行每篷,目標接口可能需要等待前置接口執(zhí)行完畢,需要和app端同步進行端圈;修改響應結果的操作時間較長有時會導致在app端的響應失效焦读。
2.通過設置AutoResponder可以批量使接口按照預期的結果執(zhí)行。
圖中標紅部分:
1--增加目標接口匹配規(guī)則(正則表達式)
2--編輯和保存匹配字符串
3--設置響應結果
3.通過設置FiddlerScript腳本直接設置接口響應過程
static function OnBeforeResponse(oSession: Session) {
//其他默認代碼......
if (oSession.fullUrl.Contains("www.sojson.com/open/api/weather/json.shtml?city")){
//對響應結果解碼
oSession.utilDecodeResponse();
//設置替換響應結果內容
oSession.utilReplaceInResponse('"date":"17日星期一","high":"高溫 34℃"','"date":"17日星期一","high":"高溫 38℃"');
}
}
優(yōu)點:接口執(zhí)行效率基本沒有損耗舱权,更接近真實情況下接口響應過程矗晃;只需修改腳本保存就可,適合復雜情況下模擬接口執(zhí)行過程
缺點:需要對腳本語法和api有一定了解宴倍,文檔資料較少
script用法參考:http://www.fiddlerbook.com/Fiddler/dev/ScriptSamples.asp
補充:上面第三種修改腳本的方式张症,比較熟悉fiddler script語法后可以做到更靈活使用。比如可以在手工測試的時候抓取目標接口數(shù)據(jù)鸵贬,并以某種格式保存寫文件中俗他,然后清洗接口數(shù)據(jù)再拼裝,可作為自動化接口測試的數(shù)據(jù)來源之一阔逼。