手机软件测试中,网络测试是很常见的,所以查看和修改请求与返回数据是基础。本文介绍如何查看网络请求,以及如何搭建环境,后续再介绍修改请求数据以及更多应用。
  下面介绍三种独立的方法。
  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