热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

fiddler(8)主要功能运用

原文:https:blog.csdn.netweixin_48520816articledetails125205162 为什么要用抓包,那就是为了更好的定位问题,让测试看起来更加

原文:https://blog.csdn.net/weixin_48520816/article/details/125205162

 

为什么要用抓包,那就是为了更好的定位问题,让测试看起来更加的专业

2、协助做接口测试。没有接口文档的情况下,先抓包,再调用接口测试

3、协助做接口自动化测试。看下网站或app内真实的传参情况,模拟传参去做接口自动化测试

 

三、fiddler的配置-抓包准备阶段
3.1 证书配置,点击Tools->Options->HTTPS

打开Fiddler菜单项Tools->TelerikFiddler Options->HTTPS,
勾选CaptureHTTPS CONNECTs–捕获 HTTPS 连接,
勾选Decrypt HTTPS traffic和Ignore servercertificate errors两项–HTTPS 请求解密和忽略服务器端验证错误
,点击OK(首次点击会弹出是否信任fiddler证书和安全提示,直接点击yes就行)

 

当然抓取https是需要先安装并信任证书的

在这里插入图片描述
信任证书
在这里插入图片描述

在这里插入图片描述
设置端口号,并保存,重启fiddler
在这里插入图片描述

 

 

3.2 配置fiddler允许远程连接抓包
点击Tools->TelerikFiddler Options->Connections,勾选allow remote computers to connect–允许远程电脑连接,默认监听端口为8888,端口号也可以改成其他

在这里插入图片描述

 

 

3.3 移动端(手机或pad)代理设置
1、确保你连的wifi和你的电脑在同一局域网,手机点击:设置-WiFi-高级,代理选择手动,主机名就是fiddler的电脑ip地址,端口号,就是fiddler的端口号ttps://img-blog.csdnimg.cn/c96ed7aa6e5943b298e511d62d17595e.png)

2、打开手机浏览器,输入:ip:端口号,回车,浏览器会自动带上http://去请求,即:http://ip:端口号
ip 可以在这里看:

 

 

 

3、前往之后会跳转到证书下载页,点击FiddlerRootcertificate下载证书

 

 

4、点击下载之后,安装证书,证书名字最好不要写默认,预防其他人使用你手机会把你的证书覆盖

5、安卓端直接安装,ios端证书安装后需要信任证书:设置–通用–关于本机–证书信任设置–(对应证书的开关)
安卓7.0.0以上版本 证书不太好安装,可以参考一下方法:
方法一:

 

 

方法二:
使用wifi的高级设置进行安装。以华为EMUI8.0.0(Android8.0.0)为例:设置-》无线和网络-》WLAN-》更多-》高级WLAN设置-》安装证书。

以上总结:
在这里插入图片描述


四、fiddler主要功能的使用

4.1 Fiddler 抓包 显示server ip

显示出现serverIp方便看当前是否走到了测试环境,是否是开发部署的IP

1、快捷键Ctrl+R ,打开 Customize Rules.js文件, 或者在工具栏Rules–》Customize Rules…点击打开

2、查找static function Main() 这个函数,在FiddlerObject.StatusText = " CustomRules.js was loaded at: " + today; 这行下面新增一行:FiddlerObject.UI.lvSessions.AddBoundColumn(“ServerIP”, 120, “X-HostIP”);保存重启 Fiddler ,则fiddler可以看到server ip一栏

 

 

 

 

 

4.2 返回报文乱码处理
有时候我们看到Response中的HTML是乱码的, 这是因为HTML被压缩了, 我们可以通过两种方法去解压缩。

点击Response Raw上方的"Response is encoded any may need to be decoded before inspection. click here to transform"
选中工具栏中的"Decode"。 这样会自动解压缩

 

 

 

 

4.3 fiddler过滤域名
有时候我们只想抓取自己想要的请求
我们可以在Filers面板中勾选“Use Filters”
1.Hosts第一项默认“No zone filter”
2.Hosts第二项选择“Show Only The Following Hosts”只显示过滤到的域名,多个域名使用”;“分号分割

 

 

 

4.4 查看响应时间
在class Handlers 最前面(也可以其他位置,最前面仅仅是不容易被{}弄乱)添加以下代码:

// 显示每行请求的发起时间:时分秒毫秒
public static BindUIColumn("BeginTime", 80)
function BeginTimingCol(oS: Session){
return oS.Timers.ClientDoneRequest.ToString("HH:mm:ss.fff");
}

// 显示每行请求的响应时间:时分秒毫秒
public static BindUIColumn("EndTime", 80)
function EndTimingCol(oS: Session){
return oS.Timers.ServerDoneResponse.ToString("HH:mm:ss.fff");
}

// 显示每行请求的服务端耗时时间
public static BindUIColumn("Time Taken", 80)
function CalcTimingCol(oS: Session){
var sResult = "0";
if ((oS.Timers.ServerDoneResponse > oS.Timers.ClientDoneRequest)) {
sResult = (oS.Timers.ServerDoneResponse - oS.Timers.ClientDoneRequest).TotalMilliseconds.ToString("N0");
}
return sResult + "ms";
}

 

 

在保存该代码,重新打开fiddler,有请求后即可看到接口耗时,可以按自己的需求把此参数往前移动,移动到方便查看的地方

 

 

4.5 拦截修改返回,模拟http响应
1.打开Fiddler 找到AutoResponde
2.选择Enable rules 和Unmatched requests passthrough–求匹配不到的话,就会请求原地址,Enable Latenc可以设置延时
3.选中左侧的http请求,然后点击Add Rule
4.在下面的Rule Editor 下拉选择要模拟的响应类型,200、404、502等(也可以自己创建Response,选中Create New Response…,如果是要替换掉某些页面文件,选中Find a file). 最后点击Save 保存下。

基本规则:
前缀为“EXACT:”表示完全匹配(大小写敏感)
无前缀表示基本搜索,表示搜索到字符串就匹配
前缀为“NOT:”表示发现就不匹配
前缀为“REGEX:”表示使用正则表达式匹配
前缀为“REGEX:(?insx)”表示匹配方式其中:
i表示不区分大小写
n表示指定的唯一有效的捕获是显式命名或编号的形式
s表示单行模式
x表示空格说明的
举例:regex:.+getGeetestCaptcha.do*

 

 

 

拦截成功后的请求,接口会有颜色标识

 



推荐阅读
  • LeetCode 540:有序数组中的唯一元素
    来源:力扣(LeetCode),链接:https://leetcode-cn.com/problems/single-element-in-a-sorted-array。题目要求在仅包含整数的有序数组中,找到唯一出现一次的元素,并确保算法的时间复杂度为 O(log n) 和空间复杂度为 O(1)。 ... [详细]
  • 本文详细介绍了 BERT 模型中 Transformer 的 Attention 机制,包括其原理、实现代码以及在自然语言处理中的应用。通过结合多个权威资源,帮助读者全面理解这一关键技术。 ... [详细]
  • Explore how Matterverse is redefining the metaverse experience, creating immersive and meaningful virtual environments that foster genuine connections and economic opportunities. ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • 资源推荐 | TensorFlow官方中文教程助力英语非母语者学习
    来源:机器之心。本文详细介绍了TensorFlow官方提供的中文版教程和指南,帮助开发者更好地理解和应用这一强大的开源机器学习平台。 ... [详细]
  • Java 中 Writer flush()方法,示例 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 本文探讨了如何像程序员一样思考,强调了将复杂问题分解为更小模块的重要性,并讨论了如何通过妥善管理和复用已有代码来提高编程效率。 ... [详细]
  • python的交互模式怎么输出名文汉字[python常见问题]
    在命令行模式下敲命令python,就看到类似如下的一堆文本输出,然后就进入到Python交互模式,它的提示符是>>>,此时我们可以使用print() ... [详细]
  • 火星商店问题:线段树分治与持久化Trie树的应用
    本题涉及编号为1至n的火星商店,每个商店有一个永久商品价值v。操作包括每天在指定商店增加一个新商品,以及查询某段时间内某些商店中所有商品(含永久商品)与给定密码值的最大异或结果。通过线段树分治和持久化Trie树来高效解决此问题。 ... [详细]
  • Java 中的 BigDecimal pow()方法,示例 ... [详细]
  • 本文总结了汇编语言中第五至第八章的关键知识点,涵盖间接寻址、指令格式、安全编程空间、逻辑运算指令及数据重复定义等内容。通过详细解析这些内容,帮助读者更好地理解和应用汇编语言的高级特性。 ... [详细]
  • 探讨如何高效使用FastJSON进行JSON数据解析,特别是从复杂嵌套结构中提取特定字段值的方法。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文详细介绍了如何使用Maven高效管理多模块项目,涵盖项目结构设计、依赖管理和构建优化等方面。通过具体的实例和配置说明,帮助开发者更好地理解和应用Maven在复杂项目中的优势。 ... [详细]
author-avatar
精典伏击
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有