zoukankan      html  css  js  c++  java
  • Charles的使用

    基本结构

    主要是会话的两种视图模式以及对应的request/response面板组成: 
    Structure视图
    Sequence视图

    Structure视图模式下,列表回按照域名来归类所有请求,而Sequence视图则是按照请求发生的顺序来展示; 
    可能是之前用Fiddler或者人眼阅读的顺序,习惯先左右后上下,但是Structure模式又不好找按序查找请求,对于不清楚api发生顺序的情况下不方便理顺逻辑,而sequence模式是上下模式,怎么看怎么浪费时间,这点差点让我放弃用它了…

    常用的功能在图上已经有注释,不多说,感觉chales的右键功能比fiddler多一点; 
    Save response : 保存response数据到文件中,方便后面用于重定向功能 map local...
    Export : 可以将选中的多个会话信息完整导出成文件,方便不同开发人员进行调试或者现象复现分析,然后通过File - import 来导入; 
    repeat advanced…` : 可以对设置重发次数以及并发数,可以用于进行简单的服务器压测,看到有些简友还用它来对付一般的钓鱼网站,有点意思…

    菜单

    Proxy 菜单

    这个用得比较多,在这里设置跟踪捕捉过滤功能: 
    Proxy menu

    设置会话捕捉条件

    record_setting 
    include 面板用于启用/停止可以捕捉/显示的会话; 
    exclude 表示不显示的会话,在会话列表中右键选择 ignore 时,对应的url会出现在这里;

    record_setting_add 
    比较好用的是过滤条件支持通配符, * 表示任意多个字符, ? 表示一个字符,如 Protocol 中有 http ,https 和 “”,选择空白或者输入 * 都可以表示任意协议的请求;

    设置允许连接的ip地址

    access_control_settings

    模拟网络环境

    throtte_settings

    在这里选择要模拟的网络环境,选项比Fidder多很多,也可以自定义,最人性的还可以对指定的url进行网络环境摸你, 好评… 
    这里设置完成后通过 Proxy - Start Throttling(Ctrl+T) 或者常用工具栏按钮来启用或停止;

    设置为代理服务器,并捕获手机请求

    proxy_settings 
    端口号 Port 默认 8888 ,跟Fiddler一样,省得切换软件的时候,手机还得重新设置wifi代理了; 
    记得启用 Enable transtarent HTTP proxying

    手机上的设置跟Fiddler类似,切换到wifi设置页面,选择Proxy 选择 manual ,代理服务器设置为charles所在设备的ip,端口就是上面设定的 8888 , 注意: 手机和charles所在机器需处于同一个wifi网络中;

    以上设定完成后,就可以charles中捕获手机请求了,第一次连接的时候charles会弹出确认提示框,选择 allow 就好了: 
    mobile_connect

    Tools菜单

    Tool_menu

    rewrite动态修改request/response信息

    跟 map local 类似,也可以对response进行修改,不过他改变的只是部份信息,比如:主机地址( Host ),返回状态码( response status ),返回信息内容( body )等: 
    rewrite_rule

    捕获https请求

    1. 在本机上安装证书

    help_ssl_proxying 
    这里可以直接选择 Install charles root certificate,会在本机上安装证书,也可以如图选择保存证书,然后手动导入到需要的位置,操作类似: 
    install_certificate.gif

    2. 在手机上安装证书

    单击 help – ssl proxying - install charles root certificate on a mobile device or remote browser ,会弹出提示框,然后在手机浏览器上输入网址: chls.pro/ssl ,然后根据提示保存证书即可: 
    install_certificate_on_mobile

    3. 启用https捕捉

    ssl_proxy_settings 
    启用后就可以在会话视图列表中看到https请求了;

    断点功能

    可以在会话列表中右键点击某个会话,然后在菜单中选择 Breakpoints ,也可以在 Proxy - Breakpoint settings... 中手动新建/启用某个断点并且勾选 Proxy - enable breakpoints ,这样,当下次再有该请求时,会自动进入断点模式;

    一个完整请求会进入断点模式2次,request的发出之前以及收到服务器的response但尚未返回给客户端的时候;

    断点request的时候,可以求改reqeust信息,不过我们程序都有对请求头做校验和处理,修改参数后一般就直接报错了,所以这里看看response就好,反正操作类似: 
    breakpoints

    在 edit response 中可以双击直接修改json文件的key/value值,很方便,修改完成后单击 execute 继续执行其他操作,将修改后的response返回给客户端;

    response重定向功能

    这个跟Fiddler的autoResponse功能类似,可以指定本地文件( map local... )也可以指定为其他服务器( map remote... )上的文件,我们介绍前一种;

    断点可以用于临时修改数据,也是一种重定向功能,若是要长期重定向,咱还是将返回重定向到本机文件比较方便,具体方法: 
    * 准备一份要返回给客户端的response数据文件,可以从前面介绍的 save Response 来保存正常数据,然后修改后作为本地数据文件,也可以按照自己需要构造一份(用于服务端api尚未发布,但移动端又需要进行调试的时候); 
    * 选中某个会话,右键单击,从菜单最下方中选择 map local ... , 也可以单击 Tools - Map Local... 打开 map lcoal settings 来添加一个映射关系,两种操作是一样的,前者只不过直接把url信息给写好了: 
    map_local 
    * 完成设定后,后续符合条件的请求都会用本地映射文件替代;

    小结: 我现在是Fiddler和charles配合使用,主要是Fiddler的https捕获我用的时候一直出问题,但是charles就很一切正常,除此之外,我用charles比较少,因为平常需要的基本功能两者都满足,但是: 
    1. charles的sequence是上下视图模式,我完全不习惯,感觉眼睛横向的时候基本都不需要动,很方便也舒服; 
    2. 在charles删除几百个会话信息的时候就可以感觉得到卡了那么一瞬间,而Fiddler就很顺畅; 
    3. charles的filter功能没fiddler强大; 
    4. fiddler提供脚本自定义功能,如果是C#开发者的话,还可以很方便的集成fiddler_core到自己的应用中;

    扩展阅读: Fiddler的使用技巧

  • 相关阅读:
    线段的平移和旋转
    《构建之法》第一章读书笔记
    课程大作业总结
    2016.1.8
    2016.1.7
    2016.1.6总结
    初学MFC
    实时控制软件第三次编程作业
    实时控制软件设计第二次编程作业
    实时控制软件设计第一次编程作业
  • 原文地址:https://www.cnblogs.com/luohero/p/7765246.html
Copyright © 2011-2022 走看看