久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

fiddler+willow使用和配合真機測試調(diào)試

 牽牛吃草 2016-08-19

本文最早發(fā)布于csdn

背景介紹:

Fiddler是一個http協(xié)議調(diào)試代理工具,它能夠記錄并檢查所有你的電腦和互聯(lián)網(wǎng)之間的http通訊,,設(shè)置斷點,,查看所有的“進出”Fiddler的數(shù)據(jù)(指cookie,html,js,css等文件,這些都可以讓你胡亂修改的意思),。 Fiddler 要比其他的網(wǎng)絡(luò)調(diào)試器要更加簡單,,因為它不僅僅暴露http通訊還提供了一個用戶友好的格式。Fiddler是用C#寫出來的,它包含一個簡單卻功能強大的基于JScript.NET事件腳本子系統(tǒng),,它的靈活性非常棒,,可以支持眾多的http調(diào)試任務(wù),并且能夠使用.net框架語言進行擴展,。

注:Fiddler因為設(shè)置代理的原因,,在使用中可能會出現(xiàn)網(wǎng)絡(luò)問題,直接關(guān)閉或者點擊關(guān)掉左下角的capture就好了

Fiddler及Willow插件的安裝

Fiddler有兩個版本,,下載地址 http://www./download/fiddler ,,針對Fiddler2和Fiddler4,對應(yīng)的Willow插件版本也是不一樣的,。本文使用和針對的主要是Fiddler4

官網(wǎng)介紹的主要功能如下:

  • Web調(diào)試,,調(diào)試PC、Mac或Linux系統(tǒng)和移動設(shè)備的通信,。確保適當(dāng)?shù)腸ookies,headers和緩存指令是客戶端和服務(wù)器之間傳輸,。支持任何框架,包括.NET,Java,Ruby等等。

  • 性能測試,,F(xiàn)iddler讓你一眼就看到加載頁面權(quán)重-請求的數(shù)量和傳輸?shù)淖止?jié),,http緩存和壓縮技術(shù)。也可以用Fiddler的自定義規(guī)則來關(guān)注潛在的性能問題.比如,你可以標(biāo)記所有大于25KB的響應(yīng)(Fiddler4要安裝Fiddeler script)

  • HTTP/HTTPS流量監(jiān)控,F(xiàn)iddler是一個免費的web調(diào)試代理,,記錄了所有在你的電腦和互聯(lián)網(wǎng)之間的HTTP(s)的流量,,可以用它來調(diào)試幾乎任何支持代理的應(yīng)用程序比如IE,Chrome,,Safari等

  • Web會話操作,,容易操作和編輯web會話。你所需要做的就是設(shè)置一個暫停正在處理的會話和允許變更的請求/響應(yīng)的斷點,。你也可以在Fiddler中編寫自己的HTTP請求(也就是偽造請求)

  • 安全性測試,,使用Fiddler對你的web應(yīng)用程序進行安全性測試——解密HTTPS流量,用man-in-the-middler解密技顯示和修改請求,??梢耘渲肍iddler解碼所有流量或者特定會話的流量

  • 定制Fiddler,受益于豐富的擴展模型,從簡單的FiddlerScript到強大的擴展,可以使用任何.net語言來擴展,,點擊查看已有的擴展,。

Fiddler原理:

在本機開啟一個http的代理服務(wù)器,然后它會轉(zhuǎn)發(fā)所有的http請求和響應(yīng)到最終的服務(wù)器,如圖所示

打開Fiddler后,,F(xiàn)iddler會自動篡改代理,,打開ie的internet選項->連接->局域網(wǎng)設(shè)置->高級可以看到下圖

通過更改瀏覽器的代理服務(wù)地址,F(xiàn)iddler就可以截獲所有發(fā)出的請求

Fiddler兩種代理模式

流模式:(streaming) 實時傳送給客戶端(更接近于瀏覽器本身真實的行為)
緩沖模式: (buffering) 等http請求所有東西都準(zhǔn)備好后才返回給應(yīng)用程序(可控制最后的服務(wù)器響應(yīng))
在Fiddler的工具欄的Stream可以進行兩種模式的切換,,默認(rèn)是緩沖模式

Fiddler使用場景

  • 開發(fā)環(huán)境host配置,,Tools->Hosts

  • 前后端接口調(diào)試

  • 線上bugfix,將線上項目代理到本地進行修改調(diào)試(AutoResponder,Willow)

  • 性能分析和優(yōu)化

工具欄常用功能介紹

  • Replay,,回放會話,,選中會話并按R鍵即可回放會話(可多條)

  • 清空監(jiān)控面板,快捷鍵ctrl+x

  • go 斷點調(diào)試

  • stream切換代理模式

  • Decode 解壓請求

  • keep all session選項可選保存會話的數(shù)量,,默認(rèn)的保存所有,,保存的會話越多,fiddler占用的內(nèi)存越大,,可以設(shè)置下,,而且調(diào)試也不希望看到太多會話,可以根據(jù)需要清空監(jiān)控面板或過濾請求

  • All Process,,可以用來控制如只捕獲chrome瀏覽器的請求

  • Find 可以查找會話并選擇顏色高亮標(biāo)明

  • TextWizard 解碼/編碼功能,,可選選項很多,避免去網(wǎng)上找解碼工具

狀態(tài)欄

狀態(tài)欄功能較少,,但也很重要

Capture用來控制Fiddler是否工作,,點擊即可切換狀態(tài)
All Process控制請求來源
旁邊的數(shù)字代表當(dāng)前會話數(shù)量

命令行

  • select命令。選擇所有相應(yīng)類型(指content-type)為指定類型的HTTP請求,,如選擇圖片,,使用命令select image.而select css則可以選擇所有相應(yīng)類型為css的請求,,select html則選擇所有響應(yīng)為HTML的請求,選中的部分會高亮顯示,,如圖執(zhí)行select image

  • allbut命令,。
    allbut命令用于選擇給定類型的HTTP請求(刪除其他類型請求),該命令還有一個別名keeponly.

    Eg:只保留image會話:allbut image
    
  • text命令
    選擇所有 URL 匹配問號后的字符的全部 session

    Eg:?qq.com
    
  • 小于/大于size命令
    選擇響應(yīng)大小大于某個大小或者小于某個大小的所有HTTP請求

    Eg:選擇響應(yīng)大小小于10k的請求:<10k
    
  • =status命令
    選擇響應(yīng)狀態(tài)等于給定狀態(tài)的所有HTTP請求,。

    Eg:選擇所有狀態(tài)為200的HTTP請求:=200
    
  • @host命令
    選擇包含指定 HOST 的全部 HTTP請求,。

    Eg:選擇所有host包含csdn.net的請求:@csdn.net
    
  • Bpafter, Bps, bpv, bpm, bpu

    這幾個命令主要用于批量設(shè)置斷點
    
    Bpafter xxx: 中斷 URL 包含指定字符的全部 session 響應(yīng)
    
    Bps xxx: 中斷 HTTP 響應(yīng)狀態(tài)為指定字符的全部 session 響應(yīng),。
    
    Bpv xxx: 中斷指定請求方式的全部 session 響應(yīng)
    
    Bpm xxx: 中斷指定請求方式的全部 session 響應(yīng),。等同于bpv xxx
    
    Bpu xxx:與bpafter類似。
    
    當(dāng)這些命令沒有加參數(shù)時,,會清空所有設(shè)置了斷點的HTTP請求,。
    
  • help
    輸入help會彈出這個頁面 http://docs./fiddler/knowledgebase/quickexec,,是fiddler的官方命令行文檔

會話圖標(biāo)類型(此圖為Fiddler2)

右側(cè)窗口功能

  • Stastics:統(tǒng)計選中的一個或多個請求相關(guān)數(shù)據(jù),,大小、耗時

    最下方會有一個不太容易發(fā)現(xiàn)的功能show charts,,點擊會對請求進行可視化處理,,如圖

  • Inspectors:多種方式查看Request或者Response的詳細(xì)消息,如圖:

  • AutoResponder: 設(shè)置一些規(guī)則將符合規(guī)則的請求重定向到本地。

  • Composer:創(chuàng)建發(fā)送HTTP請求/前后端接口聯(lián)調(diào)

  • Filters:設(shè)置會話過濾規(guī)則

  • Log:日志

  • Timeline:性能優(yōu)化和分析

  • Willow的使用:請求重定向(模擬響應(yīng))

    右鍵添加項目,,規(guī)則,,host

    注意:Match中的URL必須以"/"結(jié)尾,Action中的URL必須以"\"結(jié)尾
    其他使用:

Fiddeler+Willow+全民wifi 配合真機調(diào)試

  1. 確保fiddler相關(guān)選項勾選如下,,tools->fiddler options ->connections

這里默認(rèn)的只會抓取HTTP請求包,,如果也要抓取HTTPS包,則在HTTPS標(biāo)簽欄里設(shè)置,,把Capture HTTPS CONNECTs選項    勾上,。

2.確保capture開啟,我的fiddler有時候會出現(xiàn)這種情況

此時capture會關(guān)閉,,需要點擊黃色區(qū)域才能重新開啟capture,,不然無法抓到請求

3.手機和電腦連接在同一個局域網(wǎng)中,全民wifi插入電腦USB口(我用過360隨身wifi等其他設(shè)備,,因為公司網(wǎng)絡(luò)設(shè)置的原因都不行),。如果是第一次使用全民wifi,會有提示下載驅(qū)動,,成功安裝驅(qū)動后會在電腦右下角提示安裝成功和開始體驗,。電腦右下角出現(xiàn)全民wifi圖標(biāo),可以通過手機掃描二維碼或者在手機端wifi設(shè)置里面直接輸入賬號密碼來連接共享pc網(wǎng)絡(luò),,接著配置代理,,一般fiddler默認(rèn)的端口是8888,,如有不同可以在connection中查看,配置主機名,,兩種方法:

 方法一:windows下是win+r  運行cmd  接著運行ipconfig
![](http://7xteia.com1.z0.glb./4.png)
方法二:鼠標(biāo)移上fiddler右上角的online會出現(xiàn)提示如下:
![](http://7xteia.com1.z0.glb./5.png)

4.創(chuàng)建重定向規(guī)則,,如果文件較少,可以用fiddler自帶的AutoResponsder,如果是文件夾,,就用willow添加,,因為手q使用了離線包機制嗎,所以willow要配置host禁用離線包并在手機端清除qq緩存,,右鍵會出現(xiàn)添加項目規(guī)則host等的工具欄

配置host如圖

5.開始抓包,,打開項目對應(yīng)的區(qū)域,抓到的請求在fiddler里面會是橙色區(qū)域如圖

即代表抓包成功,,有時候會出現(xiàn)404或者代碼報錯,,所以一般要先在瀏覽器端測試觀察控制臺有沒有報錯
如果發(fā)現(xiàn)404,可能是因為使用了不同的域名,,也要進行添加規(guī)則和匹配

6.瀏覽器端的調(diào)試如下:
復(fù)制抓到的請求地址,,在瀏覽器端打開即可,如果要調(diào)試一個項目下另外的業(yè)務(wù),,更改url結(jié)構(gòu)即可

我遇到過因為需要看外網(wǎng)的情況關(guān)閉了手機的代理后再開結(jié)果無法抓包的問題,,重啟手機就好了,有時候請求很多有很多不想看的請求需要觀察當(dāng)前的業(yè)務(wù)時,,可以設(shè)置filter

過濾掉請求后點擊action選擇run filterset now即可生效

7.清空面板方法如下:
方法一:在命令窗口里輸入clear即可
方法二:上方有移除請求的選項
點擊會有很多選項,,可以移除所有請求,移除img請求和移除請求碼為非200的等等,,根據(jù)實際需要選擇不同選項
方法三:清除所有記錄的快捷鍵:ctrl+x

一般調(diào)試的時候都要禁用緩存
在fiddler2里是Tools->Performance->Disable Caching,在fiddler4里是Rules->Performance->Disable Caching

Fiddler的高級使用

網(wǎng)速限速

我們?yōu)槭裁匆匏?。限速對于web前端研發(fā)是非常重要的,由于開發(fā)者的機器一般配置都很高,,并且是在localhost下來調(diào)試程序,,所以很難模擬到用戶的真實使用情 況,如正在下載JS,css等靜態(tài)資源的時候,,頁面的一個渲染情況,。當(dāng)網(wǎng)速很慢的時候,我們更希望看到的是先渲染出用戶界面,,而不是讓用戶看到一片空白,。那么這個時候,網(wǎng)絡(luò)限速就能很方便在localhost針對類似的情況來做性能調(diào)試與優(yōu)化,。

方法一:Fiddler script(自定義延時)
需要的插件:Fiddler script,,下載地址:http://www./download/fiddler/fiddlerscript-editor
下載完直接安裝就行了,安裝之前必須關(guān)閉fiddler,,再打開fiddler就會在右側(cè)tab看到fiddler script選項
fiddler script原理:把請求完全代碼化
Eg:模擬延時3s發(fā)送請求:
選中會話,,在fiddler-script——>Go to->OnBeforeRequest添加代碼如下:
oSession["request-trickle-delay"] = "3000"

點擊save script保存,,再replay會話就會發(fā)現(xiàn)會話延遲了三秒才發(fā)送
延時響應(yīng)同理

方法二:
Rules → Performances → Simulate Modem Speeds

Fiddler替換HTTP Request Host
替換的方法有兩種,一種是暫時的,,一種是永久的,,暫時的方法是在Fiddler 左下角輸入:

urlreplace www.demo.com www.dev.demo.com

要清除轉(zhuǎn)發(fā),請在同一位置輸入:

urlreplace

按Enter 就可以了,。

更詳細(xì)的說明請參考Fiddler官方說明文件- QuickExec Reference ,。 可以發(fā)現(xiàn)urlreplace 做的是整個網(wǎng)址字串的取代,所以可以動手腳的地方不只于此,。

永久的方法是修改Fiddler的CustomRules.js ,,注意是.js ! 點下Fiddler 上方的Rules ,,再點Customize Rules :

如果有安裝FiddlerScript Editor ,,會用FiddlerScript Editor開啟CustomRules.js ,否則會用筆記本開啟,。 或者也可以到「我的文件 Fiddler2 Scripts 」直接編輯CustomRules.js ,。

//請先在CustomRules.js 找到:
  static function OnBeforeRequest ( oSession : Session ) {
   // ...
   //在函式中加入:
  if ( oSession . HostnameIs ( 'www.demo.com' ) )
   oSession . hostname = 'www.dev.demo.com' ;
 }

將CustomRules.js 存檔, Fiddler 會自動重新載入CustomRules.js ,,原先發(fā)到www.demo.com 的HTTP Request 就會自動轉(zhuǎn)發(fā)到www.dev.demo.com ,。
更詳細(xì)的說明請參考Fiddler官方說明文件- Script Samples ,。

Fiddler斷點調(diào)試

設(shè)置斷點有兩種方法
第一種:打開Fiddler 點擊Rules-> Automatic Breakpoint ->Before Requests(這種方法會中斷所有的會話)
如何消除命令呢,? 點擊Rules-> Automatic Breakpoint ->Disabled

第二種: 在命令行中輸入命令: bpu www.baidu.com (這種方法只會中斷www.baidu.com)

如何消除命令呢? 在命令行中輸入命令 bpu

看個實例,,模擬QQ郵箱的登錄,,輸入錯誤的用戶名和密碼,用Fiddler中斷會話,,修改成正確的用戶名密碼,。這樣就能成功登錄

  1. 登錄qq郵箱,輸入錯誤的密碼

  2. 打開Fiddler, 在命令行中輸入bpu

  3. 輸入錯誤的用戶名和密碼 點擊登錄

  4. Fiddler 能中斷這次會話,,選擇被中斷的會話,,點擊Inspectors tab下的WebForms tab 修改用戶名密碼,然后點擊Run to Completion,。

  5. 結(jié)果是正確地登錄了qq郵箱

禁用緩存

兩種方法,,一種暫時的,一種永久的(通過fiddler script)
暫時的方法:
Tools->Performance->Disable Caching

永久的方法:
在fiddler script里查找
> var m_DisableCaching: boolean = false;

把值改成true并保存就可以了

擴展Fiddler script的一些用法

實例 讓所有qq的會話都顯示紅色,。

把這段腳本放在OnBeforeRequest(oSession: Session) 方法下,,并且點擊"Save script"

     if (oSession.HostnameIs("www.cnblogs.com")) {
            oSession["ui-color"] = "red";
    }

效果如圖

這樣所有的cnblogs的會話都會顯示紅色

如何在Fiddler Script中修改Cookie

cookie其實就是request 中的一個header.

// 刪除所有的cookie

oSession.oRequest.headers.Remove("Cookie");

// 新建cookie
oSession.oRequest.headers.Add("Cookie", "username=testname;testpassword=P@ssword1");

注意: Fiddler script不能直接刪除或者編輯單獨的一個cookie, 你需要用replace方法或者正則表達式的方法去操作cookie的string

復(fù)制代碼

static function OnBeforeRequest(oSession: Session) 
{ 
     if (oSession.HostnameIs('www.example.com') && 
          oSession.uriContains('pagewithCookie') && 
oSession.oRequest.headers.Contains("Cookie")) 
     { 

     var sCookie = oSession.oRequest["Cookie"]; 

     //  用replace方法或者正則表達式的方法去操作cookie的string
     sCookie = sCookie.Replace("cookieName=", "ignoreme="); 

     oSession.oRequest["Cookie"] = sCookie; 
    } 

一點小的tips:

  • 我在使用Fiddler的過程中碰到過無法抓包的情況,,原因是之前因為測試配置了autoresponder或者filter等沒有改回去,,如果碰到這個情況請確保Fiddler的選項都配置正確

  • chrome和firefox瀏覽器無法被監(jiān)聽
    fiddler安裝之后,,默認(rèn)會在IE瀏覽器中安裝一個fiddler的插件,所以它對IE及國內(nèi)基于IE內(nèi)核的各類瀏覽器都能實現(xiàn)監(jiān)聽,,但其他內(nèi)核的瀏覽器無法被監(jiān)聽,。

    解決辦法:禁用chrome和firefox中具有代理功能的插件,比如chrome如果安裝了switchSharp,,禁用它或選擇“使用系統(tǒng)代理設(shè)置”,,或在switchSharp中新配置一個代理項(比如名為fiddler,用于指向代理127.0.0.1,,端口8888,,如下圖),即可實現(xiàn)監(jiān)聽,。
    

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多