基於應用場景聊聊charles

在我從開發web變成開發wap以後,wap上的調試沒有之前那麼方便了,然而有個工具對我在調試的幫助很是大,那就是charles(或者finder)。前端


除了開發以外,測試大佬在測試wap的時候用charles也是很好用的,在不少時候,測試反饋了一些問題以後,開發要作的不少時候就是手機連上代理,而後按照測試大佬說的操做場景去復現,固然也會關注charles裏面的信息,例如:android

1.靜態資源是否有緩存
2.是否由於接口數據返回的問題,這個時候就能肯定是本身的問題仍是後端接口的問題

1.代理手機看請求
查看ip(直接用終端查也是能夠了,ipconfig[win系統] 或者 ifconfig[mac能夠用這個]),


默認端口是 8888

若是 8888 端口被佔用的話,那麼能夠proxy settings 面板調整portios


在設置好代理以後,就能夠用手機來鏈接代理了,在手機鏈接代理後會彈窗提示要不要容許連代理,點擊allow按鈕,贊成鏈接。



2.在代理手機以後,在抓請求的時候,會遇到https請求的話抓取不了的問題,是提示「unknow」,具體表現以下:


那麼這時候要作的有兩步,
a.給手機安裝證書;




直接在手機自帶瀏覽器上輸入 chls.pro/ssl 就能夠了,根據不一樣的系統,安裝證書的步驟也有點區別

android:(小米安裝不了,這個後期會整理一下看有沒有其餘辦法,並且android在系統升級了以後,也有可能安裝證書的方式變了,例如我自個的榮耀機子)web

->打開自帶瀏覽器,輸入chls.pro/ssl,進行證書下載
->根據提示,安裝證書,應該須要輸入鎖屏密碼,若是沒有密碼的話,須要設置以後才能安裝
ios:
->打開Safari,輸入chls.pro/ssl,進行證書下載
->提示安裝
->安裝成功後,
進入 設置
->關於手機
->證書權限,打開對應的證書信任開關

b.設置SSL Proxying



在 SSL Proxying 面板添加對應的設置。這裏提一下,若是是寫指定的域名的話,那麼可能每有一個https的域名,你都得添加一次,有一種能夠偷懶的方法,那就是直接添加一條


作完上面這兩步以後,你就能夠愉快的經過手機代理進行抓請求了。(這個時候其實也有可能會出現請求是 unknown的一個狀況,例如域名自己的證書過時,或者像andoid在打包的時候選擇的sdk是android 6.x 的版本,會發現抓不了https,須要客戶端的同事在debug包作些處理。)

如今已經能夠抓請求調試了,可是光是這樣仍是知足不了平常的一些調試場景,例若有時候在修復bug的時候每次都得打包好靜態資源,而後上傳到對應的環境,而後再進行驗證,若是驗證有問題的話,還得重複這樣去操做,這樣是很費時間的。(比較有些項目只能是在特定的環境調試,沒辦法在本地調試)json

3.靜態資源代理


這裏的方式有兩種
a.Map Remote 指定對應連接目錄,例如


把全部https://xxxx.com/static/下面的資源,直接訪問到 http://192.168.10.17:8080/dist/下面對應的資源,能夠經過這種方式在本地去調試。

b.Map Local 指定對應本地目錄,例如


把全部https://xxxx.com/static/下面的資源,直接訪問到本地目錄下面對應的資源。

上面的這種主要的應用場景有兩個
1.代理到本地資源,方便調試bug
2.在測試環境被佔用,且只是前端的測試環境被佔用,那麼能夠經過以上方式來達到測試的效果,固然到最後,確定也是要在正式環境裏面過一遍的。

4.接口數據更改
有時候在測試的時候,須要測一下接口返回特殊數據的狀況,並且是比較難以達成的條件,例如,等級要到達9999級的時候才觸發,這時候有個方法就是直接修改接口返回對應特殊的數據來測試。

在左邊請求顯示欄目,右鍵,而後點擊 breakpoints ,斷點這個請求


當第二次請求的時候,就會來到這個界面,編輯request信息,點擊 execute,進入下一步


點擊編輯 editResponse
後端


這個時候直接修改json,再次點擊 execute 就完成了請求。返回結果



後面再繼續補充。有錯誤的地方,歡迎指點。
相關文章
相關標籤/搜索