在测试中,常常须要验证发送的消息是否正确,或者在出现问题的时候,查看手机客户端发送给server端的包内容是否正确,就须要用到抓包工具,并且咱们手机客户端和server端通信比较经常使用的是http方式,因此针对其通信特色,经常使用的抓包工具备Fiddler、Wireshark这两种,下面分别介绍下两个抓包工具的用法。html
官网:http://fiddler2.com/正则表达式
当启动fiddler,程序将会把本身做为一个代理,因此的http请求在达到目标服务器以前都会通过fiddler,一样的,全部的http响应都会在返回客户端以前流经fiddler。图例以下:服务器
测试手机应用,首先要明白他的消息的交互cookie
A.手机客户端发请求给server网络
B.Server端返回结果给手机客户端。这是一个交互app
C.手机客户端向server端发送确认消息,这时候server端收到客户端发送的确认消息,不须要再作任何处理。工具
下载地址:http://fiddler2.com/get-fiddler测试
Tools->Fiddler Options优化
选择Connectionsurl
使用fiddler捕获https会话
默认状况下,fiddler是不会捕获https会话的,因此须要自行设置下。启动软件,点击tools->Fiddler Options,在弹出框选择“HTTPS”,以下页面,将捕获HTTPS链接这一项前面全打钩,点击ok便可操做成功。
Capture HTTPS CONNECTs:捕获https链接
Decrypt HTTPS traffic:解密HTTPS通讯
Ignore servercertificate errors:忽略服务器证书错误
设置手机代理,ip为电脑的ip,端口为:8888
具体设置方法:略
手机操做被测app,fiddler就会收到app发送的消息,咱们能够分析app发送的消息和返回的结果,来发现一些问题。
收集消息的时候,要对fiddler功能有所了解,下面介绍下fiddler工具各个功能模块。
1)fiddler的基本界面
首先介绍下fiddler基本界面。
Inspectors tab下有不少查看Request或者Response的消息。其中Raw Tab能够查看完整的消息,Headers tab 只查看消息中的header. 以下图
2)filter的http统计
经过fiddler会话列表中会显示捕获的全部的http通讯量,并以列表的形式展示出来,点击你想查看的一个或者多个会话,再点击右边的“Statistics”菜单,你就能够很轻松的查看到请求数、发送字节数等信息。若是你选择第一个请求和最后一个请求,还能够得到页面加载所消耗的整体时间,还能够从图表中分辨出哪些请求耗时最多,从而能够对页面的访问速度进行优化
3)Fiddler中设置断点修改Request(目前没有用到该功能)
Fiddler最强大的功能莫过于设置断点,设置好断点后,你能够修复httpRequest的任何消息包括host,cookie或者表单中的数据。设置断点有两种方法。
第一种:打开fiddler点击Rules->Automatic Breakpoint->Before Requests(这种方法会中断全部的会话)
消除办法:点击Rules->Automatic Breakpoint->Disabled
第二种:在命令行中输入命令:bpu www.taobao.com(这种方法只会中断www.baidu.com)
消除办法:在命令行中输入bpu
固然fiddler中也能修改Response
第一种:打开Fiddler点击Rules->Automatic Breakpoint->After Respinse(这种方法会中断全部的会话)
消除办法:点击Rules->Automatic Breakpoint ->Disabled
第二种:在命令行中输入命令:bpafter www.taobao.com(这种方法会中断www.taobao.com)
消除办法:命令行中输入命令bpafter
修改Response方法:
选择Rules-> Automatic Breakpoint->After Respinse,手机点击操做,发送query。
选中左区的query,点击右边的Raw,修改Raw里面的返回结果,运行“Run to Completion”
这种方法是比较简单的修改Response的方法
优势:
1) 简单易操做,选中后便可修改Response结果
2) 所见即所得,修改后立刻能够看到效果
缺点:
1) 只适用于一次请求,下次请求须要从新设定
2) 手动修改须要花费时间,若是程序等待超时,本次设定的Response结果失效
还有一种是自动返回Response结果的方法,即选中query,在右边的按钮中点击AutoResponder,并设定query的规则,规则能够是一个文件,也能够是正则表达式,只要符合该规则,便可自动返回Response结果,Response能够是一个文件,也能够是正则表达式。具体你们能够本身去研究下。
能够设置过滤条件,过滤选定的域名,多个域名之间使用分号分隔
参考资料:
http://i.wanz.im/2013/04/30/debugging_http_request_with_fiddler/
http://help.locoy.com/Document/Url/Fiddler.htm
Wireshark是另一种抓包工具,这种工具比fiddler更强大,消息量更多。你们可能会问:有了fiddler,为何还要用wireshark呢?这里说下,在测试中,发现用fiddler抓包,有些包是没有抓到的,好比在验证反做弊信息的时候,反做弊pingback信息的消息用fiddler就没抓到,用wireshark就抓到了。还有另一种状况,就是在验证cna的时候,若是先用fiddler抓包,若是没有种下cna的时候,之后就永远没有cna了,状况很诡异。解决办法就是把包卸载了从新安装,第一次用wireshark抓包。
Wireshark配置起来比fiddler麻烦一些,若是不配代理,须要安装个Connectify来创建热点,而后再安装wireshark进行抓包,若是配置了代理,直接安装wireshark便可。
下载地址:http://www.pc6.com/softview/SoftView_63986.html
安装wireshark,傻瓜式安装。
打开wireshark,界面选择抓包的接口,以下图(是按照个人电脑操做来展示的,可能每一个人电脑上的接口列表不太同样):
点击接口,进入抓包界面,以下图:
Wireshark抓的包信息量很大,须要进行一些过滤操做,才能把有用的信息拿到,红色标注部分输入过滤规则,便可过滤出咱们须要的一些信息。
Wireshark的过滤规则,使用的是正则表达式来写的。具体可参考:http://wenku.baidu.com/link?url=lpU_NJguXVsiZ1YMTz13b_ngl2xNE--CFh8xChvc5QjisTFV4VhX65ID4TvX5WuaHLX7hRwMfEgTKylnUAdtaOF3rkVF_JfXoEDxjlTgq7i
举例,若是想过滤域名为“mclick.simba.taobao.com”,能够设置以下过滤表达式
过滤host:http &&http.host==”mclick.simba.taobao.com”
若是须要不使用代理,须要创建热点来用wireshark进行抓包。
创建热点须要用到Connectify。
下载地址:
http://softdownload.hao123.com/hao123-soft-online-bcs/soft/C/2013-08-27_ConnectifyInstaller.exe
傻瓜式安装
根据提示:设置网络名称;网络密码等
配置wireshark,选择网卡
手机链接到配置的connectify配置的网络上,输入密码,便可把电脑做为热点,手机链接到指定的connectify