Charles

1. 介绍

Charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器,当程序连接Charles的代理访问互联网时,Charles可以监控这个程序发送和接收的所有数据。它允许一个开发者查看所有连接互联网的HTTP通信,这些包括request,response和HTTP headers (包含cookies与caching信息)。

主要功能

  1. 支持SSL代理。可以截取分析SSL的请求。
  2. 支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。
  3. 支持AJAX调试。可以自动将json或xml数据格式化,方便查看。
  4. 支持AMF调试。可以将Flash Remoting 或 Flex Remoting信息格式化,方便查看。
  5. 支持重发网络请求,方便后端调试。
  6. 支持修改网络请求参数。
  7. 支持网络请求的截获并动态修改。
  8. 检查HTML,CSS和RSS内容是否符合W3C标准。

2. 使用

HTTPS抓包需要安装证书,非本机抓包需要设置代理。

2.1. 设置代理

本机抓包跳过。

  1. Proxy -> Proxy Settings -> Windows -> Enable Windows Proxy

    image-20220418103320664
    Image
  2. 将需被代理设备与代理设备连接至同一局域网下,设置HTTP代理为本机IP地址+代理端口(默认8888,可在上一个截图的Proxies中修改)

    image-20220418104956522
    Image
  3. 允许设备。

    image-20220418111900955
    Image

2.2. 安装证书

仅HTTP抓包跳过。

如果安装后仍无法抓到HTTPS的明文,尝试重启Charles。

开启SSL代理设置

  1. Proxy -> SSL Proxying Settings -> Enable SSL Proxying

  2. 添加地址,支持通配符,如*表示代理所有网址。

    image-20220418111148131
    Image

本机安装证书

打开Help -> SSL Proxying -> Install Charles Root Certificate,安装证书。

image-20220418105353498
Image

非本机安装证书

被代理端完成上述步骤后,访问http://chls.pro/ssl安装证书。

具体安装步骤因系统而异,网上检索即可。关键字:CA证书安装 + 系统名。一般在安全设置下。

image-20220418113028568
Image

2.3. 抓包

访问网页或者打开APP,抓取包的信息。

image-20220418113419023
Image

3. 进阶

3.1. 界面

image-20220418113802083
Image

抓到的包的请求地址都会列在左侧,在左侧中,Structure表示结构化的,会按照请求地址分类,Sequence会按照请求的顺序排序。同时可以用Filter过滤器进行过滤。

右侧展示一些总览、请求、响应以及速度等信息。

需要打开录制(红点)才能嗅探到。开启SSL能够嗅探HTTPS请求的内容。

3.2. SSL代理

同上。

3.3. 弱网

在当今移动互联网盛行的时代,网络的形态除了有线连接,还有2G/3G/Edge/4G/Wifi等多种手机网络连接方式。不同的协议、不同的制式、不同的速率,使移动应用运行的场景更加丰富。

从测试角度来说,需要额外关注的场景就远不止断网、网络故障等情况了。对于弱网的数据定义,不同的应用所界定的含义是不一样且不清晰的,不仅要考虑各类型网络最低速率,还要结合业务场景和应用类型去划分。按照移动的特性来说,一般应用低于2G速率的都属于弱网,也可以将3G划分为弱网。除此之外,弱信号的Wifi通常也会被纳入到弱网测试场景中。

  1. 配置弱网参数Proxy -> Throttle Settings

    image-20220418114820152
    Image
  2. 开启弱网(小乌龟)

    此时再请求,则可看到弱网下数据传输和渲染的状态了。

    image-20220418115009545
    Image

3.4. 断点

  1. 配置需要断点调试的地址以及方式(请求、响应等信息)Proxy -> BreakPoint Settings (可选)

  2. 打开断点(六边形小红点)。

  3. 发送请求,即可看到断点信息。

    image-20220418115932017
    Image
  4. 在这里可以查看和修改请求和响应的信息,然后进行取消、终止和放行操作。

3.5. 构建请求

选中原来的请求,点击小钢笔的图标,就可以在原来请求的基础上构建一个新的请求。这里和打断点差不多,可以定义请求的字段、地址、内容等。

3.6. 其他工具

Tools下有其他的工具,比如禁用Cookies、不允许缓存、请求映射(将匹配的请求的地址转到另一个地址上,适合调试)等等,都比较简洁易懂,故不再赘述。

4. 注意点

  1. 如开启SSL,则会使用Charles提供的根证书,因证书系本地证书,不受信任所以会弹出错误提示,继续访问即可。
Copyright © rootwhois.cn 2021-2022 all right reserved,powered by GitbookFile Modify: 2023-03-05 10:55:52

results matching ""

    No results matching ""