除了Fiddler工具之外,还有别的工具可以抓包。本章介绍其他几个常见的抓包工具。

5.1 常见的抓包工具

目前常见的HTTP抓包工具如图5-1所示。

图5-1 常见的抓包工具

5.2 浏览器开发者工具

浏览器都自带一个开发者工具,该工具可用来抓包,很受开发人员喜欢。浏览器开发者工具的受众范围比Fiddler的广,因为它很方便,不需要做什么设置。下面我们用Chrome浏览器来进行讲解。

5.2.1 调出开发者工具

调研开发者工具的方式有以下几种。

方式1:按F12调出(很多人把这个工具叫作F12)。

方式2:在浏览器中,单击鼠标右键,然后选择“检查”。

方式3:在浏览器中,按快捷键Ctrl+Shift+I。

5.2.2 用Chrome测试网页加载时间

使用Chrome的开发者工具测试网页加载时间的操作步骤如下。

(1)打开Chrome浏览器,然后打开开发者工具,选中Network选项卡。

(2)访问一个网址,比如访问www.cnblogs.com/tankxiao,开发者工具能捕获所有的HTTP请求,如图5-2所示。

图5-2 网页加载时间

从图5-2中可以看出单个请求的响应时间,可以看到这个网页发送了49个请求。总的网页响应时间是682毫秒,性能非常好。

5.2.3 用Chrome捕获12306登录的POST请求

Chrome开发者工具在抓包时,如果页面发生了跳转,那么会把上一个页面的HTTP请求清空。此时需要选中Preserve log,以保留上次抓到的包。

我们用Chrome来捕获12306的登录请求,该登录请求用的是POST。具体步骤如下。

(1)在登录页面中输入用户名和密码,选中图片验证码后,单击“登录”按钮。

(2)在开发者工具中可以看到登录时发送的一系列请求。

(3)选中HTTP请求,在Headers选项卡中能看到该请求中的用户名和密码,如图5-3所示。

图5-3 抓12306登录的包

5.2.4 用Chrome测试接口的响应时间

如图5-4所示,Chrome中会显示每个请求的响应时间。

图5-4 单个请求的响应时间

5.2.5 过滤请求

因为可以操作的界面较小,查找HTTP请求不方便,所以一般都需要用到过滤功能。

Chrome开发者工具具有强大的过滤功能,可以让用户根据关键字来过滤,如图5-5所示。

图5-5 根据关键字过滤

在Filter输入框中输入method:POST,可以过滤POST方法的HTTP请求,如图5-6所示。

图5-6 根据HTTP方法过滤

5.3 vConsole

微信小程序、手机版网页H5、手机App也需要调试Bug,此时可以用第三方工具vConsole来完成。vConsole是一个轻量、可拓展的、针对手机网页的前端开发者调试面板。其用法和浏览器开发者工具差不多。vConsole如图5-7所示。

图5-7 vConsole工具

5.4 Charles抓包工具

如果要在mac OS系统中使用抓包工具,我们可以用Charles。Charles的工作原理与用法和Fiddler有点类似。

5.4.1 Charles工具的安装及使用方法

Charles与其他工具的安装过程大致相同,按照页面提示操作即可。Charles安装成功后,图标是一个花瓶,所以俗称青花瓷。Charles是收费软件,如果不付费的话,每隔30分钟,需要重启Charles。

5.4.2 在Charles中安装根证书

在Charles中安装根证书的步骤如下。

第1步:依次单击菜单栏中的Help→SSL Proxying→Install Charles Root Certificate,如图5-8所示。

第2步:这时候会弹出一个根证书界面,单击“添加”按钮,如图5-9所示。

第3步:证书添加成功,如图5-10所示。

图5-8 安装证书(1)

图5-9 安装证书(2)

图5-10 证书添加成功

第4步:双击证书以打开证书简介,把证书设置为信任,如图5-11所示。

图5-11 证书设置为信任

5.4.3 Charles配置规则

Charles的配置规则如图5-12所示。其中:

  • Host为配置域名,*表示任意匹配;
  • Port为网页浏览端口号,这里填443。

图5-12 设置规则

5.4.4 用Charles捕捉网站登录的请求

打开Charles,再用浏览器打开某网站并登录。找到登录的HTTP请求,可以看到登录时发送的用户名和密码,如图5-13所示。

图5-13 捕捉某网站的登录请求

5.5 Wireshark抓包工具

Wireshark是非常流行的网络封包分析软件,功能十分强大。它可以截取各种网络封包,显示网络封包的详细信息。它是一个跨平台的软件,可以在UNIX系列、Linux、mac OS、Windows等多个平台上进行网络协议的抓包工作。同时,它也是一个开源软件。如果想捕获TCP 3次握手协议,就应该使用Wireshark。

Wireshark的抓包原理是嗅探网卡,所以Wireshark只能查看数据包,不能修改数据包。

5.5.1 Wireshark捕捉HTTP

Wireshark捕捉HTTP协议的步骤如下。

第1步:启动Wireshark,此时会出现很多网络连接,选择一个正在使用的网络连接,如图5-14所示。

图5-14 选择网卡

第2步:输入过滤条件“HTTP”,这样就只捕获HTTP协议。在浏览器中访问http://files-cdn. cnblogs.com/files/TankXiao/http.bmp,Wireshark能捕获到HTTP的报文。HTTP请求和HTTP响应是分开的,HTTP请求有个向右的箭头,HTTP响应有个向左的箭头,如图5-15所示。

图5-15 抓HTTP包

第3步:选择HTTP请求,右键单击并依次选择追踪流→TCP流,如图5-16所示。

图5-16 选择“追踪流”

第4步:打开一个对话框,可以看到完整的HTTP请求和HTTP响应,如图5-17所示。

图5-17 查看完整的HTTP请求和HTTP响应

5.5.2 用Wireshark捕获HTTPS

Fiddler和Charles都需要安装证书后才能捕获HTTPS,用Wireshark捕获HTTPS更麻烦。

某些浏览器支持将TLS会话使用的对称密钥保存在外部文件中,以供Wireshark加密使用。本节测试使用的是Chrome 71版本和Wireshark 5.0版本。捕获步骤具体如下。

第1步:配置系统变量。变量名为SSLKEYLOGFILE,变量值为C:\ssl_key\sslog.log,如图5-18所示。注意后缀名一定要用log,这样浏览器和服务器SSL协商的密钥信息才会存储到文件中。

图5-18 新建环境变量

第2步:在CMD中运行以下命令,

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --ssl-key-log-file=c:\ssl_key\sslog.log

运行成功后可以看到密钥文件已生成,如图5-19所示。

图5-19 密钥文件

第3步:在Wireshark中配置密钥文件,依次选择编辑→首选项→Protocols→TLS,如图5-20所示。

图5-20 配置密钥文件

第4步:重启Chrome,然后在Chrome中访问https://www.cnblogs.com/tankxiao,此时就可以抓到HTTPS的包了,如图5-21所示。

图5-21 用Wireshark捕获HTTPS

5.6 本章小结

本章介绍了Fiddler之外其他常见的抓包工具。平常抓包用得最多的是浏览器开发者工具。在Windows上抓包首选Fiddler,在Mac计算机上无法使用Fiddler,可以用Charles。Fiddler和Charles是专门用来捕获HTTP/HTTPS的。Wireshark主要用来抓TCP/UDP或者其他协议的包,而不会用来抓HTTP。

本文摘自刚刚上架的《HTTP抓包之接口自动化测试》

本书内容来自作者多年从事接口测试的经验总结,贴近实际,能帮助读者解决实际工作中的难题。本书的主要内容有HTTP的基础知识;如何使用Fiddler来抓HTTP包;如何分析HTTP包;如何通过JMeter和Postman等发送HTTP包,从而实现软件自动化测试和接口的自动化测试;如何使用抓包工具来实现安全测试和性能测试等;几个日常生活中应用比较广泛的综合实例。
本书图文并茂、实例丰富,方便读者参考并动手实践,适合前端开发工程师、测试工程师、线上故障技术人员、接口开发人员和Web开发人员阅读。

除了Fiddler工具之外,其他常见的抓包工具(Charles、Wireshark)相关推荐

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

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

  2. 【软件测试】2021年软件测试领域常用工具总结(1)-抓包工具与单元测试工具篇

    前言 大家好,我是洋子,作为一名测试开发/软件测试工程师, 在进行软件测试的过程中,会用到测试工具去辅助测试,以提高测试工作的效率.今天就给大家介绍一下2021年软件测试领域当中的最流行,最实用的工具 ...

  3. linux端口抓包工具下载,linux下的抓包工具tcpdump

    linux下的抓包工具. 抓包工具比较好用的有两个,一个是snort,一个是tcpdump,这次不说snort了,觉得这个工具虽然很强大,但是比较复杂,还是tcpdump比较简单.tcpdump wi ...

  4. Fiddler抓包工具入门:软件测试员必知的抓取https协议的方法

    首先给大家分享一个抓包的小故事: 小T在测试APP时,打开某个页面展示异常,于是就跑到客户端开发小A那里说:"你这个页面做的有问题,页面展示异常": 小A说:"这哪是我的 ...

  5. 全网最详细的Python+Requests接口测试教程:Fiddler抓包工具

    本篇涵盖内容:fiddler.http协议.json.requests+unittest+报告.bs4.数据相关(mysql/oracle/logging)等内容. 文章是针对零基础入门接口测试和py ...

  6. 12Python爬虫---Fiddler抓包工具使用

    一.什么是Fiddler 二.爬虫与Fiddler不得不讲的事 三.Fiddler基本原理与界面 1.Fiddler工作原理 2.Fiddler界面 3.捕捉会话功能 四.Fiddler的QuickE ...

  7. 【爬虫】网页抓包工具--Fiddler

    [爬虫]网页抓包工具--Fiddler Fiddler基础知识 Fiddler是强大的抓包工具,它的原理是以web代理服务器的形式进行工作的,使用的代理地址是:127.0.0.1,端口默认为8888, ...

  8. Fiddler抓包工具 总结笔记

    Fiddler抓包工具的介绍与使用 文章目录 Fiddler抓包工具的介绍与使用 序章 1. Fiddler 抓包简介 1)字段说明 2)Statistics 请求的性能数据分析 3)Inspecto ...

  9. 功能测试Ⅸ——功能测试、数据库、抓包工具Fiddler

    文章目录 总目录 功能测试与数据库.Fiddler 今日目标 1.功能测试与数据库 1.1 项目与数据库的关系 1.2 数据库典型应用场景(重点) 1.2.1 验证数据的准确性与完整性 1.2.2 借 ...

最新文章

  1. 网关限流了,躲在后面的服务就能高枕无忧啦?
  2. spring quartz 的定时器cronExpression表达式写法(转载)
  3. Codeforces Round #361 (Div. 2) E. Mike and Geometry Problem 【逆元求组合数 离散化】
  4. Android 显示 WebView ,加载URL 时,向webview的 header 里面传递参数
  5. RunTime.getRunTime().addShutdownHook的用法
  6. 192.168.8.1手机登陆_高端机型都在鼓吹的ufs3.1是什么?对于手机使感受明显吗?...
  7. 如何正确上传一张图片?
  8. python怎么读取图片文件大小_python怎么读取图片大小
  9. 编译运行Cube_slam
  10. 直接内存回收中的等待队列
  11. 对深度学习程序进行性能优化之前该理解的几个知识点(一)
  12. ensp配置服务器发布(将DMZ区的web服务区发布,供client访问)
  13. 大厂软件测试流程完整版
  14. Android通过浏览器打开App并传递参数
  15. Android动画之AnimatorSet联合动画用法
  16. 两年工作经验程序员的迷茫
  17. 笔记 | 杂谈控制固定效应这件事
  18. [渝粤教育] 西南科技大学 公共组织学 在线考试复习资料
  19. 北京大学软微学院计算机技术,北京大学软件与微电子学院计算机技术(专业学位)保研夏令营...
  20. web _html_css_七大选择器

热门文章

  1. PerformSelector 与 NSInvocation
  2. 爬虫与反爬虫(斗智斗勇)
  3. 怎样计算机翼升力大小,机翼升力计算公式(Formula of wing lift).doc
  4. vue 里怎么用 lottie-web 实现动画效果?
  5. MySQL的安装 和 navicat for mysql 安装
  6. .ckpt与.pb互相转换
  7. 码住!几十个精品2d游戏素材,设计极强!
  8. Java异常(超详细!)
  9. TokenInsight 成功举办“首席对话首席”区块链行业论坛
  10. 实例3:爬取斗破苍穹小说全文