在我们做接口测试的时候,经常需要验证发送的消息是否正确,或者在出现问题的时候,查看手机客户端发送给server端的包内容是否正确,就需要用到抓包工具。常用的抓包工具有fiddler、wireshark、httpwatch、 firebug等。

今天我们主要就来介绍一下fiddler、httpwatch和wireshark。


Fiddler是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888。

当启动fiddler,程序将会把自己作为一个代理,所以的http请求在达到目标服务器之前都会经过fiddler,同样的,所有的http响应都会在返回客户端之前流经fiddler。

Tips:默认情况下,fiddler是不会捕获https会话的。

  • Fiddler中设置断点修改Request

Fiddler最强大的功能莫过于设置断点,设置好断点后,你可以修复httpRequest的任何消息包括host,cookie或者表单中的数据。设置断点有两种方法。

第一种:打开fiddler点击Rules->Automatic Breakpoint->Before Requests(这种方法会中断所有的会话)

消除办法:点击Rules->Automatic Breakpoint->Disabled

第二种:在命令行中输入命令:bpu http://www.taobao.com(这种方法只会中断http://www.baidu.com)

消除办法:在命令行中输入bpu

  • 设置断点修改Response

当然fiddler中也能修改Response

第一种:打开Fiddler点击Rules->Automatic Breakpoint->After Respinse(这种方法会中断所有的会话)

消除办法:点击Rules->Automatic Breakpoint ->Disabled

第二种:在命令行中输入命令:bpafter http://www.taobao.com(这种方法会中断http://www.taobao.com)

消除办法:命令行中输入命令bpafter

修改Response方法:

选择Rules-> Automatic Breakpoint->After Respinse,手机点击操作,发送query。

选中左区的query,点击右边的Raw,修改Raw里面的返回结果,运行“Run to Completion”


Wireshark是另外一种抓包工具,Wireshark配置起来比fiddler麻烦一些,如果不配代理,需要安装个Connectify来建立热点,然后再安装wireshark进行抓包,如果配置了代理,直接安装wireshark即可。

Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。

网络管理员会使用wireshark来检查网络问题
软件测试工程师使用wireshark抓包,来分析自己测试的软件
从事socket编程的工程师会用wireshark来调试
听说,华为,中兴的大部分工程师都会用到wireshark
普通使用者使用Wireshark来学习网络协定的相关知识
WireShark 主要分为这几个界面

Display Filter(显示过滤器), 用于过滤

Packet List Pane(封包列表), 显示捕获到的封包, 有源地址和目标地址,端口号。 颜色不同,代表

Packet Details Pane(封包详细信息), 显示封包中的字段

Dissector Pane(16进制数据)

Miscellanous(地址栏,杂项)

使用过滤是非常重要的, 初学者使用wireshark时,将会得到大量的冗余信息,在几千甚至几万条记录中,以至于很难找到自己需要的部分。搞得晕头转向。

过滤器会帮助我们在大量的数据中迅速找到我们需要的信息。

过滤器有两种,

一种是显示过滤器,就是主界面上那个,用来在捕获的记录中找到所需要的记录

一种是捕获过滤器,用来过滤捕获的封包,以免捕获太多的记录。 在Capture -> Capture Filters 中设置


HttpWatch是强大的网页数据分析工具,集成在Internet Explorer工具栏。它不用代理服务器或一些复杂的网络监控工具,就能够在显示网页同时显示网页请求和回应的日志信息。甚至可以显示浏览器缓存和IE之间的交换信息。集成在Internet Explorer工具栏。

只需要选择相应的网站,软件就可以对网站与IE之间的需求回复的通讯情况进行分析并在同一界面显示其相应日志记录。每一个HTTP记录都可以详细的分析其 Cookies、消息头、字符查询等信息。支持HTTPS及分析报告输出为XML、CSV等格式。

使用方法:打开IE浏览器,选择菜单”查看-浏览器栏”,再选择”HttpWatch Professional”即可。

日志中有少量内容还是英文,汉化后会出错,故保留。提示:授权文件已经在根目录下的”httpwatch.lic”

为什么我喜欢用fiddler

抓包工具有很多,小到最常用的web调试工具firebug,达到通用的强大的抓包工具wireshark.为什么使用fiddler?原因如下:

Firebug虽然可以抓包,但是对于分析http请求的详细信息,不够强大。模拟http请求的功能也不够,且firebug常常是需要“无刷新修改”,如果刷新了页面,所有的修改都不会保存。
Wireshark是通用的抓包工具,但是比较庞大,对于只需要抓取http请求的应用来说,似乎有些大材小用。
Httpwatch也是比较常用的http抓包工具,但是只支持IE和firefox浏览器(其他浏览器可能会有相应的插件),对于想要调试chrome浏览器的http请求,似乎稍显无力,
而Fiddler2是一个使用本地 127.0.0.1:8888 的 HTTP 代理,任何能够设置 HTTP 代理为 127.0.0.1:8888的浏览器和应用程序都可以使用 Fiddler。

配套视频教学:https://www.bilibili.com/video/BV1kt4y197dw?p=71

为什么大家都在用Fiddler?的更多相关文章

  1. Fiddler抓包工具使用基础

    官网下载Fiddler Fiddler的官方网站:  www.fiddler2.com Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监 ...

  2. 浅谈HTTPS以及Fiddler抓取HTTPS协议

    最近想尝试基于Fiddler的录制功能做一些接口的获取和处理工作,碰到的一个问题就是简单连接Fiddler只能抓取HTTP协议,关键的登录请求等HTTPS协议都没有捕捉到,所以想让Fiddler能够同 ...

  3. 工具fiddler学习

    1:Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1, 端口:8888. 当Fiddler会自动设置代理.能支持HTTP代理的任意程序的数据包都能被Fiddler嗅 ...

  4. Fiddler的学习

    以下内容转自:http://www.cnblogs.com/TankXiao/archive/2012/02/06/2337728.html 仅为查找方便而复制~~ Fiddler是最强大最好用的We ...

  5. 高逼格前端开发工具-FIDDLER

    1.Fiddler相对其他调试工具的优势 HttpWatch 和 Firebug绝大多数前端开发人员都比较熟悉,但是HttpWatch虽然可以抓到每个 HTTP 请求的全部数据,但无法修改返回的数据: ...

  6. Fiddler (四) 实现手机的抓包

      Fiddler是我最喜爱的工具,几乎每天都用, 我已经用了8年了. 至今我也只学会其中大概50%的功能. Fiddler绝对称得上是"神器", 任何一个搞IT的人都得着的. 小 ...

  7. Fiddler (五) Mac下使用Fiddler

      Fiddler是用C#开发的.  所以Fiddler不能在Mac系统中运行.  没办法直接用Fiddler来截获MAC系统中的HTTP/HTTPS,    Mac 用户怎么办呢? Fiddler可 ...

  8. Fiddler 教程

      Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据. 使用Fiddler无论对开发还是测试来说,都有 ...

  9. Fiddler捕获 iPhone/Android 流量

    由于 Fiddler 作为代理的形式来捕获流量,因此理论上来说是不区分客户端的(当然 Fiddler 要安装在 Windows,毕竟是 .NET 开发的工具). 这一篇文章教你如何利用 Fiddler ...

随机推荐

  1. 迁移AndroidX

    1. 前言 AndroidX replaces the original support library APIs with packages in the androidx namespace. O ...

  2. cb11a_c++_顺序容器的操作4_容器大小操作_resize-max_size

    cb11a_c++_顺序容器的操作4 2 容器大小的操作 3 c.size() 容器当前的个数 4 c.max_size(),容器最大存储量 5 c.empty() 是否为空 6 c.resize(n ...

  3. 循序渐进VUE+Element 前端应用开发(11)--- 图标的维护和使用

    在VUE+Element 前端应用中,图标是必不可少点缀界面的元素,因此整合一些常用的图标是非常必要的,还好Element界面组件里面提供了很多常见的图标,不过数量不是很多,应该是300个左右吧,因此 ...

  4. OS_进程调度:C++实现

    实验二.进程调度模拟实验 一.实验目的: 本实验模拟在单处理机环境下的处理机调度,帮助理解进程调度的概念,深入了解进程控制块的功能,以及进程的创建.撤销和进程各个状态间的转换过程. 二.实验内容: 进 ...

  5. 手把手教你使用Python生成图灵智能小伙伴,实现工作助手/闲聊功能

    /1 前言/ 在家闲着,做个小项目,基于Python,实现一个语聊小机器人,分享给大家.项目整体比较简单,官方文档介绍的非常详细,可快速上手. /2 目标/ 将图灵机器人放到桌面,实现工作助手/陪聊功 ...

  6. 解决github打不开问题

    2020.06.22 使用以下方式: 在https://github.com.ipaddress.com/找到: 在https://fastly.net.ipaddress.com/github.gl ...

  7. 第四模块 :微服务调用链监控CAT架构和实践

    采样率:每一个请求为都进行记录,或者100次请求为记录50次 各个开源框架都满足opentracing的标准,只要使用opentracing标准埋点的客户端,可以使用不同的客户端去展示,opentra ...

  8. android 6.0 以上在doze模式精确定时

    public static void start12hAlarm() { int seconds = TIMERLENGTH; ECMLog.i_ecms(CLASS_TAG, " star ...

  9. String类基础知识

    1.String类的构造方法 (1)String(String original)  //把字符串数据封装成字符串对象 (2)String(char[] c)   //把字符数组的数据封装成字符串对象 ...

  10. 入门大数据---HDFS-API

    第一步:创建一个新的项目 并导入需要的jar包 公共核心包 公共依赖包 hdfs核心包 hdfs依赖包 第二步:将Linux中hadoop的配置文件拷贝到项目的src目录下 第三步:配置windows ...