Fiddler-自動保存請求到本地文件夾

背景

嘗試搭建移動端自動化測試流程,預想流程爲:利用appium模擬用戶觸發請求–》利用fiddler抓取請求–》驗證請求是否符合預期。
網上查閱資料,發現Fiddler的Customize Rules功能,支持用戶添加腳本(Java Script)來實現自定義功能。
如何利用Fiddler抓取移動端請求在這裏不加贅述,網上資料很多也很全。

第一步:啓動fiddler,並打開Fiddler ScriptEditor

點擊頂部工作欄中的“Rules–》Customize Rules…”,如下圖所示:
這裏寫圖片描述

第二步:ctrl+f找到OnBeforeRequest函數,並添加自定義函數功能

這裏寫圖片描述
添加完代碼保存後,無需重啓fiddler。
第一種:保存請求的url到本地的request.log文件中

if (oSession.HostnameIs("域名") && oSession.uriContains("期望字符")){  
            var filename = "D:/workspace/.../request.log";  
            var curDate = new Date();  
            var logContent =  "[" + curDate.toLocaleString() + "] " + oSession.PathAndQuery + "\r\n";  
            var sw : System.IO.StreamWriter;  
            if (System.IO.File.Exists(filename)){  
                sw = System.IO.File.AppendText(filename);  
                sw.Write(logContent);  
            }  
            else{  
                sw = System.IO.File.CreateText(filename);  
                sw.Write(logContent);  
            }  
            sw.Close();  
            sw.Dispose();  
        } 

保存效果如下圖:
這裏寫圖片描述
第二種:保存完整的請求到本地request文件夾中

    if(oSession.HostnameIs("域名")){
            var url = oSession.url.ToString();
            url= url.Substring(26);//標識截取的起始位置
            url=url.Replace("\\","_");
            url=url.Replace("/","_");
            if(url.Contains("?")){
                var postion = url.IndexOf("?");;
                url = url.Substring(0,postion-1); 
            }
            oSession.SaveSession("D:/workspace/.../request/"+url+".txt",false);

我爲了能保存測試過程中所有的請求,在文件名稱中添加時間戳:

    var now = new Date();
            var ts = now.getTime();
        //  var ts = now.getFullYear()+now.getMonth()+now.getDate()+now.getDay()+now.getHours()+now.getMinutes()+now.getSeconds()+now.getMilliseconds();
        ...
            oSession.SaveSession("D:/workspace/.../request/"+url+ts+".txt",false);

保存效果如下圖:

這裏寫圖片描述
最後,提醒大家Fiddler ScriptEditor是運用Java Script編寫,不要用錯語言,我一開始研究了好久老是報錯,後來發現是語言用錯了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章