PC客户端、移动端、web端如何使用Fiddler和Wireshark抓取http和rpc接口网络包

因业务测试过程中每个功能的测试基本都离不开抓包看http和rpc接口请求和返回结果,且PC客户端和移动端无法像web端一样可直接F12查看接口入参和回参,所以如下整理了PC客户端、移动端、web端如何使用Fiddler和Wireshark抓取公司PHP和C++发送的网络协议包:
一、Fiddler工具介绍:
** 1、什么是Fiddler:**
Fiddler是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一,它能够记录客户端和服务器之间的所有HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大。

** 2、Fiddler常用功能说明:**
(1)、界面工具栏使用说明:
1.Fiddler的菜单栏:包括捕获http请求,停止捕获请求,保存http请求,加载本地session、设置捕获规则等功能。
2.Fiddler的工具栏:包括Fiddler针对当前view的操作(暂停,清除session,decode模式、清除缓存等)。
3.web Session面板即抓取到的HTTP接口请求url,主要是Fiddler抓取到的每条http请求(每一条称为一个session),主要包含了请求的url,协议,状态码,body等信息,详细的字段含义,详细如下图
4、 inspector面板下,提供headers、textview、hexview,Raw等多种方式查看单条http请求的请求报文的信息,详细如下图:

5、http接口请求的header头信息,如下图:

6、http接口请求的入参和回参如下图中的WebForms,其中Querystring为请求参数,Body为回参,Json为返回报文:

7、Filter过滤器,Filter标签则可以设置Fiddler的过滤规则,来达到过滤http请求的目的。如可过滤内网http请求而只抓取internet的http请求,或则过滤相应域名的http请求:

8、MOC数据(模拟接口返回数据),例如模拟接口关注房间数量50万,此时即只需要在接口Json文件中修改关注字段为50万,并保存在本地,在Fiddler如下AutoResponder中增加需要模拟的URL接口,并选择保存在本地的Json文件,勾选启用即可,如下图:

** 二、HTTP接口抓包方法示例:**
例如,抓取斗鱼请求的PHP关注http接口:
**1、PC客户端使用Fiddler抓取HTTP接口方法: **
(1)、PC客户端使用Fidder抓取http接口需环境:
本地需要安装Fiddler和Proxifier(代理本地IP)
Proxifier成功安装后,需要设置如下内容才能成功抓取PC客户端应用程序包:
1)、在配置文件->代理服务器,添加本地电脑IP+端口(默认8888)并选取接口请求类型,例如目前公司内网使用HTTP,并确认,如下图;

2)、在配置文件->高级,右键选择“HTTP代理服务器”,启用HTTP代理服务器支持,如下图:

(2) 、成功设置以上Proxifier后,打开斗鱼PC客户端,登录后点击关注,即可成功抓取到斗鱼PC客户端http接口请求包,如下图抓取到的关注接口:

**2、移动端使用Fiddler抓取HTTP接口方法: **
如下以IOS手机举例,Android手机相同设置方法:
(1)、在手机设置中,连接公司内网wifi如ZMR_Test;

(2)、成功连接公司内网wifi后,点击设置代理,如选择手动,设置fiddler所在电脑IP,端口默认8888

(3)、再在手机打开Safari浏览器,输入Fiddler安装电脑IP和默认端口8888,例如输入本机电脑10.112.22.143:8888,并确认,在打开的页面点击选择“FiddlerRootCertificate”证书并点击安装,如下图,(不知为何上传的图片不显示只显示了个链接)

(4)、安装成功后,提示如下图:

(5)、此时即可在手机中打开斗鱼APP,即可发现,所有的http请求均能在电脑的Fiddler中抓取到,如下图:

**3、web端使用Fiddler抓取HTTP接口方法: **
(1)、通常web端使用Fiddler抓取http接口请求包时,只需打开Fiddler,打开浏览器无需绑定代理,可直接打开Fiddler进行抓包使用,如下图:

** 二、抓取C++发送的TCP协议包方法示例:**
因Fiddler只适用于抓取http接口请求,无法抓取TCP流,但Wireshark可同时抓取http和tcp流,能同时满足业务测试需求,但因测试过程中抓取http接口比较多,且wireshark界面操作不如Fiddler方便,故目前来说一般抓取http接口适用Fiddler,抓取C++的TCP协议适用Wireshark:
** 1、PC客户端和web端使用Wireshark抓取C++的TCP协议方法:**
(1)、在windows系统中启动Wireshark,双击以太网(windows下无需设置代理):

(2)、成功启动Wireshark后,点击录制,录制中的状态为如显示红色,即可打开斗鱼PC客户端或者网页访问斗鱼,例如想抓取进入直播间时,C++发送的鱼丸值Silver,即可直接进入直播间,并返回Wieshark,输入命令“tcp contains silver”回车,即可显示对应抓取到的silver协议相关接口,如下图所示:此时,点击右键,选择追踪流->Tcp流;

(3)、右键,选择追踪流->Tcp流,即可打开如下,查看C++是否有发送鱼丸silver消息,以及发送的数值

** 2、移动端(以IOS为例)使用Wireshark抓取C++的TCP协议方法:**
(1)、在MAC中,用USB线连接IOS手机,并打开Xcode,复制IOS手机的udid,再打开终端(terminal),在终端输入rvictl -s udid如下图,成功创建虚拟网卡:

(2),而后,即可启动wireshark并双击riv0端口,成功进入抓包状态,可启动手机中的斗鱼APP并进入直播间抓取C++发送的鱼丸消息Silver,输入命令“tcp contains silver”回车,即可显示对应抓取到的silver协议相关接口,如下图所示:此时,点击右键,选择追踪流->Tcp流;

(3)、右键,选择追踪流->Tcp流,即可打开如下,查看C++是否有发送鱼丸silver消息,以及发送的数值

以上为Fiddler和wireshark基本常用的操作方法,很浅的介绍,但能满足当前业务使用需要,当然Wireshark的功能非常之强大,指示有限,就先写这么多啦,后续不断学习中。。。

猜你喜欢

转载自blog.csdn.net/weixin_42279304/article/details/80916296