接口自动化测试之Fiddler使用教程

一、Fiddler 简介

Fiddler工具介绍

Fiddler是一个通过代理的方式来进行抓包工具,运行时会在本地建立一个代理服务,默认地址:127.0.0.1:8888。Fiddler开启之后,配置本机代理,再打开IE浏览器,IE的PROXY会自动变成127.0.0.1:8888,通过其来抓取IE浏览器与服务器之间的所有HTTP(s)请求,但是火狐、chrome需要手动设置代理。

配置本机代理,IE 的 代理 自动变成 刚刚配置的, 谷歌和火狐则需要 手动 设置 代理。 具体原因:浏览器人家厂商自己设置的。

二、fiddler 抓包原理

客户端(浏览器)与服务器之间通过建立TCP连接以HTTP协议进行通信,浏览器默认通过自己发送HTTP请求到服务器。而Fiddler是c#开发的http代理服务器,fiddler工作于七层·中的应用层,能够捕获到通过的http(s)请求。fiddler启动后会自动将代理服务器设置为本机,端口8888。 启动之后,会看到:

抓包其中涉及三个角色: 客户端 、 代理、 目标服务器

原本正常访问网页或App路径是:

         客户端 ---> 目标服务器

         抓包,其实就加入了一个代理,即:客户端 ---> 媒人(代理)-->目标服务器

 只有这三者产生一定的联系,才能进行拦截/抓取一些东西,客户端先访问媒人,媒人把客户端的信息记录下来,媒人再去联系目标服务器,进而返回给客户端。

Fiddler 抓取https 报文过程:

详细过程解析:

+ 客户端请求建立HTTPS连接,发送客户端支持的加密协议和版本列表等信息给服务器;
+ Fiddler接受客户端的请求并伪装成客户端发送相同的请求给Web服务器;
+ Web服务器收到Fiddler的请求后,从请求中筛选出合适的加密协议并返回服务器CA证书,证书中包含公钥信息;
+ Fiddler收到服务器响应之后,保存服务器证书并自签名一个证书,伪装成服务器将该证书下发给客户端;
+ 客户端验证证书的合法性(Fiddler能否抓取到HTTPS报文关键就看这一步了)(证书都是由CA组织下认可的根证书Root签发的);
+ 客户端生产对称密钥并使用自签名证书的公钥进行加密,发送给服务器;
+ Fiddler拦截客户端的请求之后,使用私钥解密该报文,获取对称密钥并使用CA证书的公钥加密,再发送给Web服务器;
+ Web服务器接收到客户端加密后的对称密钥,采用私钥解密,并使用对称密钥解密测试数据传给客户端;
+ Fiddler使用前面获取的对称密钥解密报文;
+ 客户端验证数据无误后,HTTPS连接建立完成,此时客户端开始向服务器发送使用对称密钥加密的业务数据;
+ Fiddler使用前面获取的对称密钥解密客户端发送的数据并重新加密转发给客户端。

 

https基本原理,是用非对称密钥协商出对称密钥,再用对称密钥来加密业务数据。

简述密钥协商、握手步骤。

客户端请求连接服务器,发送客户端支持的加密协议和版本列表等信息给服务器

服务端确认加密方法,并发送CA证书(证书中包含公钥)给客户端

客户端验证证书的可靠性(是否有效?是否合法?),并从CA证书中取出公钥,然后生成一个随机密钥K, 并用公钥加密得到K'发送给服务端。

服务端收到 k' 后用自己的私钥解密得到 k。

此时双方都得到了密钥 k,接下来就用密钥k数据传输,协商完成。

软件下载:

Fiddler官方下载地址:(Fiddler安装包 → FiddlerSetup.exe)

Willow插件官方下载地址:(Willow插件安装包 → WillowSetup-1.5.2.zip)

nginx 正向代理、反向代理解释

正向代理最大的特点:

客户端非常清楚明确要访问的服务器地址

服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端

正向代理模式屏蔽或者隐藏了真实客户端信息

 

反向代理,主要用于服务器集群分布式部署的情况下,反向代理隐藏了服务器的信息。

明白了fiddler 的原理,其实就清楚了。

tips: node 做中间代理服务器的时候,会遇到 fiddler,whistle,charles 之类的软件抓不到(fiddler的原理就是一个代理服务器,说明node的请求没有经过Fiddler代理服务器)

 

三、pc端浏览器、window软件 进行抓包

打开Fiddler(媒人/代理),Fiddler其实就是 古代的 “媒人” ,即 代理

寻到 Fiddler options 路径, Tools---> Options, 配置 Options,主要配置 HTTPSConnections 信息. 第一次配置会出现安装证书的请求,一路点击 就对了, 配置完毕一定要记得重启Fiddler,否则失效 

 Connections 配置,主要是 让手机 或电脑 链接 Fiddler(媒人),默认端口号为:8888

Fiddler(媒人)配置完毕,接着配置 客户端, 不择手段让 客户端 链接媒人,和媒人产生联系。

        打开windows 代理设置,代理配置路径,亲们自个百度

 

客户端已经和 Fiddler(媒人)产生一定联系了,已经可以抓取 windows软件 和 IE 了, 不信 上图给您看。

IE 抓包。 直接访问IE,Fiddler自动运行且拦截数据

 在这解释 下 IE 代理 自动变成 配置完的代理 ,打开IE 代理看看 

  windows 软件抓包,即 windows微信中 的小程序当然也可以抓取!如果是抓取小程序包的,就不用配置app的了,直接在电脑抓取即可,省事

接着说 谷歌 和 火狐浏览器的,他们的代理不像IE自动,需要手动配置他们的代理,这里 我以 谷歌为例。

第一种方式:寻到谷歌 代理配置路径(路径自己百度),配置:127.0.0.1:8888

 第二种方式:以上是简单做法,这种需要 翻墙 下载扩展程序(Proxy SwitchyOmega) ,进行配置

 

 

 可以进行愉快的抓包了

四、手机抓包

下面是如何使用fiddler对手机APP进行抓包:

安装后打开界面效果图如下:

 

每一个标签的说明这里不细说了,只说下需要抓包进行的操作:

1、因为fiddler抓包的原理就是通过代理,所以被测终端需要和安装fiddler的电脑在同一个局域网中。

2、开启Fiddler的远程连接,Fiddler 主菜单 Tools -> Fiddler Options…-> Connections页签,选中Allowremote computers to connect,并记住端口号为8888,等会设置手机代理时需要。设置好后重启fiddler保证设置生效。设置如下:

3、  查看电脑IP,在CMD中输入ipconfig:

4、在手机侧设置代理

设置-WLAN,找到连接的wifi长按,选择修改网络:

 

然后勾选高级选项,选择代理为手动,填入代理服务器为自己电脑IP,端口填入刚刚记住的8888:

这里是以Android手机举例的,如果是iPhone则可以在对应wifi的设置中直接配置HTTP代理。

5、现在就可以开始抓包了:

在手机上对APP进行操作,从fiddler上即可看到对应的网络请求信息:

 6.在右边的Composer标签页中可以定义并发送网络请求:

 

我们也可以直接将左侧抓到的网络请求直接拖到composer中然后进行相应修改即可测试不同参数下该接口的功能是否正常。

7、在filter标签中我们可以设置不同的过滤规则对抓取的包进行过滤:

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

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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/128463.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

具名挂载和匿名挂载

匿名卷挂载 : -v 的时候只指定容器内的路径 如下面这个:/etc/nginx 1.docker run -d -P --name nginx -v /etc/nginx nginx 2.查看所有卷 docker volume ls 这里发现,这就是匿名挂载,只指定容器内的路径,没有指定…

刷题学习记录BUUCTF

[极客大挑战 2019]RCE ME1 进入环境直接就有代码 <?php error_reporting(0); if(isset($_GET[code])){$code$_GET[code];if(strlen($code)>40){die("This is too Long.");}if(preg_match("/[A-Za-z0-9]/",$code)){die("NO.");}eval($co…

如何低门槛开发有趣实用的ZigBee产品?

一、什么是 Zigbee 协议&#xff1f; Zigbee 技术是一种连接距离短、功耗低、复杂程度低、数据传输量低的无线通信技术&#xff0c;其命名灵感源自于蜜蜂在群体中的信息传输。它主要通过网关与互联网进行通信&#xff0c;并嵌入各种智能设备&#xff0c;最终实现自动控制和远程…

射频功率放大器有哪些用途

射频功率放大器是一种专用于放大射频信号的设备&#xff0c;它在现代通信、广播、雷达、无线电频谱监测和科学研究等领域中发挥着重要的作用。射频功率放大器能够将输入的低功率射频信号放大为较高功率的信号&#xff0c;以满足各种应用场景对信号传输距离、质量和稳定性的要求…

基于SSM的博客系统

基于SSM的博客系统的设计与实现~ 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringMyBatisSpringMVC工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 主页 热点 博客详情 登录界面 管理员界面 博主界面 摘要 博客系统作为信息传播和分享的重…

Python 解决tkinter的Menu菜单command参数与bind方法共用触发事件

用普通函数作为媒介&#xff0c;使用event_generate()方法模拟触发bind()事件来创建一个模拟的event对象&#xff0c;并将其传递给绑定的事件处理函数。 运行结果 示例代码 import tkinter as tk# 菜单事件 def menuEvent(event):print(event.x, event.y)label.config(textf鼠…

香港科技大学广州|机器人与自主系统学域博士招生宣讲会—武汉大学专场!!!(暨全额奖学金政策)

在机器人和自主系统领域实现全球卓越—机器人与自主系统学域 硬核科研实验室&#xff0c;浓厚创新产学研氛围&#xff01; 教授亲临现场&#xff0c;面对面答疑解惑助攻申请&#xff01; 一经录取&#xff0c;享全额奖学金1.5万/月&#xff01; &#x1f559;时间&#xff1a;…

香橙派5部署chatglm2-6b模型

香橙派5部署chatglm2-6b模型 环境信息&#xff1a; 部署服务器&#xff1a;orangepi 5 16G版本 系统版本&#xff1a;Ubuntu 22.04.3 LTS 参考文档&#xff1a; 利用GPU加速&#xff0c;在Orange Pi上跑LLMs &#xff1a; https://zhuanlan.zhihu.com/p/650110025 遥遥领…

二十三、W5100S/W5500+RP2040树莓派Pico<Web I/O 通过网页控制板载LED灯>

文章目录 1 前言2 简介2 .1 什么是Web&#xff1f;2.2 Web的优点2.3 Web数据交互原理2.4 Web应用场景 3 WIZnet以太网芯片4 HTTP网络设置示例概述以及使用4.1 流程图4.2 准备工作核心4.3 连接方式4.4 主要代码概述4.5 结果演示 5 注意事项6 相关链接 1 前言 Web只是一个静态的文…

java项目之网上跳蚤市场(ssm框架)

项目简介 网上跳蚤市场实现了以下功能&#xff1a; 管理员功能需求 管理员登陆后&#xff0c;主要模块包括首页&#xff0c;个人中心&#xff0c;会员管理&#xff0c;商品分类管理&#xff0c;商品信息管理&#xff0c;求购信息管理&#xff0c;留言板管理&#xff0c;系统管…

JNPF开发平台:加速企业数字化转型,提升业务效率

如今&#xff0c;随着信息化的深入发展&#xff0c;数字化转型已经成为企业生存和发展的关键。为了在竞争激烈的市场中保持领先地位&#xff0c;企业需要快速地适应变化&#xff0c;优化业务流程&#xff0c;并提供优质的用户体验。而在这其中&#xff0c;低代码开发平台JNPF是…

搜款网VVIC商品详情API接口

搜款网VVIC商品详情接口提供了全面的API接口&#xff0c;通过该接口&#xff0c;开发者可以使用商品ID等参数请求API&#xff0c;获取商品的详细信息&#xff0c;如商品标题、描述、价格、库存状态、销售量等。 要使用VVIC商品详情接口&#xff0c;您需要先注册开发者账号并申…

HCIP---VRRP

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 一. VRRP概述 VRRP---虚拟路由器冗余协议 VRRP&#xff08;Virtual Router Redundancy Protocol&#xff09;是一种用于在多个路由器之间创建虚拟路由器的协议。 VRRP使用了一系列协议来实现路…

5+m6A+预后模型+WGCNA,简单又高效,学习下这篇思路吧

今天给同学们分享一篇生信文章“Targeting AURKA in Cancer: molecular mechanisms and opportunities for Cancer therapy”&#xff0c;这篇文章发表在Front Endocrinol (Lausanne)期刊上&#xff0c;影响因子为5.2。 结果解读&#xff1a; 在训练集中&#xff0c;基于3个与…

GC5958低压三相无刷直流驱动芯片,无感,正弦,低压,PWM调速可替代APX9358/茂达

GC5958提供了无传感器的三相无刷直流电机的速度控制的所有电路。正弦波驱动器的方法将是更好的低噪声。控制器功能包括启动电路、反电动势换向控制。脉宽调制) 速度控制。锁定保护和热关断电路GC5958既适合游戏机器&#xff0c;也适用于需要无声驱动的CPU冷却器。它以DFN3x3-10…

麒麟KYLINIOS软件仓库搭建03-软件仓库添加新版本的软件包

原文链接&#xff1a;麒麟KYLINIOS软件仓库搭建03-软件仓库添加新版本的软件包 hello&#xff0c;大家好啊&#xff0c;今天给大家带来麒麟桌面操作系统软件仓库搭建的文章03-软件仓库添加新版本的软件包&#xff0c;本篇文章主要给大家介绍了如何在麒麟桌面操作系统2203-x86版…

嵌入式面试常见问题(三)

1.linux下的proc文件夹是干什么的&#xff1f; 进程信息&#xff1a;/proc文件夹包含有关系统上运行的每个进程的信息。您可以在/proc中找到以进程ID&#xff08;PID&#xff09;为名称的子文件夹&#xff0c;每个子文件夹包含有关特定进程的信息&#xff0c;如状态、命令行参数…

【云栖2023】王峰:开源大数据平台3.0技术解读

本文根据2023云栖大会演讲实录整理而成&#xff0c;演讲信息如下&#xff1a; 演讲人&#xff1a;王峰 | 阿里云研究员&#xff0c;阿里云计算平台事业部开源大数据平台负责人 演讲主题&#xff1a;开源大数据平台3.0技术解读 实时化与Serverless是开源大数据3.0时代的必然选…

如何帮助 3D CAD 设计师实现远程办公

当 3D CAD 设计师需要远程办公时&#xff0c;他们可能需要更强的远程软件&#xff0c;以满足他们的专业需求。比如高清画质&#xff0c;以及支持设备重定向、多显示器支持等功能。3D CAD 设计师如何实现远程办公&#xff1f;接下来我们跟随 Platinum Tank Group 的故事来了解一…

Java类和对象(2)

&#x1f435;本文继续讲解类和对象相关知识 一、封装 封装就是将对象的属性和实现方法隐藏起来&#xff0c;外部无法获得具体的实现细节&#xff0c;只对外公开接口和对象进行交互&#xff0c;将对象的属性隐藏起来的办法就是用关键字private&#xff0c;被private修饰的成员…