Charles 用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Charles 用法相关的知识,希望对你有一定的参考价值。

参考技术A

一、Map Local: 将指定的网络请求重定向到本地文件。

1、选中接口,右键选择 Save Response ,然后 保存为 .json 格式

2、将json编辑为我们期望的数据,然后选中接口,右键选择 Map Local 。

3、编辑map的本地路径。

4、如果想取消本地映射,可以在偏好里选择是取消所有的map local,还是指定接口的。

5、在接口未开发的情况下,我们仍然可以创建一个json文件,然后执行步骤三,去模拟接口请求。

6、目前,我测试的 Query 参数,只对 GET 请求有效,特此说明。Query参数可以限制只对传递指定参数的请求做本地映射处理。

二、Map Remote: 更换远程接口地址,使用场景一般是,在不重新运行程序的情况下,将测试环境地址手动更改为生产环境等。

1、选中接口地址,右键“Map Remote”

2、编辑想要替换的地址,保存即可。

3、同样,如果想取消远程映射,可以在偏好里选择是取消所有的map remote,还是指定接口的。

三、修改网络请求: 在与后台进行联调的时候,可能需要给后台传递不同的参数,但调试的入口又比较深,这时候Charles的“编辑请求”的功能就可以大显身手了。比如说,模拟登录,踢掉用户等等。
1、选中接口,然后选中钢笔(Compose)

2、可以任意编辑请求头、请求参数,然后可以选择 执行 恢复更改 取消

四、模拟网速: App测试时一般都是用的公司的网络,速度还可以,如果想模拟网络环境非常差的情况下,会出现什么情况, Charles 也提供了对应的支持,来模拟低速网络环境。

1、进入Throttle设置

2、选择需要模拟的网络环境

3、可以通过点击面板上的小乌龟,来快捷的开关 模拟网速 。

五、断点调试

1、对要调试的接口打断点,并开启断点调试,如下图所示。

2、当请求调试的接口时,Charles会先跳到 编辑请求 ,点击执行后,会跳到响应的编辑页面。我们在这里,可以对返回的结果进行编辑。

需要特别注意的是: 如果timeoutInterval设置的时间过短,可能会造成在没有编辑完就超时的情况,建议如果编辑需要时间过长,我们就把timeoutInterval设置的足够长些。

六、连续多次请求

七、专注模式

像下图一样,把我们不关心的请求归到另一个文件夹里。

操作方法:

八、Find in: 在ULR、Header、RequestBody、ResponseHeader或ResponseBody里搜索字符串,正如你看到的,还支持正则表达式的搜索。

原理简析

当然,如果 用户不选择信任安装Charles的CA证书 ,Charles也无法获取请求内容。还有一种,如果 客户端内置了本身的CA证书 ,这时如果Charles把自己的证书发送给客户端,客户端会发现与程序内的证书不一致,不予通过,此时Charles也是无法获取信息的。

抓包工具Charles基本用法

Charles提供两种查看封包的页签,一个是Structure,另一个是Sequence,Structure用来将访问请求按访问的域名分类,Sequence用来将请求按访问的时间排序。任何程序都可以在Charles中的Structure窗口中看到访问的域名。

 

二、Charles常用功能

Charles功能十分强大,这里介绍几个开发中常用的功能。

1、抓取移动设备发送的Http请求

先将移动设备连接到Charles客户端。首先在电脑中输入cmd打开命令行窗口,输入ipconfig查看本机连接无线网络的IP地址,这个地址作为移动设备连接Charles客户端的代理地址,移动设备必须要和计算机在同一网络中才能连接上。打开Charles客户端,点击Proxy->Proxy Settings菜单,可以设置移动设备连接到Charles的端口,这样移动设备代理配置需要的ip地址和端口号都有了。Charles是通过将自己设置成代理服务器来完成抓包的,勾选系统代理后,本地系统(如果通过浏览器发送请求)发送出去的请求都能被截取下来。因此,如果想只抓取手机APP发送的请求的话,可以不勾选WindowsProxy选项,这样在测试时就不会被本机Http请求所干扰。

另外,如果想要抓取浏览器发送的请求包,勾选WindowsProxy选项之后还是抓取失败,可能是浏览器没有设置成使用系统的代理服务器,只要设置成使用系统的代理服务器,或者将浏览器的代理服务器设置成127.0.0.1:8888也可以成功。

 

 

移动设备配置之后,第一次通过手机访问手机中的发送请求时,Charles会弹出提示框,提示有设备尝试连接到Charles,是否允许,如果不允许的话,手机发送请求失败,点击Allow允许,这样这个设备的IP地址就会添加到允许列表中,如果错误点击了Deny可以重启Charles会再此提示,或者通过Proxy->Access Control Settings手动添加地址,如果不想每个设备连接Charles都要点击允许的话,可以添加0.0.0.0/0允许所有设备连接到Charles。

 


2、过滤不必要的网络包

在抓取手机发送的请求时,有许多请求包是对图片等不需要关注的资源的请求,我们只想对指定目录服务器上发送的请求进行抓取,这时候就可以通过过滤网络包的方式实现。有两种实现方式:

1)选择Proxy->Recording Settings菜单,然后在include栏添加需要抓取包的指定服务器请求协议、地址、端口号,也可以在exclude栏添加不抓取包的地址。

 


2)在Sequence界面的Filter栏中填入需要过滤的关键字。


3、代理转发

我们在进行本地开发功能的测试时,可以将手机请求的地址转发到本机地址的程序进行执行。右键选择Map Remote,配置请求转发的地址。


并选择Tools->Map Remote Settings菜单,勾选配置的转发条目。


也可以右击选择Map Local配置请求映射到本机地址。


4、抓取Https请求

Charles默认情况下是抓取不到Https请求的包的,需要进行配置安装证书。选择Help->SSL Proxying->Install Charles Root Certificate,


点击下一步,


然后继续下一步直到导入成功,


选择Help->SSL Proxying->Install Charles Root Certificate on aMobile Device or Remote Browse菜单,


手机根据提示地址、端口号配置号代理后,浏览器打开http://chls.pro/ssl,


选择允许,


安装证书,然后配置Proxy->SSL Proxying Settings,添加要抓取的Https请求,


如果不使用Charles,想要删除手机里面的证书,可以通过手机中的设置->通用->描述文件与设备管理,删除指定的证书即可。
---------------------
作者:Terisadeng
来源:CSDN
原文:https://blog.csdn.net/dongyuxu342719/article/details/78933618
版权声明:本文为博主原创文章,转载请附上博文链接!



















以上是关于Charles 用法的主要内容,如果未能解决你的问题,请参考以下文章

http调试工具Charles Proxy用法详解

Charles

charles抓包显示乱码解决方法

Charles-青花瓷抓包工具

接口测试中抓包工具Charles的使用

二. 史上最全Charles抓包(青花瓷)使用教程