[Fiddler] Customize Rules

[Fiddler] Customize Rules

Fiddler的客製化規則.

最近需要做JavaScript的佈署跟測試,

希望可以在瀏覽網站的時候,如果是prod.xxx.com/scripts/demo.js的request可以導到stg.xxx.com/jsdemo/demo.js

如果只是為了從prod.xxx.com換到stg.xxx.com的話,是可以直接改hosts,但是現在除了FQDN外,還要處理路徑.

對於這樣的需求,如果你是使用Charles Proxy的話,它有個map remote的功能,可以很簡單的設定這樣的需求.

不過在這邊,我要說的是怎麼在Fiddler中設定這樣的功能.

下面是環境,需求及作法.

環境

網站 www.xxx.com : 放置Production網頁
網站prod.xxx.com/scripts/ : 放置production用的JS
網站stg.xxx.com/jsdemo/ : 放置測試用的JS

需求

將瀏覽prod.xxx.com/scripts/*.js的request 都導到測試環境stg.xxx.com/jsdemo/*.js,以便在測試prodcution上測試staging的JS檔.

作法

  1. 開啟Fiddler
  2. 點選[Rules/Customize Rules],這時會用編輯器開啟CustomRule.js這個檔案
  3. 在這個JS檔中找到"OnBeforeRequest"的function.
  4. 在OnBeforeRequest中增加下面的片段
    if (oSession.HostnameIs("prod.xxx.com")) {
        oSession.url = oSession.url.Replace("prod.xxx.com/scripts","stg.xxx.com/jsdemo");
        oSession.host = "stg.xxx.com";
    };
  5. 存檔,然後重新載入網頁.