接口测试工具-charles抓包笔记

目录

目录

1.mac下安装charles

2.使用charles抓包

2.1 配置

2.2 抓mac上的请求

2.3 抓移动设备上的请求

3. 使用charles模拟弱网环境

4.通过抓包修改接口返回值-mock

5.问题记录

5.1 抓https请求乱码

5.2 抓到的请求显示unknown



1.mac下安装charles

  • 下载安装charles
  • 打开charles,点击菜单栏的“Help”选择“Register Charles”,弹出Charles for Mac的注册界面
  • 到解压后的“Charles428”应用文件夹,打开其中的“keygen.jar”,输入“orsoon”然后点击“Generate”生成Charles注册码
  • 将“orsoon”和生产的注册码复制到注册界面的对应位置上进行注册

2.使用charles抓包

2.1 配置

  • 安装证书:Help>SSL Proxying> Insatll Charles Root Certificate, 选择始终信任
  • 搜索 charles 可以看到刚才安装的证书,查看证书状态是否已经被信任

2.2 抓mac上的请求

对于Mac系统而言,打开charles之后,默认就已经对系统进行了代理,如果没有,则需要在菜单栏的Proxy上勾选上Mac OS X Proxy

2.3 抓移动设备上的请求

  • 保证移动端与电脑设备在同一网段
  • 设置http代理,选择charles菜单栏中的Proxy>Proxy Settings,将端口号改为8888(或其他未被占用的端口),并设置可用
  • 查看mac的ip地址:设置>网络>高级>查看ipv4/charles help>local ip address
  • 移动端,进入连接网络的设置界面,代理方式改为手动,将host和端口号改为与mac一致
  • 移动端下载、安装、信任安全证书。在浏览器中输入 chls.pro/ssl,下载证书,在设置-->更多设置-->系统安全-->加密与凭据-->从存储设备安装,找到下载的证书,安装信任。(设置-->设备与隐私-->从存储设备安装证书)
    • 若下载证书后缀为pem,需手动修改后缀为crt,方可下载
  • 此时charles会弹出窗口,选中同意,即可抓取到请求啦

3. 使用charles模拟弱网环境

参数说明: 

  • bandwidth —— 带宽,即上行、下行数据传输速度
  • utilisation —— 带宽可用率,大部分modern是100%
  • round-trip latency —— 第一个请求的时延,单位是ms。
  • MTU —— 最大传输单元,即TCP包的最大size,可以更真实模拟TCP层,每次传输的分包情况。
  • Releability —— 指连接的可靠性。这里指的是10kb的可靠率。用于模拟网络不稳定。
  • Stability —— 连接稳定性,也会影响带宽可用性。用于模拟移动网络,移动网络连接一般不可靠。

4.通过抓包修改接口返回值-mock

1、选中要修改的请求,右键点击breakpoints

2、编辑断点过滤条件

例如每次查询时,接口传参中的id不是固定的值,会变化,则在proxy-->breakpoint setting中修改匹配条件,例如改成*

 3、再次在app端执行操作,当触发打过断点的接口时,charles就会将其捕获住,此时可点击“Edit Request”按需编辑请求参数、返回参数

5.问题记录

5.1 抓https请求乱码

在菜单栏选择Proxy>SSL Proxying Settings,点击add,Host填“*”,Port填“443”,点击OK,重新抓包,不再乱码。

5.2 抓到的请求显示unknown

在移动端安装并信任证书即可。(步骤可参考2.3)

若移动端安装证书无反应,可考虑设置锁屏密码,重试。

若安装完证书,仍然报错unknown,需要信任该证书:设置->通用->关于本机->证书信任设置

   

5.3 没弹出是否允许设备连接的提醒

5.4 证书过期

证书过期也会导致抓到的请求报错unknown,此时需要重新安装证书并信任

报错如下:

重新安装并信任证书:

参考:Charles 抓包工具在Mac上的使用 - 简书

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用Charles抓包查看时延时,你可以通过以下步骤进行操作: 1. 打开Charles,并确保已经安装了Charles的根证书。你可以在菜单栏中选择"Help",然后选择"SSL Proxying",再选择"Install Charles Root Certificate"来安装证书。 2. 配置Charles的视图模式。在Structure视图模式下,请求会按照域名进行分类,而在Sequence视图模式下,请求会按照发生的顺序展示。如果你不习惯Sequence视图的默认上下布局,你可以修改为类似Fiddler的左右布局。你可以使用快捷键"cmd+,-"来打开Charles的首选项,然后选择"Viewers",在"Sequence view layout"中选择"Tall"即可。 3. 在抓包过程中,你可以查看请求的时延信息。时延是指从发送请求到接收到响应所经过的时间。你可以在Charles的请求列表中找到每个请求的时延信息。时延信息通常以毫秒为单位显示,可以帮助你分析请求的响应速度。 需要注意的是,在Android 7.0及以上的系统中,默认不信任用户添加到系统的CA证书。这意味着,如果你的APP基于SDK24及以上版本,即使你在手机上安装了Charles,也无法抓取HTTPS请求,这些请求会显示为"unknown"。如果你遇到了这个问题,你可以尝试其他方法来抓取HTTPS请求的时延信息。 希望以上信息对你有帮助!\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [接口测试工具-charles抓包笔记](https://blog.csdn.net/sumdeveloper/article/details/107495495)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [charles抓包常用](https://blog.csdn.net/kenan_6/article/details/122853975)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [史上最强Charles教程](https://blog.csdn.net/Amio_/article/details/114360192)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值