Charles断点

简介: 断点测试可以通过查看接口返回数据可以方便定位是前端还是后端的问题,同时通过更改request和response数据可以很方便构造测试数据。简而言之,断点测试可以通过修改接口数据更快的定位问题。

 

1、断点测试的含义

1.1、断点(英语:Breakpoint)是程序中为了调试而故意停止或者暂停的地方。

调试设置断点:可以让程序运行到该行程序时停住,借此观察程序到断点位置时,其变量、寄存器、I/O等相关的变量内容,有助于深入了解程序运作的机制,发现、排除程序错误的根源。

1.2、断点测试:

在程序的某一行或者某一环节设置断点,在程序请求的过程中,修改断点处的参数、请求或者响应,借此定位问题,这类断点测试主要用于接口测试

2、断点测试的意义

断点测试可以通过查看接口返回数据可以方便定位是前端还是后端的问题,同时通过更改request和response数据可以很方便构造测试数据。简而言之,断点测试可以通过修改接口数据更快的定位问题

2.1、断点测试场景

1. 想修改 request 或者 response, 这种情况需要接口的超时时间比较长,否则没等你操作完就已经接口超时了,那就 gg 了

2. 想测试接口的超时时间,或者测试接口在超时的情况下前端的样式变化,比如有时网络超时比较难模拟,可以通过「一直停在 request 等待不执行」这种方式来模拟这种情况

3、通过Charles抓包工具进行断点测试

备注:要进行断点,必须要在抓包的情况下,抓取移动端或者pc端都是可以的

3.1、要对一个接口做断点测试,首先设置这个接口的断点信息,如下所示:

3.1.1、首先点击charles顶部的【Proxy】—>【Breakpoint Settings...】,如下:

网络异常,图片无法展示
|
image.gif

3.1.2、设置需要断点的接口信息,host可填写域名,path填写具体的接口地址,以下几个步骤完成之后,点击最底下的【OK】即可;

网络异常,图片无法展示
|
image.gif

Scheme : 拦截进行断点的接口方法,选项有 GET 和 POST

Protocol: 协议,选项有HTTP 和 HTTPS

HOST : 域名,或者IP地址

Path : 路径

Query:URL 中 ? 后面拼接的查询参数

Request : 在发送请求的时候打断点,可以修改请求内容,之后再把请求转发送给服务器

Response:在请求响应回来的时候打断点,可以修改响应内容,之后再把响应结果转发给客户端

敲黑板知识点

以上字段支持通配符,比如:Path ,填写 /test/api1 ,只支持拦截/test/api1 这一个接口,是全匹配,比如无法匹配 /test/api1/apis ;如果填写/test/* ,就能够匹配以/test/开头的所有接口,比如 /test/api1 、/test/api1/apis

所有的字段都是选填,如同我们常规理解的筛选条件一样,但是为了规则的有效性,Request 和 Response 必须二选一

3.1.3、选中想要打断点的接口,右键勾选:Breakpoints。作用与3.1.1和3.1.2这两个步骤的相同

3.2、request断点-转发服务端:完成上述步骤之后,对一个接口的request进行断点测试

3.2.1、请求这个接口,请求之后,Charles页面如下:

网络异常,图片无法展示
|
image.gif

3.2.2、修改请求的数据,如下:

网络异常,图片无法展示
|
image.gif

3.2.3、查看响应结果,如下所示:

网络异常,图片无法展示
|
image.gif

结论:修改请求参数,会影响接口的返回结果,达到了测试接口的效果。

3.3、response断点-转发客户端:完成设置接口断点之后,对一个接口的response断点测试

3.3.1、请求这个接口之后,查看Charles页面如下:

网络异常,图片无法展示
|
image.gif

3.3.1 修改之后点击页面底部的【Execute】按钮,之后就可以在响应结果中查到自己修改的那个结果啦~

Tips:超出了客户端的 超时时间 ,那么本次的请求就会失效

有一点需要特别强调,这样打断点修改数据的方式特别考验手速,以及每次操作的准确性。如果修改的时间过长,超出了客户端的 超时时间 ,那么本次的请求就会失效,哪怕最后请求响应成功,客户端也不认了,因为晚了

3.4.关闭断点

修改好参数后,点击Execute (执行)。 另外 Abort (中止), Cancel (取消)当次

网络异常,图片无法展示
|

image.gif

目录
相关文章
|
人工智能 物联网 机器人
『GitHub项目圈选17』推荐5款本周 火火火 的AI开源项目
『GitHub项目圈选17』推荐5款本周 火火火 的AI开源项目
1949 1
|
Web App开发 JSON 网络安全
Charles配置代理以及简单使用
Charles配置代理以及简单使用
566 0
|
3月前
|
Web App开发 安全 测试技术
Playwright-MCP浏览器会话复用全解析
本文深入解析Playwright-MCP实现浏览器会话复用的核心技术,包括状态持久化(cookies/localStorage存储)和直接连接已打开浏览器实例(通过CDP协议)。通过多上下文隔离与安全机制设计,提供企业级应用场景的优化方案,帮助开发者提升测试效率并降低资源消耗。
|
6月前
|
IDE 开发工具 开发者
手把手教你安装PyCharm 2025:开发者的Python IDE配置全流程+避坑指南
本教程详细介绍了PyCharm 2025版本在Windows系统下的安装流程及配置方法,涵盖AI代码补全与智能调试工具链等新功能。内容包括系统要求、安装步骤、首次运行配置(如主题选择与插件安装)、创建首个Python项目,以及常见问题解决方法。此外,还提供了切换中文界面和延伸学习资源的指导,帮助用户快速上手并高效使用PyCharm进行开发。
2974 61
|
9月前
|
人工智能 自然语言处理 算法
通义智文:文档应用赋能千行百业
通义智文是阿里巴巴推出的大规模文档处理技术体系,旨在提升生产力效率。最初作为阅读工具发布,现已发展为涵盖文档解析、理解、生成等多方面的技术平台。通义智文支持超长文档处理、多模态文本解析,并在法律、教育等领域提供专业服务。其创新算法如VGT版面分析和Layout-LM多模态模型,显著提升了文档处理精度。应用场景包括PPT创作、故事绘本生成及法律文书审查等,赋能千行百业。
|
缓存 负载均衡 网络协议
什么是云解析DNS和普通的DNS解析有何区别
什么是云解析DNS和普通的DNS解析有何区别
986 15
|
测试技术
需求不明确的情况下,测试该如何处理?
需求不明确的情况下,测试该如何处理?
371 0
|
Java 关系型数据库 数据库连接
MyBatis-Plus 实战教程一 快速入门(一)
MyBatis-Plus 实战教程一 快速入门
428 0
|
调度
Jmeter之线程组设置简介
线程数:组内线程个数,模拟用户的数量。 循环次数:每个线程循环执行取样器的次数;勾选【永远】一直循环执行(慎用)可配合【调度器】使用。 调度器:默认禁用,使用时需要勾选,勾选后,持续时间6,启动延迟时间2:点击启动按钮后,延迟2s后才开始执行取样器,并持续执行6s。
1089 0
Jmeter之线程组设置简介
|
数据管理 文件存储 数据安全/隐私保护
iMazing2023免费版苹果手机系统设备数据传输与备份工具
iMazing需要数据线将你的电脑和iPhone或者是iPad连接,这款软件是itunes的完美替代品,有用iPhone或iPad的朋们友推荐下载使用。只要在同一网络下,就可以轻松管理你的iPhone,可以说是非常的方便。平时在传输文件资料时,可以将iMazing充分利用起来,它可以对iQS设备进行强有力的管理。下载末尾安装包!
443 0
iMazing2023免费版苹果手机系统设备数据传输与备份工具