本随笔主要内容:
一、Charles界面介绍
二、Charles使用
1.会话(Repeat、Focus、Compare、黑白名单等)
2.模拟请求做mock,使用断点、Map或Rewrite
3.指定hosts
4.限速测试(模拟网速)
5.其他可以用的点(Web Interface)
 
 
在开始之前先介绍界面中一个好用的help工具,点击Help,在Search里搜索内容,会模糊匹配工具栏中包含该字符串的所有内容。鼠标滑过时会展开对应工具的位置,比如下图鼠标停留在New Session上,就展开了File->New Session
这里没有介绍怎么配置Charles进行抓包,如果要抓包查看另一个博客:http://www.cnblogs.com/meitian/p/7157990.html
 
 
 

一、Charles界面介绍

 
 

工具栏的介绍

 

二、Charles使用

1.会话(Session)

会话有两种展示结构:Structure和Sequence
Structure:按照不同hosts域名分组展示请求
Sequence:按照请求顺序来展示请求
在会话上右键查看支持的功能:
 
用途都比较清晰,着重说明以下几点:
 
Repeat、Repeat Advanced…:重复执行请求,Repeat Advanced可以指定重复的遍数。这样可以选中多会话,在右侧的chart查看请求的时间等性能
Focus:在某个域名下邮件点击Focus,会将当前域名放到顶部,没有Focus的域名统一放到下面的Other Hosts下(可以在View->Focused Hosts中统一编辑)
 
 
黑白名单(可以在Toos->Black List/Write List下统一更改)
Black List:黑名单中的域名不能联网
Write List:白名单开启后,只有白名单中的网络可以访问网络,不在白名单中的不能访问网络
(如果一个域名既在Black List中也在Write List中,则也不能访问网络)
 
Export:导出会话Session保存到本地,然后下次可以通过File->Open Session打开本地的Session
 
Compare:左侧列表选择两个Session,右键时会出现该项,可以比对两个请求的入参和出参
 
Compose:即工具栏上的钢笔的图标,编辑请求然后执行
 
Breakpoints和Map Remote..、Map Local...后面会详细介绍
 
针对一个Session的详细信息:
平时查看入参出参,使用Contents比较方便,在其中也可以切换Text/Form/JSON等来用不同格式查看内容
Chart项可以用来查看一个请求的性能,当然可以左侧列表选择多Session,然后选择Chart查看多个请求的性能
 
在选择请求时,他下面也会列出相关请求(比如一个html页面会请求js等信息)。
TimeLine包含3部分的时间:请求的时间+网络响应延迟的时间+响应的返回时间
 
通过Ctrl+F查找包含某内容的会话,如下图:
 

2.模拟请求做mock,使用断点、Map或Rewrite

第一种情况:只想验证一下server端的请求和结果

直接在选中请求,点击控制栏上的编辑,然后修改请求后执行即可
 

第二种情况:app或PC端需要等待server的数据返回

这种情况直接用上面那种方法是不能回显到PC或APP的,可以通过打断点的方式,或通过Map Remote/Map Local重定向来获得结果
 
A:通过打断点的方式:
Session上右键选择Breakpoints,或者通过顶部工具栏的Proxy->Breakpoints Settings来管理断点的请求,需要点开导航栏上的开启断点(Disable Breakpoints)才可以生效断点
 
当再有符合断点规则(Host、Path、Query)的请求过来时,会自动进入断点页面,断点分为两部分:
1.请求发到服务器前,此时可以修改request的入参等信息
2.服务器返回的数据返回给终端(APP或PC)之前,此时可以修改response的内容
 
B:通过Map Remote
Map Remote重定向到另一个请求的返回值当做自己的返回值
可以在Session上右键Map Remote设定规则,或Tools->Map Remote来管理所有Map Remote(勾选Enable Map Remote才会启用)
请求可以使用通配符*等来匹配,Map To可以是一个接口请求,可以是一个远程文件(js或html文件等)
 
 
C:通过Map Local
Map Local使用本地一个文件的内容作为返回值
可以在Session上右键Map Local设定规则,或Tools->Map Local来管理所有Map Local(勾选Enable Map Local才会启用)
 

补充一个mock的方法,Rewrite

在Tools->Rewrite中添加规则,Enable Rewrite勾选才会去走重写
Rewrite:可以添加规则修改请求的header、参数等各种信息,比Map更灵活,而且针对同一个请求可以添加多个规则,但如果出问题不容易调试
比如下面的例子,添加了一个叫做测试的规则,右侧Location上面添加要匹配的请求,下面填写重写规则(右面的弹框,Type可以选择 header rules, URL rules, query parameter rules, and body rules)
重写规则很多,下面这个博客写的还是挺细的,可以参考一下:http://www.cnblogs.com/wonyun/p/5586746.html
 

3.指定hosts

有时候要把域名指向某一个固定的IP地址,除了修改PC本机的hosts文件外,也可以在Charles中设置
Tools->DNS Spoofing Settings中设置hosts
 

4.限速测试(模拟网速)

有时测试需要限制网速,在Proxy->Throttle Settings中配置,然后再Proxy->Strat Throttling或工具栏上小乌龟的图标开启或停止限流
 

其他可以用的点

Web Interface:在Proxy->Web Interface Settings开启,需要指定匿名可以访问或账号密码访问
这个其实是通过http://control.charles/来用PC端页面控制Charles,可以清除Session等操作。个人觉得意义不大

Charles界面介绍及使用方法的更多相关文章

  1. Charles系列一:Charles功能介绍、下载安装和界面简介

    一:Charles主要功能介绍 Charles是一个HTTP代理/HTTP监视器/反向代理,使开发和测试人员能够查看机器和Internet之间所有的HTTP和SSL/HTTPS流量,这包括请求,响应. ...

  2. Linux网络应用编程之Packet Tracer安装及界面介绍

    Packet Tracer入门 一,Packet Tracer介绍 packet tracer 是由Cisco公司发布的一个辅助学习工具,为学习思科网络课程的初学者去设计.配置.排除网络故障提供了网络 ...

  3. 【转】【Android UI设计与开发】第07期:底部菜单栏(二)Fragment的详细介绍和使用方法

    原始地址:http://blog.csdn.net/yangyu20121224/article/category/1431917/1 由于TabActivity在Android4.0以后已经被完全弃 ...

  4. Solr7 安装部署 管理界面介绍

    Solr7 安装部署 管理界面介绍 本章重点介绍CentOS 安装部署Solr7 ,Solr的管理界面介绍,添加核心Core配置,Dataimport导入数据,Documents 在线维护索引,Que ...

  5. cesium编程入门(四)界面介绍及小控件隐藏

    感性认识 界面介绍,viewer Geocoder : 查找位置工具,查找到之后会将镜头对准找到的地址,默认使用bing地图 Home Button :视角返回初始位置. Scene Mode Pic ...

  6. MFC程序执行后台操作时不允许操作界面的一种方法

    在使用MFC编写界面程序时,有时候会遇到像点击按钮后,后台进行大量操作后才显示处理结果这种情况,在后台处理过程中,界面不应该被允许做任何操作,这里介绍一种方法. 解决办法 点击按钮后,弹出一个模态对话 ...

  7. solr后台界面介绍——(十一)

    1.加一个collection的方法 复制solr-home下的collection1,修改名字为collection2.并且修改collection2文件夹中配置文件core.properties中 ...

  8. cesium编程入门(四)界面介绍及小控件隐藏

    感性认识 界面介绍,viewer Geocoder : 查找位置工具,查找到之后会将镜头对准找到的地址,默认使用bing地图 Home Button :视角返回初始位置. Scene Mode Pic ...

  9. [转]Ribbon界面介绍(1)

    小弟最近在学习VS2010中Ribbon界面的介绍,相比与C#的界面设计的强大,C++的界面实在太难做了,但没办法,项目需求,又不得不做,遍查网络上的资料,发现有用的基本上就是MSDN的帮助,又是全英 ...

随机推荐

  1. http 文件传输

    http 文件传输 https://www.zhihu.com/question/58118565 转载自:http://www.voidcn.com/article/p-rpdhbjib-m.htm ...

  2. python ftp文件夹文件递归上传推送

  3. 使用Prometheus+Grafana监控MySQL实践

    一.介绍Prometheus Prometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的.随着发展,越来越多公司和组织接受采 ...

  4. Linux MySQL 安装、远程访问和密码重置

    安装: yum install mysql yum install mysql-server yum install mysql-devel 设置开机启动: chkconfig -add mysqld ...

  5. 机器学习进阶-图像特征sift-SIFT特征点 1.cv2.xfeatures2d.SIFT_create(实例化sift) 2. sift.detect(找出关键点) 3.cv2.drawKeypoints(画出关键点) 4.sift.compute(根据关键点计算sift向量)

    1. sift = cv2.xfeatures2d.SIFT_create() 实例化 参数说明:sift为实例化的sift函数 2. kp = sift.detect(gray, None)  找出 ...

  6. inno setup 安装前判断进程是否存在,以及停止相应进程<转>

    打包的时候遇到了这样的需求:假似用户都是傻瓜                  式操作,如果更新安装程序的时候,之前的老程序还在运行这个时候如果你去提示让用户吧老程序手动退掉也不现实. 所以当遇到这种 ...

  7. Lazarus 0.9.26——UTF8编码副作用

    Lazarus 0.9.26中,涉及范围最广的的改变就是所有的的String默认都采用UTF8编码,IDE终于有了完全的UTF8支持,以前在源码编辑器中“吃掉”半个汉字的情况不再出现.对于Linux下 ...

  8. Hive安装与配置--- 基于MySQL元数据

    hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行. 其优点是学习成本低,可以通过 ...

  9. Spring STS Call Hierarchy 查找不到被调用的信息

    今天使用Spring的STS的时候,发现Call  Hierarchy无法使用,很奇怪,发现问题出现在同一个工作区间里,如果工作区间不在此工作区间,发现还是可以找到被调用的信息的.当时在网上找也没找到 ...

  10. 17.struts-开发流程.md

    目录 struts2.3.4 基本步骤 1. 导包,struts2.3有八个包要导入 2. 配置web.xml,引入struts核心功能,配置过滤器 3. 开发action 4. 配置action s ...