美文网首页
Charles的使用总结

Charles的使用总结

作者: Jshu_Zx | 来源:发表于2017-04-27 11:45 被阅读0次

    不知不觉,忙碌而又充实的三月就快要过去了,同时终于结束了长达半年之久的项目。
    默默的吐槽一下,这个项目最崩溃的地方不是改bug,而是找bug啊,不过还好有charles和capture,
    哈哈,下面就来介绍和总结charles的使用吧。

    Charles 主要的功能:
    1、截取 Http 和 Https 网络封包。
    2、支持重发网络请求,方便后端调试。
    3、支持修改网络请求参数。
    4、支持网络请求的截获并动态修改。
    5、支持模拟慢速网络。
    
    安装Charles
    [http://www.charlesproxy.com](http://www.charlesproxy.com/)官网下载,然后按照提示安装即可。
    非官方版本每次启动要等待30s,每隔30min也会自动退出,不过~
    
    先看一下Charles的页面吧!
    charles主页面.png

    Charles的使用

    将 Charles 设置成系统代理
    打开Charles,选择菜单中的Proxy--->WindowsProxy设置即可,如图所示
    
    Paste_Image.png
    这样,你操作的网络请求都可以在这边看到啦。
    
    不过,像下面这样,每一个网络请求都会显示,实在是太多了,所以可以使用Focus过滤网络请求。
    
    Paste_Image.png
    过滤网络请求
    选择你关心的网络请求,右击选择Focus
    
    Paste_Image.png
    然后,页面就变成这样了,是不是看起来舒服了很多
    
    Paste_Image.png
    抓取手机上的数据

    因为我是做app的,所以大部分使用Charles都是为了抓取手机上的数据,下面就说一下如何在手机上使用,很简单。

        一、在 Charles 的菜单栏上选择 “Proxy”->”Proxy Settings”,填入代理端口 8888,并且勾上 “Enable transparent HTTP proxying” 
    就完成了在 Charles 上的设置, 如下图所示
    
    Paste_Image.png
    二、给手机设置代理,打开手机设置-->WLAN
    
    Paste_Image.png
    之后,手机上的网络请求都可以看到了
    
    Paste_Image.png
    注意:手机 和 Charles 代理设备连接的是同一网络
    

    修改网络请求

    开发一个app时总会和后台进行接口联调,请求发生了错误,为了让后台方便定位错误原因,
    这时候可以模拟不同情况和数据,把不同请求和响应结果发给后台,让他们进行分析。
    
     1、 选择要修改的网络请求的Url,右键单击选择Edit,就可以对请求参数和body进行修改,如图所示
    
    Paste_Image.png Paste_Image.png
    修改完数据之后,点击 Execute 即可将修改后的数据直接发送出去。如果想重置回原本的数据,点击 Revert 就恢复到最初的数据了。
    

    模拟数据

    有些时候后台还没开发完成,但是数据模型和接口已经给出,这时候app需要数据进行测试,
    就可以将请求重定向到一个网络地址或者一个本地文件中。
    
    本地数据Map Local
    右键单击Map Local,
    
    Paste_Image.png Paste_Image.png Paste_Image.png
    远程数据Map Remote
    Paste_Image.png
    打开此链接,http://www.mocky.io/,把数据填充到Body里面,可以修改Content Type格式,
    默认是json格式。填写完成后点击Generate my HTTP Response,生成一个链接,复制此链接
    
    Paste_Image.png
    右键单击Map Remote,把刚才复制的链接粘贴到Host中,点击ok即可。
    
    Paste_Image.png
    取消所有的Map功能
    如果想取消Map功能,选择Tools-->Map Remote(Map Local)-->Enable Map Remote即可,下次再请求此接口,返回的就是真实的数据,而不是模拟数据了。
    

    模拟网速

    App测试时一般都是用的公司的网络,速度还可以,如果想模拟网络环境非常差的情况下,
    会出现什么情况, Charles 也提供了对应的支持,来模拟低速网络环境。
    
    选择菜单栏Proxy->Throttle Settings
    
    Throttle Settings.png Enable Throttling.png

    抓取https网络请求数据

     有些时候,我们会遇到Https 请求。一般情况下,Charles 是不能截取Https的网络包的,涉及到 Https 的 证书问题。但是安装 Charles 的 CA 证书后,
    就可以获取到手机上的 Https 请求了。
    1、点击 Charles 的顶部菜单,选择 “Help” -> “SSL Proxying” -> “Install Charles Root Certificate”,
    然后输入系统的帐号密码,即可在 KeyChain 看到添加好的证书。如下图所示:
    2、打开手机浏览器,输入 http://charesproxy.com/getssl去下载安装 CA 证书。
    3、在需要截取Https的请求上,选择 Enable SSL Proxying。
    
    安装CA证书.png Enable SSL Proxying.png

    到此就结束了。

    五月份就要来了,要出去压青了,我要控制我自己~~~~

    相关文章

      网友评论

          本文标题:Charles的使用总结

          本文链接:https://www.haomeiwen.com/subject/hgxcottx.html