做前端测试,基本要求会抓包,会分析请求数据包,查看接口是否调用正确,数据返回是否正确,问题产生是定位根本原因等。
第一篇介绍Fiddler代理,如果APP不支持代理,则不适用;第二篇介绍的Tcpdump抓包,虽强大但不能实时抓包。能否有方法既能抓到所有的包,又能实时查看呢?大家会想到路由抓包,对,介是一个非常好的思路,但公司网络通常不支持,或者你是没有权限的,或者就数据量庞大,哈哈...那我们变通一下,本文主要以此为思路介绍抓包方法。
1、抓包原理
一句话:在关键数据出入口,进行监控。本文以笔记本设置Wifi共享,监控虚拟Wifi进出数据。
2、方法优劣
[优点]:1).可抓任何通过此Wifi的终端上网数据2).实时抓包
[缺点]:1).需要Win7笔记本电脑2).电脑需要安装Wireshark或其他抓包工具
3、准备工作
笔记本开启WiFi共享
如本文介绍不够细致到位,还请谷歌、百度等自行脑补。
2). 查看笔记本无线网卡是否支持承载网络
运行命令:netsh wlan show drivers#开启虚拟Wifi,密码为ILoveYou运行完后会有一行显示“支持的承载网络:是(如果支持显示为:是)”;如果为“否”,则请略过本文。
3).启用并设定虚拟WiFi网卡
运行命令:netsh wlan set hostednetwork mode=allow ssid=Findyou key=ILoveYou #开启虚拟Wifi,密码为ILoveYou此命令有三个参数:mode:是否启用虚拟WiFi网卡,改为disallow则为禁用。
ssid:无线网名称,最好用英文(以Findyou为例)。key:无线网密码,八个以上字符(以ILoveYou为例)。
以上三个参数可以单独使用,例如只使用以下命令就可以直接禁用虚拟Wifi网卡;运行命令:netsh wlan set hostednetwork mode=disallow开启成功后,网络连接中会多出一个网卡为“Microsoft Virtual WiFi Miniport Adapter”的无线连接2
为方便起见,将其重命名为虚拟WiFi。若没有,只需更新无线网卡驱动就OK了。
在“网络连接”窗口中,右键单击已连接到Internet的网络连接,选择“属性”→“共享”,勾上“允许其他······连接(N)”并选择“虚拟WiFi”。
确定之后,提供共享的网卡图标旁会出现“共享的”字样,表示“宽带连接”已共享至“虚拟WiFi”。
运行命令:netsh wlan start hostednetwork #将start改为stop即可关闭该无线网,以后开机后要启用该无线网只需再次运行此命令即可至此,虚拟WiFi的红叉叉消失,WiFi基站已组建好,主机设置完毕。笔记本、带WiFi模块的手机等子机搜索到无线网络Findyou,输入密码ILoveYou,就可以共享上网啦!
4、实例
1).开启Win7笔记本连网,并开启Wifi共享
运行命令:netsh wlan start hostednetwork #开启虚拟Wifi注:可以存为Bat文件,下次直接右击以管理员身份运行即可。
2). 手机连上共享的Wifi
3).开启Wireshark,选择虚拟Wifi
4). 操作APP,生成请求数据
5).分析Wireshark抓包数据
5、总结
通过以本文,可以拓展很多模式,笔记本加无线路由等等,通过三篇介绍抓包方法,相信大家都有完整的思咱与方法,抓包介绍就此告一段落。
说说题外话,由此大家可以如果有心人在公共场所架设一个免费Wifi,如果在传输过程中存在明文密码,那么基本就沦陷了,所以在测试APP等产品时,需要关注传输加密,避免传输过程中是否使用明文、密码加密规则是否过于简单等(例仅MD5加密,每次传都一样,跟明文其实没多大区别),当然这仅仅是测试的一个方面。希望此文能给大家一定收获。
via.http://www.cnblogs.com/findyou/p/3491065.html