1. 程式人生 > >--fiddler--實戰--抓包到底幹嘛用?

--fiddler--實戰--抓包到底幹嘛用?

一、如何顯示請求花費的時間

背景 :在專案中,客戶端會根據服務端響應的時間來決定走哪條業務分支,之前是通過開發人員列印的log日誌來驗證服務端消耗的時間,比較麻煩。就想著Fiddler能不能獲得一個請求花費的時間呢,還真的就找到了一個方法,今天就和大家分享一下:

需求 :Fiddler顯示請求花費的時間

思路 :Fiddler工具除了可以捕捉Request和Response,還會捕捉請求的效能資料,比如客戶端傳送請求的時間,服務端獲得請求的時間等等,我們可以計算不同時間點的差值來獲得中間的消耗時間。 

步驟:

1、檢視Session Properties,右鍵點選請求—>選擇Properties

2、彈出框如下圖所示,可以看到 TIMING INFO ,展示所有和時間相關的效能資料。

3、獲得一個請求花費的時間,應該是伺服器完成響應的時間點(ServerDoneResponse)—客戶端完成請求的時間點(ClientDoneRequest)。

4、捋順了思路,就可以coding了。

CustomRules.js指令碼文件調整如下:

  class Handlers

  {

  ... ...

          //增加一列來顯示消耗的時間,列頭為:TimeTaken/ms

          public static BindUIColumn("TimeTaken/ms" ,120)

          function TimeTaken(oS: Session): String{

          //先賦值空的字串

          var sResult = String.Empty;

          //將時間點轉成ms值

          var t1 = oS.Timers.ServerDoneResponse.Millisecond;

          //FiddlerObject.log("t1: "+t1);

          var t2 = oS.Timers.ClientDoneRequest.Millisecond;

          //FiddlerObject.log("t2: "+t2);

          if(t1 > t2){

              //兩者的差值就是請求消耗的時間

              var t3 = t1-t2;

              sResult = t3.ToString();

              FiddlerObject.log("t3: "+t3);

          }

          return sResult;

      }

  ... ...

  }

實現結果如下圖所示,消耗214ms:

二、讀寫本地txt檔案

在Fiddler的api中提供兩個方法來讀寫本地的txt檔案,LoadRequestBodyFromFile()和SaveRequsetBody()。今天我要和大家分享另外一種讀寫本地txt檔案的方法。

第一步:定義方法

      static function readFile(filename)

      {

          //FiddlerObject.alert("readFile");

          var fso = new ActiveXObject("Scripting.FileSystemObject");

          var f = fso.OpenTextFile(filename,1);

          var s = "";

          while (!f.AtEndOfStream)

              s += f.ReadLine()+"\n";

          f.Close();

          //  FiddlerObject.alert(s);

          return s;

      }

      //往本地檔案中寫內容

      static function writeFile(filename,context)

      {

          var fso = new ActiveXObject("Scripting.FileSystemObject");

          var f = fso.OpenTextFile(filename,2);

          f.write(context);

          f.Close();

      } 

第二步:呼叫方法

      if (oSession.HostnameIs("sdk.api.kaffnet.com") ) {

                      oSession["ui-color"] = "orange";

                      var body = oSession.GetRequestBodyAsString();

  //將請求body寫入本地檔案中

                      writeFile("D:\\readFile.txt",body);

  //從本地檔案讀取資料作為請求body

                      var string = readFile("D:\\jiemi_sdk.txt");

                      body = string;

                      oSession.utilSetRequestBody(body);

                  }

你可能會有疑問,fiddler的api已經提供了簡單方便的方法,你為何還有大費周章的來自己寫方法呢?其實我想表達的是,Fiddler工具既然允許我們修改js文件來實現不同的功能,那麼我們就應該好好地利用這樣的優勢來為我們服務。如何才能高效的使用fiddler,我們唯有充分地瞭解它才能夠“對症下藥”。想要在Fiddler的地基上蓋出漂亮的房子只有靠自己不斷的探索擴充套件。 

言歸正傳,readFile()和writeFile()方法的實現過程,你看著有木有很眼熟呢?這個不就是js讀寫本地txt文件嗎?!是的,沒錯,就是JS!JS!!JS!!! 

CustomRules.js就是用JS寫的,是不是頓時覺得CustomRules.js你也可以很輕鬆很easy的修改調整,那麼就趕快和我一起行動起來吧。 

順著這個思路呢,我又寫了讀寫本地excel文件的方法,不過fiddler的api中可沒有提供讀寫excel的方法哦?!

三、讀寫本地excel檔案

      //讀取本地excel的方法

      static function readExcel(filename,apk,key,version,code)

      {

          //建立Excel.Application物件

          var oXL = new ActiveXObject("Excel.application"); 

          //開啟指定路徑的excel檔案  

          var oWB = oXL.Workbooks.open(filename,8)

          //操作第一個sheet(從一開始,而非零)  

          oWB.worksheets(1).select();  

          var oSheet = oWB.ActiveSheet;  

          //多少行

          var rows =  oSheet.usedrange.rows.count;   

          //多少列

          //var colcount=oSheet.UsedRange.Cells.Count ;;

          //特殊excel讀取都是從1開始

          try{

              for (var i = 2; i <= rows; i++) {  

                  if(oSheet.Cells(i,1).value == apk){

                      //FiddlerObject.alert(oSheet.Cells(i,1).value);

                      //為單元格賦值

                      oSheet.Cells(i,5).value = key;

                      oSheet.Cells(i,6).value = version;

                      oSheet.Cells(i,7).value = code;

                      oWB.save();

                  }

              }

          }catch(e){

          }

          //FiddlerObject.alert("save");

          oWB.close();

          //退出操作excel的例項物件  

          oXL.Application.Quit();  

      }

這個方法有結合我實際的業務需要,大家可以自行提取自己需要的部分。


相關推薦

--fiddler--實戰--到底

一、如何顯示請求花費的時間背景 :在專案中,客戶端會根據服務端響應的時間來決定走哪條業務分支,之前是通過開發人員列印的log日誌來驗證服務端消耗的時間,比較麻煩。就想著Fiddler能不能獲得一個請求花費的時間呢,還真的就找到了一個方法,今天就和大家分享一下:需求 :Fidd

iOS 10.3下解決Fiddler代理ssl證書信任問題

設置 自定義 安裝 通用 ios 更新 nbsp 默認 進一步 iPhone系統更新到iOS 10.3以後,設置fiddler代理抓包,會出現無法抓取https請求,app請求失敗的問題 這是因為在iOS 10.3之前,當你將安裝fiddler的自定義證書後,iOS會默認信

fiddler手機,支持前端代碼調試

前端 ipv4 通過 代理 信息 局域網 被占用 mark 安卓系統 手機用fiddler抓包 電腦最好是筆記本,這樣能和手機保持統一局域網內;其他不多說,直接說步驟了。 一.對PC(筆記本)參數進行配置 1. 配置fiddler允許監聽到https(fiddler默

Fiddler手機軟件簡單使用

使用 簡單 ddl con 步驟 http代理 http協議 .cn ffffff 此文章是博主自己所寫,轉載請註明出處 一、簡介   Fiddler是一個http協議調試代理工具,它能夠記錄並檢查所有你的電腦和互聯網之間的http通訊,設置斷點,查看所有的“進出”Fidd

fiddler+android工具配置使用

row and fig 端口 沒有 ces 其他 nor 如何配置 今天臨時增加一個工作,手機需要抓包,查看了不同的抓包工具,最後確定使用fiddler抓包工具進行操作,這裏以android為例記錄一下工具的配置和使用操作。 fiddler的安裝 網上有很多fiddler的

Fiddler 手機學習記錄

accept ogl con 服務 比較 好的 信息 for 執行 記錄下個人手機(IOS+Android)抓包的學習過程,寫的比較簡陋,網絡上也有很多大佬寫的使用文檔,如有雷同,純屬個人學習記錄。Fiddler工具相對其他同類工具來說 ,個人使用很好,推薦使用。1.電腦上

fiddler手機

pan errors tools 系統安全 color rom 技術分享 20px span 18-06-26 記fiddler手機抓包 1、配置fiddler ① tools --》 fiddler options 勾選 Capture HTTPS CON

fiddler後時間戳轉日期

時間戳 圖片 sta amp image ima tool 時間 分享圖片 時間戳轉日期網址:https://tool.lu/timestamp/ fiddler中抓包後時間戳轉日期

Fiddler手機出現的問題

1.按照正常配置流程,首先配置Fiddler HTTPS和Conections,電腦Wifi共享給手機端或下載模擬器連線Wifi,手機端安裝證書,配置Wifi為代理。上述步驟詳見百度流程。 2.正常配置後,有些手機app基本能正常抓包,如:網易雲音樂,有些卻手機網路變成不可用,無法再訪問app資

Fiddler(二) - 使用Fiddler分析

分享一下我的偶像大神的人工智慧教程!http://blog.csdn.net/jiangjunshow 也歡迎轉載我的文章,轉載請註明出處 https://blog.csdn.net/mm2zzyzzp Fiddler(二) - 使用Fiddler做抓包分析

Fiddler 手機步驟

1.下載Fiddler安裝包,fiddler_4.6.20171.26113_setup .exe 進行安裝,安裝完成後設定服務埠。預設為8888. 2.保證電腦和手機在同一個區域網內,如果不是,可以自己通過路由器配置一個區域網,手機連線上該網路後,設定代理 3.設

fiddler手機不能上網問題解決】

進行抓包過程發現 ,上不了網路,提示 [Fiddler] The Fiddler AutoResponder is enabled, but this request did not match any of the listed rules. Because the

fiddler手機配置方法

一、下載工具包 百度搜索”fiddler 下載“ ,安裝最新版本 下載的軟體安裝包為“fiddler_4.6.20171.26113_setup.exe”格式,雙擊安裝。安裝成功,在“開始”-“所有程式”,就會看見這樣的圖示,若是常用的話,也可以在桌面建一個快捷方式,如下圖: 二、fiddler手機抓包

fiddler內容編輯後再次傳送請求

最近在測試一個專案,遇到輸入框的時候,開發人員限制了不允許輸入特殊字元,那麼我們有沒有什麼辦法就讓它輸入特殊字元呢?我想到了fiddler,於是在網上找到了資料,整理如下: 1、在fiddler中選中要修改的請求,右擊選擇Replay,然後選擇Reissue

Gitbash如何支援互動式命令?如何讓gitbash的命令不亂碼?winpty是什麼鬼?的?

 winpty 是一個 Windows 軟體包,提供了類似 Unix pty-master 一樣的介面,用於實現控制檯程式之間的通訊。該軟體包包括一個開發庫 (libwinpty) 和一個用於 ygwin 和 MSYS 的工具用於在 Cygwin/MSYS pty 下執行 Windows 控制檯程式。

fiddler 手機(含https) 完整流程

一部分:下載並安裝fiddler 1.使用任一瀏覽器搜尋【fiddler下載安裝】,並下載fiddler 安裝包。 2.fiddler安裝包下載成功後,將下載的fiddler壓縮包解壓到自定義資料夾【fiddler】或者解壓到當前資料夾下,雙擊資料夾中的【fiddler.exe】檔案 3.雙擊檔

Fiddler 4 手機配置代理後不能上網解決辦法

今天根據網上配置Fiddler後手機不能上網,後經過查詢,終於找到解決辦法  1.檢查Fiddler需要用到對應的.net framework  在Help->About 即可檢視需要的版本  (安裝之後重啟電腦) 可能遇到的問題:

javaWeb學習(2)——web.xml和pom.xml都是

web.xml和pom.xml看起來差不多都是仨字母,檔案字尾都一樣 對於初學者來講,剛接觸這裡面的東西,感覺亂七八糟的傻傻弄不清楚 我也以一個初學者的角度,說說自己的理解 一、POM啥意思呢,百度了一下叫專案物件模型------->該檔案用於管理:原始碼、配置檔案、

安卓微信連線fiddler工具無法取https

問題描述: 在手機連線pc的fiddler後,安卓微信打不開https頁面,安卓的瀏覽器、qq等都可以正常訪問https,ios也都可以,就只有安卓微信放問https是空白頁面   解決思路: 一. 證書沒有正確安裝 連線抓包工具無法訪問https的,首先判斷是證書問題。在瀏覽器訪問&nb

fiddler手機 iOS iPhone 設定方法

1. 設定fiddler,Tools-Options...      抓取https的話,勾選紅框中的內容 2. fiddler預設監聽埠8888 3. 檢視本機IP 4. 開啟手機 設定-無線區域網 點進去連線的電腦wifi右邊的“圓圈i”,設定代理IP 埠號