強大的Charles的使用以及Mock數據 for iOS & (牛逼的)測試工程師

安裝軟件

百度搜索charles,第一個地址官方連接了:www.charlesproxy.com,下載安裝即可。json

設置網絡,進行抓包

  • 將移動設備和電腦設備設置爲同一個網絡,即鏈接同一個Wi-Fi。
  • 利用電腦查詢IP地址,以下圖:

  • 或者經過Mac的終端查詢,打開終端,輸入ifconfig,以下圖:

  • 設置移動設備的網絡代理模式 進入鏈接的無線網的高級模式,上滑倒最底層,進入HTTP代理模式,而後選擇手動,並在服務器中填寫本身查到的IP地址,而後在端口中填寫8888,最後存儲設置。

  • 而後用手機打開你要抓包或者mock的App,電腦端會顯示一個彈窗,而後選擇 allow

再進行手機操做,每一個請求都會被攔截,使用Charles可查看。瀏覽器

證書配置,攔截HTTPS請求

對於https的請求,攔截的是亂碼,以下圖,須要作一些額外的操做。服務器

須要設置SSL Proxying Settings,將對應的域名以及端口添加進去,使用*:*便可,以下圖網絡

另外還有相關證書的配置,經過help->SSL Proxying去安裝證書,Mac與iPhone都要進行安裝而且信任,以下圖測試

配置電腦端證書,選擇install Charles Root Certificate,而後安裝,最後選擇始終信任url

配置手機端證書,選擇install Charles Root Certificate on a Mobile Device or Remote Browser,而後在手機瀏覽器裏輸入chls.pro/ssl下載,進行安裝。最後一步就是進入手機設置,通用->關於本機->證書信任設置,而後信任剛剛安裝的證書便可。3d

這樣就能夠成功的攔截https的請求。代理

Mock連接的數據

截取到連接的數據是這樣的: 調試

若是列表有不少的請求,能夠經過左下角的Filter:進行篩選code

方法一

首先要選擇出想要mock數據的接口,設置斷點

而後須要再次觸發訪問該接口。Charles會停留在斷點接口,提供一個Edit Requese頁,可提供修改參數以及請求類型、請求連接的校驗。

接着點擊Execute進行執行下一步,選擇JSON Text能夠看到斷點連接返回的參數,這個時候就能夠改動返回值的結果,以達到想要測試的目的。

好比這裏修改的是參數 "Community": "東方御花園一期",改爲 "Community": "測試Mock數據",執行Execute,即可看到下面結果(確保沒有請求超時)。

方法二

按照方法一的步驟,獲取到斷點連接返回的數據後,把數據源拷貝出來,本地新建一個JSON類型的文件,把返回的數據複製到該文件中。 具體步驟以下:

打開軟件Sublime Text

把數據源複製,而後選擇JSON類型,保存,以下圖:

把保存好的json文件放置在桌面,同時修改你要mock的數據,一樣這裏修改的是參數 "Community": "東方御花園一期",改爲 "Community": "測試Map Local"

在你須要調試的接口,右鍵有個Map Local

選擇你在本地提早寫好的json文件,而後點OK

最後再次觸發該請求便可。

以上是兩種方法Mock數據,我的感受第二種更方便一點,畢竟網絡請求通常都是會有超時狀況,若是Mock數據需改比較麻煩的話,會帶來不便。

最後若是須要取消斷點Breakpoint或者Map Local,能夠進行下面的操做。

限速

利用上面的小烏龜,能夠達到控制網速的效果,不過須要設置一下代理模式。 步驟以下:

進行網絡請求限制網絡時,可調節Download的相關參數;若是要限制上傳速度的話,可調節Upload的相關參數。

相關設置搞定之後,點擊OK進行保存,即可以進行各類弱網測試,此時你也會發現,小烏龜變綠了,貌似在睡覺,表示限制網絡了。

重寫功能

Charles的Rewrite功能很是強大,能夠重寫接口全部元素的內容,例如:header、host、url、path、query、param、response status、body。

首先選擇Tools->Rewrite,會彈出下面彈窗,選中Enable Rewrite以及點擊左下角的Add

具體須要重寫的對象,能夠在Location下點擊Add去添加。具體重寫操做可點擊右下側add按鈕進行添加。

當全部都添加完畢,點擊OK保存便可。

最後感謝好友 @倩楠 的幫助,讓我從陌生到了解的認識Charles

相關文章
相關標籤/搜索