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