利用whistle mock數據

whistle是基於Node實現的跨平臺web抓包調試代理工具,本文主要介紹whistle在mock數據上的應用,有關whistle完整介紹能夠直接訪問Github:https://github.com/avwo/whistlehtml

平常開發調試過程當中常常須要本身mock數據,通常mock數據有如下兩種方式:git

  1. 經過本地文件替換實現
  2. 在公共mock數據平臺上構造好數據,再經過指定url訪問實現

無論用哪一種方式,whistle都有很大的用處。github

文件替換

whistle不只支持普通的文件或目錄替換,也支持jsonp請求的替換,且能夠經過插件實現更復雜的功能:web

  1. 經過filexfile協議實現本地替換功能:json

    # 替換整個域名的請求
    ke.qq.com file:///usr/xxx/test
    # windows能夠爲
    ke.qq.com file:///E:\test
    
    # 替換指定路徑
    ke.qq.com/abc file:///usr/xxx/test
    # windows能夠爲
    ke.qq.com/abc file:///E:\test
    
    # 通配符匹配
    *.ke.qq.com/test file:///usr/xxx/test
    # windows能夠爲
    *.ke.qq.com/abc file:///E:\test
    
    # 正則匹配
    /^https?://ke\.qq\.com/([^?]*)/i file:///usr/xxx/test/$1
    # windows能夠爲
    /^https?://ke\.qq\.com/([^?]*)/i file:///E:\test/$1
    # 等價與
    ^ke.qq.com/** file:///usr/xxx/test/$1
    ^ke.qq.com/** file:///E:\test/$1

    若是想讓whistle自動在某個文件夾列表搜索直到找到匹配文件爲止,能夠這麼配置:windows

    ke.qq.com/path file:///usr/xxx/test1|/usr/xxx/test2|/usr/xxx/test3

    若是想實現找不到本地匹配文件,直接請求線上資源,能夠這麼配置(file -> xfile):工具

    # 能夠指定host
    ke.qq.com/path xfile:///usr/xxx/test1|/usr/xxx/test2|/usr/xxx/test3 10.2.2.3:8787

    更多匹配方式及規則能夠參考:匹配方式協議列表jsonp

  2. 經過tpl協議實現jsonp替換
    文件(/usr/xxx/test/test.txt)的內容:url

    // whistle會自動根據url請求參數裏面的callback值替換{callback}
    {callback}({"ec": 0})

    Rules的配置:插件

    # 配置和上面的file協議相似,只是把協議改爲tpl
    ke.qq.com/path tpl:///usr/xxx/test

    上述配置後,請求 https://ke.qq.com/path/test.txt?callback=xxx 會自動匹配文件 /usr/xxx/test/test.txt 並返回 xxx({"ec": 0})

  3. 若是要在本地實現更復雜的mock功能能夠自定義插件或經過vase實現,具體參考:https://github.com/whistle-pl...

數據平臺

公共的mock數據平臺,通常的操做方式是先在平臺上配置或自動生成數據,如:

{
    "filed1": 1,
    "filed2": 2,
    "filed3": 3
}

保存時會自動生成一個url: http://mock.oa.com/mock-data?id=xxxxxxx,經過該url能夠直接返回設置好的數據,這時能夠經過whistle配置將對應請求轉發到指定mock url:

ke.qq.com/cgi-bin/list http://mock.oa.com/mock-data?id=xxxxxxx

也能夠自定義插件簡化這種配置,如實現插件 whistle.mockid:

ke.qq.com/cgi-bin/list whistle.mockid://xxxxxxx

經過插件whistle.mockid自動設置規則 ke.qq.com/cgi-bin/list http://mock.oa.com/mock-data?id=xxxxxxx 實現簡化配置。

更多內容及應用,參考Github:https://github.com/avwo/whistle

相關文章
相關標籤/搜索