- 2)、Map Local
- 3)、弱网环境模拟
安装配置
1、下载 Charles。
2、截获手机端的网络包。
需要配置手机与电脑连接同一 WIFI。
1)、电脑端设置 Charles — 打开 HTTP 代理并设置代理端口
- Charles 菜单栏 => Proxy => Proxy Settings => 填代理端口 8888 并勾选 Enable transparent HTTP proxying。
2)、手机端设置 WIFI 代理及端口
- 获取电脑 IP 地址
- 点击 Charles 的 help => local address。
- 设置 WIFI 代理及端口号
- 手机设置 => WLAN => 查看当前连接的 WIFI 详情 => 最底部代理项设置为手动 => 配置 电脑 IP 地址与端口号8888。
3)、设置完成,运行任意联网程序,Charles 会弹出请求连接的确认框,点击 allow 即可。
3、截取 HTTPS
需要信任 Charles 的 CA 证书。
1)、打开 SSL 代理,并配置 Host 与 Port
- 电脑端 Proxy => SSL Proxying Setting => 选中 Enable SSL Proxying 并点击 Add 配置 Host 与 Port 分半为 * 与 443。
2)、信任 Charles Proxy CA 机构
- 电脑端 Help => SSL Proxying => Install Charles Root Certificate => 选中并双击 Charles Proxy CA 根证书颁发机构 => 点击信任 => 使用此证书时选择始终信任。
3)、手机端安装 Charles 颁发的 SSL 证书
- 电脑端 Help => SSL Proxying => Install Charles Root Certificate on a Mobile Device,此时会弹出提示框让手机端访问 chls.pro/ssl 去下载证书。
4)、手机端安装证书
- 从文件管理器中找到下载文件 => 如果是 .pem 结尾i,将后缀名改为 .crt 并点击该文件 => 输入锁屏密码 => 等待证书导入后配置证书名(我填的是 Charles)即可。
实践过程
选中目标网络请求
从 Overview 中可以看到很全面抓包信息 。
使用断点功能
1)、右键点击要断点的 URL,选中 BreakPoints 开启断点功能。
2)、点击顶部 Proxy => Breadkpoint Settings。
3)、双击 Breakpoints Settings 面板中的目标
URL,在弹出的 Edit Breakpoint 面板中进行编辑。
4)、这里默认选择断点 Request 与 Response,我们可以选择仅断点 Response 或 Request。点击确认即断点设置完成。
5)、然后,我们就可以点击主面板右侧的 Edit Response 编辑 Response,修改完成后点击最下方的 Execute 即可。
使用 Map Local
1)、自由模拟服务端的返回数据,以提前进行接口测试。
1)、右键点击要使用 Map Local 的 URL,选中Map Local 开启断点功能。
1)、然后,我们在 Edit Mapping 面板中选择 Map To 的 Local path,选择本地设定的 maplocal 本地数据(例如 JsonString)
弱网模拟功能
-
1)、注意开启前需将 Map Local 关闭。
-
2)、点击 Proxy => Throttle Setting => 选中 Enable Throttling
-
3)、这里预设了很多模拟设置,我们只需将 网络包传输的速率 Throttle preset 设置为较低的速率(一般设为 256/512)。
碰到的问题
- 1)、注意手机与笔记本电脑需要同一 WIFI 下,不能自己开热点或使用公司内网,否则无法在 电脑端 无法弹出手机连接 Charles 的提示确认框,并且也无法下载 Charles 提供的 SSL 证书。
- 2)、手机端下载 Charles 提供的 SSL 证书时最好不使用系统浏览器访问。
3、Wireshark
强烈推荐 geektime-webprotocol
WireShark 主要可以用来对四种流进行跟踪,如下所示:
- TCP
- UDP
- SSL
- HTTP
1)、WireShark 基本使用
如何捕获报文
- 1)、点击捕获->选项,打开捕获窗口
- 网卡设备/流量/捕获过滤器,点击“开始”按钮开始抓包
- 输出(指定缓存文件)/选项(显示、名称解析、自动停止抓包条件) 面板
- 2)、点击捕获->停止,停止抓包