出處: https://www.cnblogs.com/findyou/p/3491035.html
前言
做前端測試,基本要求會抓包,會分析請求數據包,查看接口是否調用正確,數據返回是否正確,問題產生是定位根本原因等。學會抓包分析是測試人員必備的功課之一。最先想的基本上都會是Fiddler代理抓包,但Fiddler有局限,如果APP不支持代理呢?比如郵箱是Imap協議呢?好吧,我們換個思路,安卓是基於linux,那麼linux的抓包工具命令是不是也能試用呢?本文主要對tcpdump進行抓包舉例。
[目錄]
1、抓包原理
tcpdump(需Root用戶運行) 攔截和顯示發送或收到過網絡連接到該機器的TCP/IP和其他數據包。簡單說就監控手機進出網絡數據。
不明覺歷啊….
官方網站: http://www.tcpdump.org (Android手機適用的另處下載)
2、方法優劣
3、安裝準備
a.目前Root工具很多,隨便下個操作一下即可,都傻瓜式的。比如什麼刷機精靈、360一鍵ROOT、百度等等
b.解壓下載的文件,再配置環境變量即可,具體請問谷哥或度娘,不再另做說明。
4、工具安裝
1).Android手機USB連接電腦,打開Windows命令提示符窗口;
2).檢查手機連接是否正常;
adb devices #檢查手機是否已連接*執行記錄*:
注1:已檢查到手機連接正常
問題1:adb devices不可用 解決:檢查環境變量是否配置正確。
問題2:檢不到手機為空 解決:1、驅動是否安裝;2、如有裝騰訊手機管家,把tadb.exe進程給卡擦掉。
3).adb shell 進入手機修改 /data/local/ 目錄的權限為所有用戶可寫;
adb shell #登入手機su #切換Root用戶chmod 777 /data/local/ #修改目錄權限,修改後Ctrl+C退出adb shell
4).將tcpdump程序copy至android手機;
adb push E:\tcpdump /data/local/ #tcpdump文件存放在E盤根目錄,/data/local/為手機目標路徑
5).進入手機修改tcpdump權限,增加可執行權限;
adb shell #登入手機su #切換Root用戶chmod 777 /data/local/tcpdump #增加可執行權限*執行記錄*(第3步至第5步)
注:/data/local/為了安全起見,建議把權限改回原先權限
5、實例
二期測試時,APP已不支持代理,抓不到數據包,測試無法準確知道是服務器問題還是APP問題,此處省略N字…以表對研發的詛咒。開玩笑的,大家目的都是為了版本質量提高,更加完善。下文以登錄為例,進行演示。
1).連接手機,切換Root用戶,執行抓包命令
adb shell #登入手機su #切換Root用戶/data/local/tcpdump -p -vv -s 0 -w /sdcard/ThinkDrive.pcap #執行抓包命令,結果保存到SD卡ThinkDrive.pcap文件中
2).APP操作,生成請求數據
注:如果操作完成,不需要再抓包,則按Ctrl+C中斷抓包退出
3). 導出抓包結果至電腦
adb pull /sdcard/ThinkDrive.pcap E:/ #前為手機中文件及存放路徑,後為電腦E盤根目錄
4). 使用Wireshark等工具分析抓包文件ThinkDrive.pcap
注: Wireshark工具使用請Google或百度