【软件测试基础】Fiddler抓包原理是什么?

2020-11-06 16:43发布

5条回答
霸气的名字 -喜欢晴天
1楼 · 2020-11-06 16:47.采纳回答

Fiddler是位于客户端和服务器端之间的HTTP代理, 它能够记录客户端和服务器之间的所有 HTTP(S)请求,可以针对特定的HTTP(S)请求,分析网络传输的数据,还可以设置断点、修改请求的数据和服务器返回的数据。
Fiddler在浏览器与服务器之间建立一个代理服务器,Fiddler工作于七层中的应用层,能够捕获通过的HTTP(S)请求。Fiddler启动后会自动将代理服务器设置成本机,默认端口为8888。Fiddler不仅能记录PC上浏览器的网络请求数据,还可以记录同一网络中的其他设备的HTTP(S)请求数据。数据传递流程大致如下:

1) 客户端像WEB服务器发送HTTP(S)请求时,请求会先经过代理Fiddler代理服务器。
2) Fiddler代理服务器截取客户端的请求报文,再转发到WEB服务器,转发之前可以做一些请求报文参数修改的操作。
3) WEB服务器处理完请求以后返回响应报文,Fiddler代理服务器会截取WEB服务器的响应报文。
4) Fiddler处理完响应报文后再返回给客户端。

等等同学
2楼 · 2020-11-08 12:01

一、fiddler简介
Fiddler是一款免费且功能强大的数据包抓取软件。它通过代理的方式获取程序http通讯的数据,可以用其检测网页和服务器的交互情况,能够记录所有客户端和服务器间的http请求,支持监视、设置断点、甚至修改输入输出数据等功能。fiddler包含了一个强大的基于事件脚本的子系统,并且能够使用.net框架语言扩展。
二、Fiddler工作原理
Fiddler是位于客户端和服务器端之间的HTTP代理, 它能够记录客户端和服务器之间的所有
HTTP(S)请求,可以针对特定的HTTP(S)请求,分析网络传输的数据,还可以设置断点、修改请求的数据和服务器返回的数据
iddler在浏览器与服务器之间建立一个代理服务器,Fiddler工作于七层中的应用层,能够捕获通过的HTTP(S)请求。Fiddler启动后会自动将代理服务器设置成本机,默认端口为8888。Fiddler不仅能记录PC上浏览器的网络请求数据,还可以记录同一网络中的其他设备的HTTP(S)请求数据。数据传递流程大致如下:
三、Fiddler抓取HTTPS原理
现在APP中的数据传输基本上都使用HTTS传输,传输的数据都是经过加密的,这增加了我们分析数据包的难度,还好Fiddler除了可以抓取HTTP数据包,还可以抓取HTTPS数据包。由于HTTPS传输需要使用到CA证书,所以抓取抓取HTTPS数据包时需要做一些特殊配置。Fiddler截取HTTPS报文的流程大致如下:
1) 客户端请求建立HTTPS链接,发送客户端支持的加密协议及版本列表等信息给服务器端。
2) Fiddler接受客户端请求并伪装成客户端向WEB服务器发送相同的请求。
3) WEB服务器收到Fiddler的请求以后,从请求中筛选合适的加密协议。并返回服务器CA证书,证书中包括公钥信息。
4) Fiddler收到WEB服务器的响应后保存服务器证书并自签名一个CA证书,伪装成服务器,把该证书下发给客户端。
5) 客户端验证证书合法性。(Fiddler能否抓取到HTTPS报文关键看这一步)
6) 客户端生产对称密钥,通过证书的公钥加密发送给服务器。
7)
Fiddler拦截客户端的请求以后,使用私钥解密该报文,获取对称加密秘钥,并使用服务器证书中带的公钥加密该对称密钥发送给WEB服务器。此时对称密钥已经泄露了,以后可以使用该秘钥界面客户端和服务器端传输的数据。
8) WEB服务器接收到客户端发送的加密的对称密钥后使用私钥解密,并使用对称密钥加密测试数据传给客户端。
9) Fiddler使用前面获取的对称密钥解密报文。
10) 客户端验证数据无误以后HTTPS连接就建立完成,客户端开始向服务器发送使用对称密钥加密的业务数据
11) Fiddler使用前面获取的对称密钥解密客户端发送的数据并重新加密转发给客户端。
 

魏魏姐
3楼 · 2020-11-09 10:11

1.抓包可以帮助定位网络接口问题.

2.分析数据:更快、更准确的定位软件接口的问题.

3. 抓包一般在那些场景应用?

①发送数据给后台,后台无响应。

②前后台联调接口,发现数据对不上。

③线上环境需要定位问题,而人在远方。

④查看各个接口的响应时间。

⑤测试断网和弱网环境。

⑥篡改报文。

4. 什么是fiddler?

fiddler是一个HTTP协议调试代理工具。


桥豆麻袋
4楼 · 2020-11-20 11:08

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

Fiddler 启动的时候,会偷偷地把 Internet 选项中的代理修改为 127.0.0.1,端口:8888。

当 Fiddler 退出的时候,它会自动在 Internet 选项中取消代理,这样就不会影响别的程序。

如果 Fiddler 非正常退出,这时候因为 Fiddler 没有自动注销,会造成网页无法访问。

解决的办法是重新启动 Fiddler。



Fiddler工作于OSI七层模型中的应用层,Fiddler在浏览器与服务器之间建立一个代理服务器,能够捕获通过的http(s)请求。Fiddler启动后会自动将代理服务器设置成本机,默认端口为8888。Fiddler不仅能记录PC上浏览器的网络请求数据,还可以记录同一网络中的其他设备的HTTP(S)请求数据。

相关问题推荐

  • Postman是什么软件?2020-08-12 09:55
    回答 4

    Postman是一款非常流行的接口调试工具,它使用简单,而且功能也很强大。不仅测试人员会使用,开发人员也会经常使用。

  • 回答 12

    Postman的官网上这么介绍它:Modern software is built on APIs,Postman helps you develop APIs faster,看得出来,它是一个专门测试 API 的工具,如果你正在进行 API 相关的开发,那这篇文章就是你的福利!Postman 提供功能强大的 Web API 和 HTTP 请求的...

  • 回答 14

    接口测试是测试系统组件间接口的一种测试。主要用于检测外部系统与系统之间以及系统内部各个子系统之间的交互点。重点测试数据的交换、传递和控制管理过程,以及系统间的相互逻辑依赖关系等等。这要求对业务逻辑有一定程度上的理解,对数据流向有较好的定位。...

  • 回答 2

    1.可以发现很多在页面上操作发现不了的bug(接口的)2.可以检查系统(接口)的异常处理能力3.可以检查系统(接口)的安全性、稳定性4.前端随便变,接口测好了,后端不用变5.可以测试并发情况,一个账号,同时(大于2个请求)对最后一个商品下单,或不同账号,...

  • 回答 11
    已采纳

    接口测试的工具可以进行接口测试的工具很多,这里简单介绍几个: 1、loadrunner:一款商业性能测试工具,用来做接口测试,很好很强大 2、jmeter:一款开源的性能测试工具,操作简单,方便,既有jdbc request操作数据库数据,也有http request和soap request...

  • 回答 5

    接口是指外部系统与系统之间以及内部各子系统之间的交互点。包括外部接口、内部接口,内部接口又包括:上层服务与下层服务接口、同级接口。  常见web接口:一类是http协议的接口,另一类是web service接口(如soup、rmi、rpc协议)。...

  • 回答 10

    接口测试的工具很多,比如 postman、RESTClient、jmeter、loadrunner、SoapUI等,本人首推的测试工具是postman和jmeter,接下来就简单介绍下如何使用这两款工具进行接口测试,其他工具本次暂不介绍。1)、Postman是谷歌的一款接口测试插件,它使用简单,支持...

  • 回答 7
    已采纳

    Fiddler显示菜单工具栏的操作教程      秃秃的fiddler      view-->show tool bar      然后菜单栏就出现了      3我感觉在fiddler,有一个非常厉害实用的功能就是      auto responder ,自动回发。      尤其是在调试...

  • 回答 2
    已采纳

    看看这个思维导图能帮助到你吗

  • 回答 4

    早期的开关量控制装置就是继电器逻辑控制,后来有电子技术了,开关量控制装置开始采用电子技术模仿继电逻辑,比较典型的就是比较典型的就是可编程序控制器(PLC),此外还有各种开关电路组成的控制器、以单片机为核心器件的控制器等,很多,其基本原理都是源...

  • 回答 5

    几乎所有编程语言就是在变量中存储值,并且能读取和修改此值。事实上,在变量中存储值和取出值的能力,给程序赋予了状态。 如果没有这样的概念,一个程序虽然可以执行一些任务,但是它们将会受到极大的限制而且不会非常有趣。...

  • 回答 8

    断言是编程术语,表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真,可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新启用断言。使用断言可以创建更...

  • 回答 3

    一、Jmeter关联的方式:Jmeter中关联可以在需要获取数据的请求上 右键–>后置处理器 选择需要的关联方式,如下图有很多种方法可以提取动态变化数据:  在LR中有自动关联跟手动关联,但在我看来手动关联更准确,在jmeter中,就只有手动关联为什么要进行关联:...

  • 回答 5

    首先第一步要导入mysql驱动包一、添加JDBC Connection Configuration设置链接Database URL: jdbc:mysql:// 数据库地址 /库名JDBC Driver class:com.mysql.jdbc.DriverUsername:账号Password:密码二、添加JDBC Reques三、在http请求中加入变量username_id_N...

  • 回答 3

    再今天重新学习,从数据库中取数据,并作为变量传到下一个请求中。首先第一步要导入mysql驱动包  一、添加JDBC Connection Configuration设置链接Database URL: jdbc:mysql:// 数据库地址 /库名JDBC Driver class:com.mysql.jdbc.DriverUsername:账号Pass...

  • 回答 5

    一、CSV 参数化1、我们做性能测试需要并发多个用户,为了真实模拟用户行为,我们需要模拟多个不同的用户登录,这是我们就需要进行参数化。这里我们选择比较常用的参数化方法-CSV Data Set Config首先打开CSV Data Set Config2.新建cvs文件放在和脚本同一个目...

没有解决我的问题,去提问