推薦2個前端工具:Charles和Postman

情情說發表於2018-04-30

5.1假期第二天,依然窩在家裡,不過今天來客了,我的好朋友「曉哥」來看小寶,中午喝了點,各自「吹噓」了一陣,聊聊各自職業的發展,工作中遇到的問題,以及對未來的規劃。

他現在發展的特別好,在一家近千人開發的公司,主管北京地區的業務,包括需求洽談、研發、專案推進和驗收等,公司業務是為多家銀行做app端,和我分享了他在管理上的一些經驗,真心為他高興,祝越來越好。

話題一轉,說說今天的主角:2個工具,一個是抓包工具Charles,一個是API除錯工具Postman。前幾天,嘗試使用Charles抓取 Websocket 的訊息,折騰了好久才成功,Postman也一樣,安裝了app版本,也遇到了一些問題,想把過程分享給需要的朋友。

Charles

Charles是一個HTTP代理/HTTP監視器/反向代理,它允許開發人員檢視他們的機器和Internet之間的所有HTTP和SSL/HTTPS通訊,包括請求、響應和HTTP頭(包含cookie和快取資訊)。

基本原理就是將自己作為代理伺服器,瀏覽器、手機app等客戶端進行代理設定,配置成Charles監聽的埠,客戶端將請求發給Charles,Charles再將請求傳送給真正伺服器,結果返回時,由Charles轉發給瀏覽器、手機等客戶端。

下面說明各種協議的請求抓取,環境如下:

  • 使用Android手機作為客戶端,模擬傳送各種請求;
  • 在Mac電腦上安裝Charles應用程式,作為代理伺服器;
  • 抓取小米商城app的各種請求;
  • 保證Android、Mac連線同一個網路;
配置

第一步,Charles代理設定,只要設定下埠即可:

開啟代理設定

代理埠設定

第二步,配置手機Wifi代理(每個手機不同):

手機代理設定

選擇手動代理,主機名為mac的ip地址,埠號為第一步配置的埠,配置完成後,mac端會提示允許接入,選擇Allow即可:

是否允許接入

這樣小米商城app的一些請求,就可以檢視到了:

小米商城請求

抓取HTTPS請求

要抓取HTTPS請求,需要配置證書,過程如下:

第一步,在mac上安全charles根證書:

mac上安裝根證書

第二步,儲存charles根證書為cer格式,傳送到手機,安裝證書:

儲存根證書

安裝完成後,可以在安全設定中檢視到這個證書:

安裝後的證書

第三步,開啟SSL代理

開啟ssl代理設定

ssl代理設定

這樣設定之後,就可以抓取https請求了,內容也不會亂碼了:

抓取https請求

抓取Websocket請求

3.11版本之後,開始支援websocket抓取,如下:

推薦2個前端工具:Charles和Postman

不知道什麼原因,使用上面wifi代理配置,無法抓取到websocket請求,查了很多文章都沒有成功,最後,看到一句話:有些協議不會經過wifi代理,就想到使用全域性代理app,應該會支援websocket協議,最後驗證是可以的。

我選擇了drony代理app,使用其他代理app應該也可以,首先,配置代理伺服器,和之前類似:

進入setting選項卡,選擇Wi-Fi:

Wi-Fi選項

找到使用的網路名,點進去設定,設定為charles的地址地址和埠:

Drony網路設定

這樣設定後,就可以抓取到websocket請求了:

抓取websocket請求

其他功能介紹

還可以提供以下功能,這裡就不展開說了,網上也有很多資料:

  • 模擬慢速網路;
  • 修改網路請求內容,多次傳送請求;
  • 給伺服器做壓力測試;
  • Map功能,可以將app請求到測試環境;
  • Breakpoints功能,當指定的網路請求發生時,Charles會截獲該請求,可以在Charles中臨時修改網路請求的返回內容;

感興趣的可以檢視這篇文章瞭解:傳送門

Postman

Postman是一種網頁除錯與傳送網頁http請求的應用,可以用來很方便的模擬get或者post或者其他方式的請求來除錯介面。

之前一直使用Chrome app版本,最近這個版本不維護了,提示使用應用程式版本,這個工具使用比較簡單,我就說說我覺得比較棒的功能。

環境管理

系統都有測試環境和線上環境,請求url肯定不一樣,一些引數也可能不一樣,可以通過切換不同的環境,動態變化,這樣只需配置一次url和引數即可。

環境管理1

環境管理2

環境管理3

通過上面的設定,就可以在url配置中使用環境變數了:

環境管理5

Collections

可以儲存我們的請求,不用開啟都重新設定請求地址和引數了:

Collections

工作空間

新版本提供了工作空間的功能,可在不同的專案中切換:

工作空間

抓取瀏覽器的請求

可以自動對映到引數、cookie資訊,對應需要登入後呼叫的介面,可以現在瀏覽器登入,通過抓取,就可以自動設定cookie資訊了。

第一步,Postman開啟代理埠:

開啟代理埠

第二步,瀏覽器設定代理為第一步開啟的埠:

瀏覽器設定代理

我使用瀏覽器外掛SwitchyOmega進行了設定,這樣在瀏覽器中訪問網站,就會在Postman的History中顯示了:

抓取的請求

歡迎掃描下方二維碼,關注我的個人微信公眾號,分享我的工作、學習和生活 ~

情情說

相關文章