1.代理工具简介
各种功能强大的代理工具在接口测试中发挥着作用,如Charles、Burpsuite、Mitmproxy等。这些代理工具可以帮助我们构造各种测试场景,以便我们更好地完成测试工作。下面的介绍以Charles为主。
2.Charles
Charles是一款代理服务器工具,用它可以截取请求和响应以达到抓包的目的,它支持多平台,能够在Windows、Mac、Linux上运行。
(1)Charles的界面和基本设置
Charles界面的上边是菜单栏,界面左边记录了访问过的每个网站/主机,右侧显示网站/主机。图6-10所示是Charles的主界面。
(2)session菜单项
Charles可以存储各种网络请求信息,所有的请求和响应都会记录到session中,利用session可以对目标接口进行检查和分析。打开主菜单栏“File”项,“File"项中列出了用于管理session的子菜单项,包括新建、打开、清空等。图6-11所示是管理session的子菜单项。
注:每次启动Charles时,都会自动创建一个新的session。
浏览器或者客户端对Charles发送请求,如果是Charles请求到目标接口后,也可以关闭记录。关闭记录的好处是,Charles发送请求可以获取到对应接口的session。Charles还支持将获取session信息进行保存,在需要的时候可以将session作为Charles的日志提供给其他需要的人进行查看。点击图6-12中箭头所指的图标按钮可关闭记录。
(3)Chart选项卡
图6-13中的Chart选项卡记录了资源的声明周期,声明周期包括从请求到等待延迟再到响应请求。Chart还将相关资源分组,图6-13所示的4个Rosource(资源)是一组。
我们利用Chart可以知道请求花费的时间。
(4)SSL
SSL证书是一种数字证书,用于验证网站的身份并启用加密连接,SSL代表安全套接字层,这是一种在Web服务器和Web浏览器之间创建加密连接的安全协议。
Charles有自己的证书,称之为Charles Root Certificate,我们用Charles抓取数据时,可能收到有关证书的警告,这时需要处理证书警告。在Charles中设置SSL,启动Charles-Proxy-SSL Proxying Settings,具体设置如图6-14所示。
Charles是中间工具,替浏览器查看服务器的证书并签名,但同时会把自己的证书发给浏览器,因此可能会出现警告,这时需要将证书添加到新人序列才能正常使用Charles,图6-15所示是Charles的工作图。
(5)弱网测试
软件运行的流畅度通常会受网络影响,网络差的时候会出现系统运行卡顿甚至出错的情况。Charles自带弱网检测功能,可以模拟弱网环境,在Charles界面上依次选择“Proxy” → “Throttle Settings”项,在弹出的“Throttle Settings” 窗口中勾选“Enable Throttling”复选框。
如果想指定网站,如图6-16所示,可以勾选“Only for selected hosts” 项,然后再对话框的下半部分设置hosts项。
具体设置的项如下。
1)Throttle preset: 选择网络类型。
2)Bandwidth:带宽。
3)Utilisation:利用百分比。
4)Round-trip latency(ms):往返延迟。