作为软件测试工程师,抓包总是不可避免:遇到问题要做分析需要抓包;发现 bug 需要定位要抓包;检查数据传输的安全性需要抓包;接口测试遇到需求不全的也需要抓包... 就因为抓包在测试工作中无处不在,所以市面上才会出现一大批的抓包工具供大家选择。

之前我也发过一些文章介绍一些常用抓包工具,比如 wireshark,Charles 等,然后有很多小伙伴私信或者留言问得最多的一个问题就是“这个工具和 xxx 工具有什么区别呢?” 或者 "这个工具和 xxx 工具谁更好用呢?"

所以,为了解决大家的这个疑惑,让大家能够合理地选择更适合的工具,更好的辅助测试工作的执行,我们今天就来分析一下各种爆款的抓包工具的优劣势。

Fiddler

Fiddler 工具非常经典且强大,这点大家应该都所体会。它可以提供电脑端、移动端的抓包、包括 http 协议和 https 协议都可以捕获到报文并进行分析;可以设置断点调试、截取报文进行请求替换和数据篡改,也可以进行请求构造,还可以设置网络丢包和延迟进行APP弱网测试等。

所以,fiddler 的第一个优点,就是功能强大并齐全;

第二个优点就是 Fiddler 是开源免费的,所有的电脑只要安装就可以直接使用所有的功能!这无疑也是一个非常大的优势,为它也拉拢了大量的用户!

当然,它也有自己的缺点:只能在windows下安装使用。如果要在其他系统上抓包,比如 MacOS 系统,Linux系统,那么 Fiddler 就无用武之地了。

Charles

Charles 工具别名“花瓶”,它是通过代理来实现的抓包,也就是我们在访问网页时配置代理指向 Charles 监听的端口,之后所有的请求 Charles 会帮我们转发并记录。

Charles 的使用非常简单,配置好代理后,Charles 就开始抓包了。我们可以直接通过它的 GUI 查看包的内容,其实功能和使用跟 Fiddler 非常的雷同,同样可以提供电脑及手机端的抓包分析、设置断点、弱网环境模拟等,那么它跟 fiddler 的区别在哪里呢?

优点:

Charles 基于Java开发的,跨平台性好。所以不仅支持 Windows 系统,还支持 MacOS,以及 Linux操作系统;所以基本非 windows 电脑都会选择 Charles 工具。

要抓取 https 协议的配置也很简单,只要安装下 charles 的证书就可以了

缺点:

Charles 工具是不免费的。它需要购买 license,如果不购买使用的话就会每 30 分钟断一次,使用体验非常不好!

Wireshark

Wireshark 也可以在各个平台都可以安装使用,不过它的功能侧重点和 Charles&Fiddler 有所不同,它主要用来抓取网络中的所有协议的数据报文,对于分析网络协议以及网络问题方面非常专业!

Wireshark 工具的优点:

可以选择特定的网卡进行流量的捕获,那么就只会抓取关心的网卡经过的数据,针对性很强;可以抓取所有协议的报文,并且抓取的报文可以完整的以 OSI 七层网络模型的格式显示,可以清晰的看到客户端和服务器之间每一个交互报文,以及每一个数据包的网络各层级的详细内容显示。所以,这个工具抓包非常适合学习和分析网络协议。

提供了非常强大的过滤规则。Wireshark 可以提供捕获前过滤,也可以捕获后过滤,并且过滤规则非常详细,可以实现精度和细粒度非常高的包过滤;

可以结合 TCPdump 使用,分析线上服务器(Linux 系统)下抓取的数据报文,定位线上问题。

Wireshark 工具的缺点:

如果要灵活的使用它需要具备一定的网络基础,对于初学者有一定的难度;

无法分析 https 数据包,由于 wireshark 是在链路层获取的数据包信息,所以获取到的 https 包是加密后的数据,因此无法分析包内容。当然,我们可以对 https 数据包进行解密, 但是操作具有一定的复杂度,可能要消耗很多时间。

BurpSuite

Burpsuite 工具也是基于 Java 语言开发的,所以它也可以跨各平台使用,包括 Windows,MacOS 及 Linux 等系统平台。

Burpsuite 可以提供抓包功能,它的工作方式同样也是在浏览器和网站之间做了代理从而实现报文截取的;也能够修改数据内容并转发的功能;甚至还可以选择使用爬虫爬下网站相关的数据...

但是,它绝对不仅仅是一款抓包工具,它集成了很多实用的小工具可以完成更加强大的功能,比如 http 请求的转发、修改、扫描等。同时这些小工具之间还可以互相协作,在 BurpSuite 这个框架下进行订制的攻击和扫描方案。

所以这个工具很多功能测试的人员会使用它进行报文抓取和篡改数据,很多安全测试人员会借用它进行半自动的网络安全审计,开发人员也可以使用它的扫描工具进行网站压力测试与攻击测试,功能作用范围更加广泛。

不过它也有自己的缺点,就是不免费!每个用户一年的费用为 299$,使用成本相对来说有点高。

F12

F12 是众多抓包工具中最简单、最轻量级的,因为它是浏览器内置的开发者工具来提供捕获浏览器的数据报文的功能。它免安装,直接打开浏览器就可以直接使用,所有使用非常好上手,适合入门级别的新手学习。

它主要针对的是 HTTP 协议和 HTTPS 协议, 可以确认我们的网络数据包的一个状态, 通过分析请求和响应报文里面的内容, 分析出来请求数据和响应数据是否正确, 定位问题是前端问题还是后端问题。

而且 F12 作为浏览器的一部分,是数据收发的一端,抓取到的 HTTPs 报文是可以得到明文数据的;不过因为只能抓当前浏览器的收发报文,层次只能是在应用层 Http(s)协议,不能抓取其他的数据报文。

虽然 F12 抓包调试也能满足我们基本的测试工作需求,但是作用面和强大性和其他的抓包工具还是有一定差距的。

TCPdump

TCPdump 我上周发过一篇文章专门介绍过,这是专门作用于 Linux 命令行的抓包工具,它可以提供非常多的参数来对网络数据包进行过滤和定义。

而它抓取到的报文可以直接打印在 Linux 的命令行界面,也可以进行保存成文件,并用 Wireshark 工具打开进行更加细致的分析。

总结

综上所述,测试可以用的抓包工具非常多,然而它们各有各的优势,也有对应的不足,所以根据自己的使用场景,选择最适合的抓包工具才是最重要的!

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取

抓包工具哪些好,来看这里就够了.....相关推荐

  1. Wireshark抓包工具使用教程以及常用抓包规则

    Wireshark是一个非常好用的抓包工具,当我们遇到一些和网络相关的问题时,可以通过这个工具进行分析,不过要说明的是,这只是一个工具,用法是非常灵活的,所以今天讲述的内容可能无法直接帮你解决问题,但 ...

  2. postman 抓包工具charles的使用

    1.直接打开charles,然后,如果有https的话,需要安装证书,然后,设置代理 2.如果不是https的,不需要设置代理,直接抓取就可以 先安装证书: 然后设置代理:               ...

  3. wireshark抓包工具的使用及分析

    前段时间看到群里在讨论Wireshark抓包工具,想写一篇使用笔记但一直没来得及写,本篇就通过实例来分享wireshark抓包工具的使用. Wireshark简介 Wireshark 是一个网络封包分 ...

  4. charles抓包(charles抓包工具详细教程)

    charles 为什么能抓https的包?原理是什么 众所周知,http明文传输,https加密就是为了在传输层禁止暴露明文,但是为什么抓包工具又能抓到? 岂不是和https的设计矛盾了?? 简单的说 ...

  5. ubuntu中抓包工具tcpdump使用详解

    简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中传送的数据包的 ...

  6. 网络抓包工具 翻译帮助文档 详解教程

    How To Set Up a Capture 1. 确保你做的事是被允许的! (1)意思是在不违反法律的情况下抓取可以被允许抓取的包. 2.一般设置 (1)权限的设置,你是否有权限去获取用户或者管理 ...

  7. 手把手教你Charles抓包工具使用(建议收藏)

    目录:导读 Charles简介 Charles主要功能 开始抓包 安装 web抓包 Charles下配置 App抓包 抓取手机HTTPS协议 Charles过滤 弱网测试 Charles配置弱网设置 ...

  8. 接口测试中抓包工具的使用-charles

    接口测试中抓包工具的使用 在被测接口并没有明确的接口文档给出时,我们需要借助抓包工具来帮助测试,利用抓包工具我们几乎可以获得接口文档中能给你的一切.常见的抓包工具有Charles和Fiddler, F ...

  9. 【Fiddler Everywhere】2022最强抓包工具(安装 修改教程)

    人生苦短 我用python 今天来给大家整一个史上最强抓包工具(安装 修改教程)! 源码.资料电子书点击这里 一.Fiddler简介 Fiddler Everywhere 是啥? 从名称上来看, 就大 ...

最新文章

  1. C++插入排序(附完整源码)
  2. .net 转义包含转义的字符串
  3. 微信小程序会改变大世界吗?
  4. 2018.9.19.Matlab实验四:Matlab程序设计
  5. 没人可以通过勤劳工作发财致富
  6. 2021年软件开发的五大趋势,低代码/无代码得到了验证!
  7. DE21 Convolution Formula
  8. 什么是自动化测试?为什么要自动化测试?怎么做?
  9. db文件查看工具SQLiteExpert
  10. Navicat for MySQ中文破解版(无需激活码)
  11. 计算机应用技术头像,意大利科学家应用计算机技术进行头像复原
  12. 解决 ElementUI form表单在dialog中重置表单,无法正确重置的问题
  13. 百钱买百鸡:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
  14. 心과 情의 調和 (韓長庚 易學原理總論)
  15. 【C++】迭代器、反向迭代器详解
  16. 成像系统光照度(相机成像辐射传输)。余弦辐射体、孔径角、光通量
  17. 随地大小便的中世纪欧洲人 是真的吗
  18. 记录:仿微信聊天的处理时间功能
  19. 游戏制作 RPGDreamer (二)--视觉小说游戏(仙剑奇侠传)
  20. 成都地区一汽大众汽车4s店营销策略研究

热门文章

  1. Linux实战教学笔记15:磁盘原理
  2. 机械硬盘提示格式化的常见原因|3种数据恢复方法
  3. 不吸电子烟也请别吸电子咖啡!我们向雪加电子咖啡发起了挑战
  4. 中国手机企业库存高达6000万,市场正常后或大规模降价促销
  5. “双减”政策下的少儿编程市场:前8月融资12起,资本加持下何时跑出“独角兽”?...
  6. 微信小程序公众号认证
  7. 做一个校园跑腿小程序需要多少成本?
  8. 《软件工程实践》第五次作业-WordCount进阶需求 (结对第二次)
  9. 【Python 23】52周存钱挑战3.0(循环计数for与range)
  10. 保证RabbitMQ消息的可靠性总结