前言html
作前端測試,基本要求會抓包,會分析請求數據包,查看接口是否調用正確,數據返回是否正確,問題產生是定位根本緣由等。 學會抓包分析是測試人員必備的功課之一。 最早想的基本上都會是Fiddler代理抓包,但Fiddler有侷限,若是APP不支持代理呢?好比郵箱是Imap協議呢?好吧,咱們換個思路, 安卓是基於linux,那麼linux的抓包工具命令是否是也能試用呢?本文主要對tcpdump進行抓包舉例。
[目錄]前端
一、抓包原理linux
二、方法優劣android
三、安裝準備shell
四、工具安裝安全
五、實例服務器
tcpdump(需Root用戶運行)攔截和顯示發送或收到過網絡鏈接到該機器的TCP/IP和其餘數據包。簡單說就監控手機進出網絡數據。 網絡
不明覺歷啊....tcp
官方網站: http://www.tcpdump.org (Android手機適用的另處下載)
a.目前Root工具不少,隨便下個操做一下便可,都傻瓜式的。好比什麼刷機精靈、360一鍵ROOT、百度等等工具
b.解壓下載的文件,再配置環境變量便可,具體請問谷哥或度娘,再也不另作說明。
1).Android手機USB鏈接電腦,打開Windows命令提示符窗口;
2).檢查手機鏈接是否正常;
adb devices #檢查手機是否已鏈接*執行記錄*:
注1:已檢查到手機鏈接正常
問題1:adb devices不可用 解決:檢查環境變量是否配置正確。
問題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/爲了安全起見,建議把權限改回原先權限
二期測試時,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或百度
轉載請註明出處:Findyou