Fiddler安装与使用教程(2) —— 软测大玩家

在这里插入图片描述

 
 

在这里插入图片描述
😏作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。
📡主页地址:【Austin_zhai】
🙆目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能,分享行业相关最新信息。
💎声明:博主日常工作较为繁忙,文章会不定期更新,各类行业或职场问题欢迎大家私信,有空必回。

在这里插入图片描述

 
 

阅读目录

  • 1. 接上回
  • 2. 基础使用
  • 3. 移动端抓包
  • 4. 命令行
  • 5. 注意点

1. 接上回

在这里插入图片描述
  说到网络调试工具,相信在软件测试行业中的小伙伴几乎都听过Fiddler的名字,没错,它与Wireshark,Charles,Tcpdump都是市面上主流的网络调试工具。而作为一个合格的软件测试工程师,网络相关的基础技能与知识又是不可或缺的一部分,上一篇我们介绍了Fiddler这款软件的安装与基础项配置的内容,接下来博主就继续为大家带来Fiddler日常中的一些高频操作与功能。

 
 
 

2. 基础使用

在这里插入图片描述
  我们先来简单的看一下基础使用,这里用C站来做例子,我们先在本地访问一下各自的博客首页,因为我们没有在Fiddler中做任何的过滤,一定会有大量的session出现在会话列表中,不过无妨,先找到之前访问的session选中之后来看一下。

在这里插入图片描述
 

  就如上图所展示的,上面是一个get类型的请求,在Fiddler的HTTP请求区域中可以看到由两个部分组成,一个就是我们的请求路径,一般称为Request Line;另一个就是请求头,也就是Header。这个就是最最基本的请求的组成。具体的消息结构就不再这里扩展了,大家可以自行学习。

 
 
 

  那么对于get类型的请求,服务器就会根据你的请求路径进行判断,并返回给客户端对应的响应。如下图,对于响应可以分为三个部分,第一个就是我们的http状态码,第二个是响应头,最后则是返回的响应消息体。在我们的接口测试中也同样是根据返回的响应中的这三个部分中的特定内容来进行断言和用例执行的。

在这里插入图片描述

 
 
 

  相对来说POST类型的请求相比GET多了Body部分,所以在请求区域中可以看到每个post请求所带的入参。
在这里插入图片描述

 
 
 

  同样的服务器的响应依旧是之前的消息体格式,这个是不会有任何差别的。
在这里插入图片描述

 
 
 

3. 移动端抓包

在这里插入图片描述
  我们在配置移动端之前先查看自己的本机内网IP,我们在Fiddler首页右上角用鼠标悬停查看IP信息,端口信息在上一篇的文章中已经配置和介绍过了,默认为8888。

在这里插入图片描述

 
 
 

  我们这里以安卓手机为例,先进入到手机的设置界面,找到WLAN选项,找到与你Fiddler服务本机同网段的无线网络并连接,长按当前的无线网络,在菜单中选择修改网络,然后勾选显示高级选项,在代理中选择手动,接着就能看见代理下会有几个新的选项出现,填写的内容可以参照下图;服务器主机名内填写启动Fiddler本机的IP,服务器端口如果没修改过的话填写默认的Fiddler服务端口8888,改了就自行修改即可。
在这里插入图片描述

 
 
 

  修改完移动端的网络代理后,我们就可以在手机浏览器中输入Fiddler服务的地址,格式为IP+PORT的形式,博主这边访问的就是10.31.1.195:8888;这里需要注意的是很多新手很容易将端口前的冒号输入成中文标点符号的形式,仔细观察冒号前后的空余长度就可以发现,这里必须是英文的。

  输入访问url后就可以在浏览器中正常的访问到Fiddler服务了,如果看到下图的画面,那说明你的移动端网络与Fiddler服务是正确配置了的。

在这里插入图片描述

 
 
 

  接下来我们就需要在这里下载所需的根证书,点击画面上的超链接FiddlerRoot certificate将根证书下载到移动端本地。下载完毕后我们直接打开根证书,界面会跳转至安卓的证书安装器,我们这里的证书名称可以随意填写,但如果你的测试手机中需要安装多个Fiddler根证书则最好区分命名,不然后期管理起来会比较费神。凭证用途选择默认的VPN与应用,最后点击确定即可。

在这里插入图片描述

 
 
 

  设置完成之后,如果没有在Fiddler做任何session过滤的话应该可以看到移动端上的数据已经通过Fiddler进行捕获了。这里大家可以根据自己的业务与APP请求地址进行过滤以确保不会出现太多的无用信息。

  这里还需要强调一下iOS的移动端设置,除了上面说的根证书安装步骤之外还需要多做一步操作,在我们的设置界面中选择通用 -> 关于本机 -> 证书信任设置,在该选项界面中找到对应的Fiddler根证书并开启,这样才可以使Fiddler正确的捕获到iOS移动设备上的数据。

在这里插入图片描述

 
 

在这里插入图片描述

 
 
 

4. 命令行

在这里插入图片描述
  虽然命令行在Fiddler的整个界面中只占了极小的一部分,不注意看都有可能被忽略掉,但它在我们的Fiddler日常使用中的出现频率却是极高的。能用好命令行的话可以大大提高我们的捕获与分析效率,相较于直接在UI上点点点要来的效率很多。

  接下来我们就来看几个在日常工作中经常会用到的命令。

 

? :问号用来做一些关键字的搜索与匹配,我们在问号后面输入一些你要搜索的关键字符串,所有匹配的都会被高亮

在这里插入图片描述

 
 
 

= :等号后面是用来连接HTTP方法与状态码,以达到高亮指定条件的效果。

在这里插入图片描述

 
 
 

">"与“<” :大于与小于号,简单来说这两个符号后面连接数字,来指定大于或小于当前数字的消息体大小。
这里我们指定了消息体小于3000

在这里插入图片描述

 
 
 

@ :@符号后连接的是host或url,我们可以指定任意字符来对host与url进行快速定位。
这里我们@后连接csdn

在这里插入图片描述

 
 
 

cls、clear :用来清除当前的会话列表中的所有session记录,也可以用快捷组合键Ctrl + X来实现。

 

dump :将目前会话列表中的所有会话进行压缩保存,存储路径为:C:\Users\用户名\Documents\Fiddler2\Captures

在这里插入图片描述

 
 

bps :bps后连接需要中断的HTTP状态码,输入后会立即中断所有当前指定状态码的session。

 

bpv :用法与bps相同,之后不过连接的是HTTP请求方法,输入后会立即中断所有当前指定方法的session。

 

g、go :放行当前所有中断的session。

 

start、stop :开始Fiddler与关闭Fiddler的数据流量捕获。

 

show、hide :显示与隐藏Fiddler主界面。

 

select :select后面需要连接指定的响应类型,输入后高亮所匹配中的session。

 

keeponly :这个与select类似,只不过keeponly会将不符合条件的其他session从会话列表中删除。

 

urlreplace :urlreplace与python中的replace功能类似,后面连接两个参数,第一个为原字符串,第二个为替换后的字符串。如果不带参数直接输入urlreplace则代表恢复最初的样式。

 

quit :就是字面意思,输入后直接关闭Fiddler。

 
 
 

5. 注意点

在这里插入图片描述

  1. 我们在查看某些响应的时候,会发现body中的信息是乱码,这是因为内容被压缩的关系,可以看到类型额为gzip。我们可以点击HTTP响应区域上方的Response body is encoded. Click to decode来对body进行解码,或者直接点击工具栏上的Decode按钮来进行解码。这样我们就可以直接看到对应的内容了。
    在这里插入图片描述

 
Decode后的body内容展示。
在这里插入图片描述

 
 

  1. 我们日常中除了使用命令行的?命令之外,还可以使用通用搜索,快捷键与windows的文件操作一致,为Ctrl+F,在这里面我们同样可以搜索关键字来快速定位与高亮你所需要搜索的session,而且这里的高亮还可以设置特定的颜色。
    在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

力扣(LeetCode)算法_C++——移位字符串分组

给定一个字符串&#xff0c;对该字符串可以进行 “移位” 的操作&#xff0c;也就是将字符串中每个字母都变为其在字母表中后续的字母&#xff0c;比如&#xff1a;“abc” -> “bcd”。这样&#xff0c;我们可以持续进行 “移位” 操作&#xff0c;从而生成如下移位序列&am…

李宏毅-21-hw3:对11种食物进行分类-CNN

一、代码慢慢阅读理解总结内化&#xff1a; 1.关于torch.nn.covd2d()的参数含义、具体用法、功能&#xff1a; &#xff08;1&#xff09;参数含义&#xff1a; 注意&#xff0c;里面的“padding”参数&#xff1a;《both》side所以是上下左右《四》边都会加一个padding数量…

二叉树的递归遍历和非递归遍历

目录 一.二叉树的递归遍历 1.先序遍历二叉树 2.中序遍历二叉树 3.后序遍历二叉树 二.非递归遍历(栈) 1.先序遍历 2.中序遍历 3.后序遍历 一.二叉树的递归遍历 定义二叉树 #其中TElemType可以是int或者是char,根据要求自定 typedef struct BiNode{TElemType data;stru…

QT连接OpenCV库完成人脸识别

1.相关的配置 1> 该项目所用环境&#xff1a;qt-opensource-windows-x86-mingw491_opengl-5.4.0 2> 配置opencv库路径&#xff1a; 1、在D盘下创建一个opencv的文件夹&#xff0c;用于存放所需材料 2、在opencv的文件夹下创建一个名为&#xff1a;opencv3.4-qt-intall 文…

软件工程的概念及其重要性

软件工程是指将工程原理和方法应用于软件开发过程的学科&#xff0c;涉及软件的设计、开发、测试、维护和管理等各个阶段。它旨在提高软件开发的效率和质量&#xff0c;并确保软件满足用户的需求和预期。 软件工程的重要性体现在以下几个方面&#xff1a; 提高开发效率&#x…

探索 SOCKS5 代理在跨境电商中的网络安全应用

随着全球化的发展&#xff0c;跨境电商成为了商业界的一颗新星&#xff0c;为企业提供了无限的发展机遇。然而&#xff0c;随之而来的是网络安全的挑战&#xff0c;特别是在处理国际网络流量时。在这篇文章中&#xff0c;我们将探讨如何利用 SOCKS5 代理和代理 IP 技术来加强跨…

Java设计模式:一、六大设计原则-04:迪米特法则

文章目录 一、定义&#xff1a;迪米特法则二、模拟场景&#xff1a;迪米特法则原则三、违背方案&#xff1a;迪米特法则原则3.1 工程结构3.2 学生、老师、校长类3.2.1 学生类3.2.2 老师类3.2.3 校长类 3.3 单元测试 四、改善代码&#xff1a;迪米特法则原则4.1 工程结构4.2 学生…

react脚手架初始化项目及ts的应用(react+ts)

1. 安装react脚手架 npm install -g create-react-app 或是 yarn add -g create-react-app2. 初始化项目 快速构建出项目名为my-app的react+ts项目 create-react-app my-app --template typescript3. 配置路径别名 在引入文件时如果都是…/ …/…/这种相对路径方式引用可读性…

vue-cli3项目本地启用https,并用mkcert生成证书

在项目根目录下的vue.config.js文件中&#xff1a; // vue.config.js module.exports {devServer: {host:dev.nm.cngc// 此处开启 https,并加载本地证书&#xff08;否则浏览器左上角会提示不安全&#xff09;https: {cert: fs.readFileSync(path.join(_dirname,./cert.crt)…

【docker】运行redis

拉取redis镜像 有多种选择&#xff1a; redis&#xff08;基础版&#xff09;redis/redis-stack&#xff08;包含redis stack server和RedisInsight&#xff09;redis/redis-stack-server&#xff08;仅包含redis stack server&#xff09; docker pull redis docker pull r…

Python Qt学习(十)一个简易的POP3邮件客户端

公司把126这类的邮箱网站都封了&#xff0c;正好现在无事&#xff0c;加之&#xff0c;算是一个对这俩周学习Qt的一个总结吧。遂写了这么一个简易的通过POP3协议接收126邮件的客户端。 源代码&#xff1a; # -*- coding: utf-8 -*-# Form implementation generated from read…

创建2个线程并执行(STL/Windows/Linux)

C并发编程入门 目录 STL 写法 #include <thread> #include <iostream> using namespace std;void thread_fun1(void) {cout << "one STL thread 1!" << endl; }void thread_fun2(void) {cout << "one STL thread 2!" <…

uni-app之android离线自定义基座

一 为什么要自定义基座 1&#xff0c;基座其实就是一个app&#xff0c;然后新开发的页面可以直接在手机上面显示&#xff0c;查看效果。 2&#xff0c;默认的基座就是uniapp帮我们打包好的基座app&#xff0c;然后我们可以进行页面的调试。 3&#xff0c;自定义基座主要用来…

【Java SE】抽象类与接口

目录 【1】抽象类 【1.1】抽象类概念 【1.2】抽象类语法 【1.3】抽象类特性 【1.4】抽象类的作用 【2】接口 【2.1】接口的概念 【2.2】语法规则 【2.3】接口使用 【2.4】接口特性 【2.5】实现多个接口 【2.6】接口间的继承 【2.7】接口使用实例 【2.8】Clonable …

SVPWM的原理及法则推导和控制算法详解

空间电压矢量调制 SVPWM 技术 SVPWM是近年发展的一种比较新颖的控制方法&#xff0c;是由三相功率逆变器的六个功率开关元件组成的特定开关模式产生的脉宽调制波&#xff0c;能够使输出电流波形尽 可能接近于理想的正弦波形。空间电压矢量PWM与传统的正弦PWM不同&#xff0c;它…

通讯软件017——分分钟学会Kepware OPC UA Server配置

本文介绍如何配置Kepware OPC UA Server&#xff0c;通过本文可以对OPC UA的基本概念有所了解&#xff0c;掌握OPC UA的本质。更多通信资源请登录网信智汇(wangxinzhihui.com)。 1. 创建OPC UA Server 点击“OPC UA Configuration”&#xff0c;弹出配置界面。 点击“添加”&a…

vue开启屏幕录制

在不使用https的时候&#xff0c;只能localhost使用&#xff0c;保护机制 一、导入依赖 npm install vue-webrtc --save2、使用 <template><div><button click"startRecording">开始录制</button><button click"stopRecording&quo…

数据结构 > 什么是数据结构?

目录 1.什么是数据结构&#xff1f; 2.什么是算法&#xff1f; 3.数据结构和算法的重要性 4.如何学好数据结构和算法 5.总结 很多时候我们都叫数据结构和算法 1.什么是数据结构&#xff1f; 数据结构(Data Stricture)是计算机存储、组织数据的方式&#xff0c;指相互之间…

java八股文面试[数据库]——explain

使用 EXPLAIN 关键字可以模拟优化器来执行SQL查询语句&#xff0c;从而知道MySQL是如何处理我们的SQL语句的。分析出查询语句或是表结构的性能瓶颈。 MySQL查询过程 通过explain我们可以获得以下信息&#xff1a; 表的读取顺序 数据读取操作的操作类型 哪些索引可以被使用 …

正中优配:政策预期叠加资金面压制 债市回调至“降息”前

地产方针利好和资金面边沿收紧的压制之下&#xff0c;债券商场出现了回调。 到9月6日收盘&#xff0c;10年期国债收益率上行2.4个基点报2.665%&#xff0c;已回到降息之前的点位。 资金面也在收敛&#xff0c;到6日收盘&#xff0c;DR001加权均匀利率报1.51%&#xff0c;较前…