1. 程式人生 > >推薦2個工具

推薦2個工具

charles

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根證書:

技術分享圖片

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

技術分享圖片

安裝完成後,可以在安全設置中查看到這個證書:

技術分享圖片

第三步,開啟SSL代理

技術分享圖片

技術分享圖片

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

技術分享圖片

抓取Websocket請求

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

技術分享圖片

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

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

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

技術分享圖片

找到使用的網絡名,點進去設置,設置為charles的地址地址和端口:

技術分享圖片

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

技術分享圖片

其他功能介紹

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

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

感興趣的可以查看這篇文章了解:傳送門

Postman

Postman是一種網頁調試與發送網頁http請求的應用,可以用來很方便的模擬get或者post或者其他方式的請求來調試接口。

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

環境管理

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

技術分享圖片

技術分享圖片

技術分享圖片

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

技術分享圖片

Collections

可以保存我們的請求,不用打開都重新設置請求地址和參數了:

技術分享圖片

工作空間

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

技術分享圖片

抓取瀏覽器的請求

可以自動映射到參數、cookie信息,對應需要登錄後調用的接口,可以現在瀏覽器登錄,通過抓取,就可以自動設置cookie信息了。

第一步,Postman開啟代理端口:

技術分享圖片

第二步,瀏覽器設置代理為第一步開啟的端口:

技術分享圖片

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

技術分享圖片

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

技術分享圖片

推薦2個工具