手机软件测试中,网络测试是很常见的,所以查看和修改请求与返回数据是基础。本文介绍如何查看网络请求,以及如何搭建环境,后续再介绍修改请求数据以及更多应用。 下面介绍三种独立的方法。 1、使用fiddler Fiddler是强大且好用的Web调试工具之一,它能记录客户端和服务器的http和https请求,允许你监视,设置断点修改输入输出数据。 1、配置fiddler允许被远程连接: 在一台windows机器上安装并打开fiddler,然后在fiddler options中勾选如下截图中红框中的复选框,并设置上面的端口号,默认为8888:
2、配置手机端wifi代理 在手机的wifi设置中,修改当前连接的wifi配置,里面会有代理服务器的设置,然后设置好fiddler所在机器的IP和端口8888(注意,fiddler所在机器和手机必须在一个局域网内)。
3、然后手机的网络交互信息可以在fiddler中看到了: 优缺点: 1、环境搭建方便快速,数据查看直观,可以进行后续的修改上传和返回数据 2、只能在wifi环境下使用 2、修改hosts、到服务器上查看log 当需要抓包移动网络下的数据时,上面的方法无效了,因为手机直接连接的是移动网、然后直接到达所需的服务器,中间无法架起WIFI桥梁进行抓包处理。此时可用如下方法: 修改系统hosts文件,把要检查的服务器域名指向测试ip,之后可以到测试服务器上查看log了。 优缺点: 1、可以在任意环境下使用,包括移动网和wifi网 2、只能抓到指定域名(配置好hosts的域名)的log,无法像fiddler那样全部抓取 3、必须有搭建好的http测试服务器才行 4、如果移动网下,被指向的测试ip必须是公网ip 5、手机必须root 3、使用tcpdump 使用Linux底层抓包工具tcpdump,它可以抓取所有从Android发出的网络信息,不限于http、ftp等。方法如下: 前提条件: 1、手机需要root 2、电脑上安装WireShark(一款网络抓包工具),用于log分析 步骤: 1、把tcpdump传进手机,原则上任意路径均可,例如/data/local 2、修改tcpdump的权限为6755(使用任意文件工具,例如re、es): (其实7777也没问题,但为了避免权限过滥,还是限制一下的好)
3、执行抓包: 连上adb后,运行 adb shell cd/data/local/ ./tcpdump-p-vv-s 0-w/sdcard/capture.pcap 这样抓包开始了,并把log存入/sdcard/capture.pcap 4、执行网络操作,于是log写入了;待网络操作完毕后,按ctrl+c中止 5、把log文件拷贝到电脑上,用WireShark打开,能看到各种网络交互了。 优缺点: 1、可以在任意环境下使用,包括移动网和wifi网 2、只能查看请求数据,无法进行修改 3、手机必须root