3.2 Fiddler基础测试

devtools/2024/11/14 3:59:57/

1 请求响应报文

1.1 请求部分

  1. Headers:显示请求的头信息,重点关注请求类型。
  2. textView & SyntaxView:分别以纯文本和语法高亮的方式显示请求参数。
  3. WebForms:显示请求的 GET 参数和 POST body 内容。
  4. HexView:以十六进制格式显示请求数据。
  5. Auth:显示请求头中的认证信息,如 Proxy-Authorization。
  6. Cookies:显示请求中发送的 cookie 信息。
  7. Raw:将整个请求显示为纯文本格式。
  8. Json & XML:如果请求的 body 是 JSON 或 XML 格式,会以分级结构显示相应内容。

1.2 响应部分

  1. Transformer:显示响应的编码信息。
  2. Headers:分级显示响应的头信息。
  3. textView & SyntaxView:分别以文本和语法高亮方式显示响应 body。
  4. ImageView:如果响应是图片资源,则显示相应的图片。
  5. HexView:以十六进制格式显示响应数据。
  6. WebView:显示响应在 Web 浏览器中的预览效果。
  7. Auth:显示响应头中的 Proxy-Authorization 和 Authorization 信息。
  8. Caching:显示请求的缓存信息。
  9. Cookies:显示请求中的 cookie 信息及私密的 P3P Header 信息。
  10. Raw:将整个响应显示为纯文本。
  11. XML:如果响应的 body 是 XML 格式,则以分级的 XML 树结构显示。

在这里插入图片描述

2 定位前后端问题

2.1 拦截HTTP请求和响应

  1. 启动Fiddler并配置相关设置

    • 打开Fiddler,配置代理设置,确保它能够正确地捕获从浏览器或客户端发送的请求。
    • 配置Fiddler捕获的请求范围,可以选择“捕获所有请求”或者只捕获特定的请求。
  2. 拦截HTTP请求与响应

    • 在Fiddler界面中,所有HTTP请求和响应都会被自动捕获并显示。
    • 请求被列在 Sessions 面板中,点击任何一个请求,可以查看请求的详细信息,包括请求头、请求体、响应头、响应体等。

2.2 分析HTTP数据包

  1. 检查请求的详细信息
    选择一个请求,查看它的 Request(请求)部分。确认请求方法(如GET、POST等)、请求头信息(如Content-Type、Authorization等)和请求体(如参数、数据等)。

  2. 检查响应的详细信息
    查看请求返回的响应数据。特别关注响应状态码、返回的JSON或HTML数据以及响应头。

2.3 判断问题来源

1. 前端问题
前端问题通常与请求的发送、数据处理或UI渲染相关。可以通过以下几种情况判断:

  • Fiddler没有捕获到请求
    如果Fiddler没有拦截到任何请求,说明前端页面可能没有正确绑定事件,或者JavaScript代码出现了错误。可以检查前端代码,确保请求逻辑正确触发。

  • 请求已发送但响应数据不符合预期
    如果请求被成功发送,但返回的响应数据不符合预期,且确认前端传递的数据是正确的,那么问题可能出在前端的处理逻辑中。例如,数据解析错误、UI更新失败等。

  • 响应数据存在但未显示
    如果返回的数据在 RawJSON 响应体中已正确返回,但在前端界面中未正确显示,那么很可能是前端的显示逻辑存在问题。检查前端代码中数据渲染的部分,确保响应数据被正确解析和显示。

2. 后端问题
后端问题通常与请求的处理、数据的返回以及服务器的状态有关。可以通过以下几种情况判断:

  • Fiddler捕获到请求但响应错误
    如果Fiddler成功捕获到请求并且返回的结果不符合预期,并且确认前端传递的数据是正确的,那么问题可能在于后端服务的处理逻辑。

  • 响应状态码为500
    500状态码表示服务器内部错误,通常是后端代码逻辑或数据库查询等出现了问题。需要检查后端日志,定位错误发生的具体位置。

  • 响应状态码为404
    404状态码表示请求的资源未找到。可能是请求的URL路径错误,或者后端服务未找到对应的处理方法。在这种情况下,可以检查前端请求的URL是否正确,并确认后端服务是否正确注册了该接口。

  • 返回的数据不完整或为空
    如果后端返回的数据格式正确,但预期的数据未包含在响应中,问题可能出在后端的数据生成或查询部分。可以通过检查后端接口的实现和数据库查询逻辑,确保数据正确返回。

3 弱网测试

①定义
弱网测试是指在网络状况较差的情况下,模拟应用程序的使用场景,评估应用在各种网络状况下的表现。常见的网络问题包括:网络延迟、丢包、带宽不足等,这些都会直接影响应用的稳定性和用户体验。

②步骤

  1. 安装Fiddler
    首先,下载并安装Fiddler。安装完成后,打开Fiddler,进入主界面。

  2. 打开ScriptEditor
    Fiddler 提供了脚本编辑功能,允许用户自定义请求和响应规则。要打开 ScriptEditor,可以按 Ctrl + F12,或从菜单栏选择 Rules -> Customize Rules,进入脚本编辑窗口。
    在这里插入图片描述

  3. 设置网络模拟速度
    网络模拟速度默认上传速度为300KB/s,下载速度为150ms的延迟。
    更改步骤如下:
    快捷键 Ctrl+F 查找 m_SimulateModem 标志位
    在这里插入图片描述

  4. 测试模拟网络环境
    从菜单栏选择 Rules -> Performance -> Simulate modem speed
    在这里插入图片描述

  5. 分析测试结果
    进行弱网模拟后,观察应用程序的表现。常见的性能问题包括:

    • APP崩溃:检查应用是否在弱网环境下容易崩溃。
    • ANR(应用无响应):查看在网络延迟和丢包的情况下,应用是否发生长时间无响应。
    • 数据丢失:测试应用是否能够在网络中断或不稳定的情况下保持数据的完整性。
  6. 优化网络设置
    根据测试结果优化应用的网络请求逻辑,例如:

    • 重试机制:在请求失败时,加入重试机制,保证请求的成功率。
    • 异步处理:将网络请求的耗时操作进行异步处理,避免UI线程被阻塞,提升用户体验。
    • 数据缓存:在网络不稳定时,考虑本地缓存机制,减少对实时数据的依赖。

4 Mock测试

①定义
Mock 测试是一种在测试过程中使用虚拟数据替代真实数据的测试方法。当某些接口尚未开发完成、难以构造,或者无法立即获取时,可以使用 Mock 数据来模拟接口的返回结果。
例如:有一个登录或下单支付的流程接口需要测试,而后端接口开发尚未完成,我们可以通过 Mock 测试来模拟接口返回成功的结果,继续测试流程的其他部分。

②步骤

  1. 启动 Fiddler 并选择菜单栏中的 AutoResponder 选项

  2. 勾选 Enable Rules(启用规则)以允许创建和启用模拟规则

  3. 选择要模拟的接口路径并拖入选择域

  4. 创建一个包含 Mock 数据的文本文件
    在这里插入图片描述

  5. 配置完成后,点击 Save 进行保存,确保规则已启用
    在这里插入图片描述

在这里插入图片描述
前端请求指定接口时,Fiddler 会自动拦截请求,并返回我们预设的 Mock 数据,从而模拟接口的响应。
在这里插入图片描述


http://www.ppmy.cn/devtools/133353.html

相关文章

前后端交互接口(一)

前后端交互接口(一) 前言 在上一集我们就完成了全局通知窗口的功能,这一集开始我们也要开始讲讲前后端交互接口这件事情,以及谈谈客户端和服务端开发的一些事情。 后续的规划 我们会先完成整个客户端才开始接入服务端的内容。…

Linux I/O编程:I/O多路复用与异步 I/O对比

文章目录 0. 引言1. I/O 模型简介1.1 阻塞 I/O(Blocking I/O)1.2 非阻塞 I/O(Non-Blocking I/O)1.3 信号驱动式 I/O(Signal-Driven I/O)1.4 多路复用 I/O(I/O Multiplexing)1.5 异步…

电脑不显示wifi列表怎么办?电脑不显示WiF列表的解决办法

有用户会遇到电脑总是不显示wifi列表的问题,但是不知道要怎么解决。随着无线网络的普及和使用,电脑无法显示WiFi列表的问题有时会让人感到困扰。电脑不显示WiFi列表是很常见的问题,但这并不意味着你无法连接到网络。不用担心,这个…

『Django』APIView基于类的用法

点赞 关注 收藏 学会了 本文简介 上一篇文章介绍了如何使用APIView创建各种请求方法,介绍的是通过函数的方式写接口。 本文要介绍 Django 提供的基于类(Class)来实现的 APIView 用法,代码写起来更简单。 APIView基于类的基…

【网络安全 | 身份授权】一文讲清OAuth

未经许可,不得转载。 文章目录 问题背景名词定义OAuth设计理念OAuth运行流程OAuth 2.0 客户端的授权模式授权码模式授权码模式的流程流程详细解析简化模式简化模式的流程密码模式客户端模式更新令牌令牌与密码的区别总结问题背景 OAuth 2.0 是一种开放的授权框架,用于在用户…

python在word中插入图片

本文讲解python如何在word文档中插入图片,以及指定插入图片的段落。 1、在新建的word文档中插入图片 import win32com.client as win32 from win32com.client import constants # 1)打开word应用程序 doc_app win32.gencache.EnsureDispatch(Word.App…

【人工智能】利用大语言模型(LLM)实现机器学习模型选择与实验的自动化

文章目录 引言环境准备数据集说明 项目结构主要文件说明 导入必要的软件包软件包功能简述 辅助函数定义加载配置文件加载数据集预处理数据集函数功能详解 集成LLM进行模型选择调用LLM的函数定义函数功能详解 清理和验证LLM的输出清理超参数建议提取模型名称验证超参数修正超参数…

Qt_day7_文件IO

目录 文件IO 1. QFileDialog 文件对话框(熟悉) 2. QFileInfo 文件信息类(熟悉) 3. QFile 文件读写类(掌握) 4. UI操作与耗时操作(掌握) 5. 多线程(掌握)…