Charles的Map Remote和Map Local功能和使用介紹


Charles 的Map 功能分Map Remote 和Map Local 兩種,顧名思義,Map Remote 是將指定的網絡請求重定向到另一個網址,Map Local 是將指定的網絡請求重定向到本地文件。

Map Remote 使用場景,app或者PC&M站某個需求剛提測階段,新接口A在測試環境有,還有一種極端情況,接口只在開發本地機器提供(無線底層很多接口不維護測試環境),線上環境A接口還未上線,通常的做法是:

1.APP測試包打包時候寫死(這種只能開發本地打包,不能使用jenkins打的包);M站或者網站在配置文件寫死請求地址(各種改配置很麻煩)

 

2.app全部切換到A接口所在的測試環境,比如sit環境(這種情況下,所有接口都走sit環境,不保證其他接口正常)

 

如:Map Remote能解決這種情況,APP使用新接口,app線上調用地址是 http://xxx/portal/home/pullRefresh app默認調用也是這個,目前現在接口還沒提供

 

接口+參數完整請求是:http://xxx/portal/home/pullRefresh?d={}&c={"cc":1602,"ct":20,"dt":1,"ov":14,"p":14584,"v":"9.0.5"}

 

目前開發本機提供測試接口: http://172.31.0.158:8080/portal/home/pullRefresh?d={}&c={"cc":1602,"ct":20,"dt":1,"ov":14,"p":14584,"v":"9.0.5"}

不配置的時候直接調用,結果是404 (原因是接口xxxx/portal/home/pullRefresh還不存在,對於app來說調了一個不存在的接口)

charles做如下配置:

 

然后重啟app,查看接口請求情況,看到實際請求了我們轉發的172.31.0.158:8080接口,而不再請求域名XXX 接口,下面圖片能看到 

至此,Map Remote 功能配置完成。

 

Map Local的使用場景,要驗證接口返回數據的各種場景。正常流程是配置系統配置數據,或者產品配置配置產品。Map Local可以輕易改變請求接口的返回數據。

以下面的接口為例:

{
    "success": true,
    "errorCode": 710000,
    "msg": "OK",
    "data": {
        "successFlag": true,
        "imageZipUrl": "http://10.10.33.144/fb2/t2/group1/M00/00/59/CgohkFhZ9V-CidqAARAhOcRJ4cAAAAqgKGEzIABECc993.zip",
        "imageZipMd5": "fe222cb5fa6fa915524ba9f73fb3c3de",
        "startTime": "2016-12-23 08:55:00",
        "endTime": "2016-12-29 15:00:00"
    }
}

設定環境:

1.這個接口來源是athena,還在開發中,接口數據是寫死的,沒法改變。

2.即使 后台和接口都是好的,需要的數據都要在 athena 配置,每次配置生效,等緩存時間過期,都很耗費時間。

3.imageZipMd5 athena 不能隨意配置,測試場景需要非法的 imageZipMd5 ,沒法通過配置實現。

這是正常的接口返回,現在要 successFlag 改成false 或者 imageZipMd5 改變,時間失效等等數據改變組合。

還是要上面的接口:

http://172.31.0.158:8080/portal/home/pullRefresh?d={}&c={"cc":1602,"ct":20,"dt":1,"ov":14,"p":14584,"v":"9.0.5"}

默認數據就是上面列出的,現在配置 Map Local

1.先本地創建一個文本,比如 json.txt。里面內容復制上面json數據,並且改變 imageZipMd562cddce134c9625896b361137bfabe4e

{
    "success": true,
    "errorCode": 710000,
    "msg": "OK",
    "data": {
        "successFlag": true,
        "imageZipUrl": "http://10.10.33.144/fb2/t2/group1/M00/00/59/CgohkFhZ9V-CidqAARAhOcRJ4cAAAAqgKGEzIABECc993.zip",
        "imageZipMd5": "62cddce134c9625896b361137bfabe4e",
        "startTime": "2016-12-23 08:55:00",
        "endTime": "2016-12-29 15:00:00"
    }
}

2.配置 Map Local Map To 鏈接到本地的 json.txt文件

重啟app 再次請求接口,接口返回數據  imageZipMd5 已經變成本地文件 json.txt的值。現在可以隨意修改 json.txt 里面的內容,覆蓋很多場景,節省測試的驗證時間。

至此,Map Local 功能配置完成。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM