前言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