> 本文节选自霍格沃兹测试开发学社内部教材


在接口测试中,有各种功能强大的代理工具,比如 Charles 、 Burpsuite 、 mitmproxy 等等。这些代理工具可以帮助我们构造各种测试场景、以及更好的完成测试工作。下面的介绍以 Charles 为主。


## Charles


Charles 是一款代理服务器,可以截取请求和响应达到分析抓包的目的,且支持多平台,能够在 Windows,Mac,Linux 上使用。


#### 界面和基本设置


Charles 上边是菜单栏,左边记录了访问过的每个网站/主机,右侧显示信息细节。


![image](https://ceshiren.com/uploads/default/original/3X/4/f/4ffc5897ee4ab197dc02a686bdacdbf5586ab7d5.jpeg)


#### session


Charles 可以存储各种网络请求信息,所有的请求和响应都会记录到 session 中,可以进行检查和分析。打开菜单栏中的File,在这里管理 session,包括新建、打开、清空等等。


![](https://ceshiren.com/uploads/default/original/3X/d/8/d83313363d4891956e6ad660d068d0d0e3a69387.png)


注意:每次启动 Charles,都会自动创建一个新的 session


也可以关闭记录,如果关闭记录,Charles 会正常通过所有请求,但它们不会记录在 session 中,点击下面来关闭记录:


![](https://ceshiren.com/uploads/default/original/3X/e/0/e09dcaa0fcd1d11e6c6b0ee767da4c001ad04a0c.png)


#### Chart


Chart 记录了资源的生命周期,从请求到等待到响应请求。它还将相关资源分组,比如下面的 4 个 Resource 是一组:


![](https://ceshiren.com/uploads/default/original/3X/5/a/5aaea10094aff9fc540dac3070e87543948fbb2b.png)


#### SSL


利用 Chart,可以知道请求的花费时间。


Charles 有自己的证书,称之为:Charles Root Certificate,在抓取数据时,可能收到有关证书警告,需要点击信任,下面设置可以手动设置证书:


信任 Charles Root Certificate:


> [SSL Certificates • Charles Web Debugging Proxy](https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/)


Charlse 是中间工具,替浏览器查看服务器的证书并签名,但同时会把自己的证书发给浏览器,因此会出现警告,需要添加到信任序列才能正常使用,下面是工作图:


![|394x183](https://ceshiren.com/uploads/default/original/3X/d/f/dfb5ae0c748b2b51fae5942370d9b98ab7da5a26.png)


#### 弱网测试


软件通常会受网络影响,网络差的时候会出现卡顿甚至 error。Charles 自带弱网工具,可以模拟弱网环境,在 Proxy->Throttle Settings 下,使用前要勾选 Enable Throttling。


如果想指定网站,可以勾选下 Only for selected hosts,然后在对话框的下半部分设置中设置 hosts 项。


![](https://ceshiren.com/uploads/default/original/3X/e/c/ec6c9f03e744796b1e57e059c936910c55b5f2c2.png)


* Throttle Preset:选择网络类型,比如选择 56 kbps modem

* Bandwidth:带宽

* Utilistation:利用百分比

* Round-trip:往返延迟