Charles使用教程汇总

环信
+ 关注
2022-04-01 15:27
1102次阅读

1.  简介

    fb7b830d9ed64b63845d0bd2ffcd64c6.png

●    Charles,一款代理抓包工具,可以分析和排查网络相关的问题

●    支持移动(安卓、iOS)设备

●    以下使用文档,以安卓设备为准,iOS设置大同小异

2.  Charles安装

●    安装包官方可下载

官方版为试用版,启动时有10s等待时间,每隔30min会提示关闭,重新打开后可以继续使用30min

3.  Charles代理配置使用

1)   打开Charles 

2)   查看本地IP

        a4c41b41d68db029dbe2916158295167.png

3)   手机连接WiFi(此WiFi需要和电脑在同一网段内,公司内直接连接cheetahmobile即可)

4)   设置手机代理

a)   长按cheetahmobile无线网络

b)   选择修改网络

  f7256267ccb90fedfa635b83d9c9cdc9.png

c)   勾选高级选项,将代理设置为手动,填入步骤2获取的IP地址,代理服务器端口默认为8888

4db1f84e0efae55d483d69fc81ee8faf.png

d)   手机中打开应用,产生网络请求,电脑端同意连接

e)   如在公司外使用,先将电脑未连接VPN之前的IP设置为手机的代理服务器地址,手机连接电脑之后

e10b9a80b488bdb1bdee5b39fccc6bfa.png

5)Access
Control

这个功能可以管理目前连接到你电脑上的设备(包括添加,删除,导入导出配置文件等,另外,Charles还提供了能够让所有设备无须询问直接连接电脑的方式:添加一个0.0.0.0/0的IP即可)

有时可能会遇到手机连接到电脑之后,无访问许可请求,此时可以去access
Control中手动进行添加

对Charles有大量使用需求的同学,时间久了之后,access
control里可能会有很多IP,建议大家在每次的测试开始前,清理IP池,将本次要测试的手机添加到自己的访问名单(使用Charles过程中,需要修改网络请求数据和host,如果不维护IP池,可能会干扰你自己或者别人的测试)

4.  修改默认的8888端口号

●    测试过程中,默认代理填入的端口号为8888,设备之间经常借调,会导致其他人依旧连接你的代理

●  可以手动修改默认的8888端口号

1)   打开设置面板406a0c7a9fcf06ad95d6546a6f829432.png

2)   修改默认的端口号保存即可5fecdbc4321c6185ad908401d8e90af1.png

5.  设置本地(电脑端)不走Charles代理

●    本地走代理部分情况下会导致上网慢(如有针对情况下限速),且电脑端产生的请求较多,容易刷屏

1)   Proxy--Proxy
Setting… 
ecc7975f5cebfbba8990de76b7b3060b.png

2)  定位到WindowsMozilla FireFox

3)   将下方的复选框取消勾选后保存

4)   以后再次启动Charles后,电脑端的所有请求就不会被Charles抓包 df9993093f0422e7108471f7e74e8b00.png

6.  设置关注的域名

●    抓包域名比较多情况下,容易刷屏,可以将需要测试的域名添加到关注列表,方便查看

1)   产生的网络请求中,选中后右键选择Focus

2)   再次产生改请求的情况下就会在前面,而未关注的域名就会被分配到Other
Hosts下

cd6327d23585d5f603b4d227176968dc.png

7.  域名重定向(A-->B)

●    测试过程中客,可能会将户端A域名的请求访问到B域名上

1)   找到需要重定向(A)的域名,右键选择Map Remote...

        607f94f752f2b8335acea87cdff3b3ae.png

2)   填入对应域名的信息后保存(A-->B)

a75c38767cfe5b90e0089a658fbf5c53.png

3)   客户端再次请求,下发的域名变为B

        d048306a6db5d32afa284b0d3752240c.png

8.  域名重定向(A-->本地文件)

●    测试过程中,需要看客户端对服务端数据的容错,如果服务端没有给脏数据,则需要本地模拟脏数据

●    需要对一个字段进行多次校验工作,服务端配置麻烦可以采用本地方式

1)   将正常访问的域名的response数据,复制保存到本地(格式无所谓,txt、json都可以)

2)   选择域名,右键访问的链接,选择Map Local

3)   在Local Path路径中,将本地保存的数据选中e49b3dfb3d95678e71ce39513bcdf4cb.png

4)   客户端再次请求时,访问的数据即为本地数据

307c85e044ae4f55159cd10e8f241016.pngbf1102c53d62bbab21c6836509b7440f.png

9.  查看已配置的重定向设置

●    查看和取消Map Local和Map Remote已经设置的重定向

1)   点击菜单中的Tools

2)   需要取消重定向设置,将已配置的数据删除或者选择Enable
Map 
Local开关即可

7a9dbac49373a3cb93139f8aab82dba4.pngf890861adf4f99f1f61bdead83bd4dd5.png

10. 设置限速

●    查看网络加载慢情况下,客户端的容错及反馈情况

1)   打开限速设置窗口

        4579b92f536dfd5988a6c73735eb0d16.png

2)   限速可以针对选定的域名,也可以针对生效

3)   也可以参照Facebook开源的方案进行设置

a)   限速提供了通用的方案,比如Custom,3G等方案

b)   可以手动设置解决方案 

84dade27b3d10611c9571f690e49c5cb.png

海外项目,建议参照Facebook的ATC解决方案来模拟

●    Facebook
ATC提供了将近10种类型的网络参数设置,包含了发达国家,发展中国家,郊区、市区等网络情况

772aad8d62db2f4af13ff8a739dcd59a.png

11. https解密抓包

●    安全起见,公司部分域名采用了https的方式,https是加密,常规情况下无法抓到包请求

8ce204ebe9eb7eea9261f4f3b3211162.png

1)   开启Charles

2)   电脑端安装Charles证书

a)  
Help--SSL
Proxying--install Charles Root Certificate

16512e918164a151b23f133c04f2f4f2.png

b)   安装证书

34139f7b6781706b95e4df9ea403466d.png

c)   证书安装到“受新人的发布者”下

b5245ba3b205806c0ec9aeb4144c961d.png

3)   手机端安装电脑证书

b)  部分浏览器如果提示证书下载失败,就换个浏览器,目前QQ浏览器亲测有效c)   安装证书,证书名字随便写

d)   安装证书需要设置锁屏密码

4)   安装成功后,Charles客户端开启对应的域名SSL

123b391fb734d40af0b3bc725e391f82.png

5)   设置对应域名的网络连接,https默认端口为443

1ce6c03fffb3b8e12388f7eb3d7a79c7.png

6)   设置成功后,访问域名,即可查看解密后的请求状况

5a7e4874ef142a49d4a1be3cc2467cdc.png

12. 重复请求

●    对于一些客户端不容易触发的请求,可以通过charles中repeat功能进行重复请求,简单方便

1)   选中请求的URL,右键选择Repeat

f5fd9d9866c2155f3fd5ad29e1a94c68.png

2)   即可查看请求的结果

13. 对接口进行压力测试

1)   选中要进行压测的接口,右键选择Repeat Advanced…

2362f26c041a7055069f54f234a49b29.png

2)   填入重复执行的次数和并发数

a)   Itreations:循环次数

b)   Concurrency:并发次数

c)   Delays,请求与请求之间的间隔时间

●    并发代表是统一时间内请求多少次,比如设置循环6次,每次并发3条,则会分2次,每次并发3条去向服务端进行请求(需要注意的是,如果循环次数不是并发次数的整数倍,则不会触发所有的请求,如设置循环次数为10,并发条数为3,那么最终只会发起9次请求)

d002db496cd1deb75d9f3413050a108e.png

3)   查看测试结果

2a58747f52a09d68b05c860d9fdbc4ef.png

14. 修改请求参数之Edit

●    验证不同请求参数下,接口是否返回对应的数据

 比如发魔方数据,限制了MCC为460以内的生效,那就可以改MCC为非460,看是否还能请求到对应的开关信息

1)   选中对应请求,选择Edit

8517ca507d48b9b60b4d5eec2532f532.png

2)   修改参数请求参数后点Execute

f7ff3180271411ebebfe99e1ecbf1f82.png

3)   重新请求后,请求参数中就包含了对应的参数

c3caf0b73757a6db90153bd164ed7c9d.png

15. 修改请求参数之Rewrite 

●    客户端的云端开关,大多是通过魔方下发,不同的MCC,语言和aid会下发不同的数据,客户端如果要拉取不同的配置时,需要修改这些参数。修改MCC和aid还需要在root的设备上使用三方工具,随着Android版本的升级,部分参数甚至无法修改

●    广告和新闻的数据,会区分国际进行投放,有时甚至只会针对特定的国家(如印度新闻)投放,客户端为了测试这些功能,需要借助VPN或者debug版本

●    与MCC和aid修改器说再见

1)   打开Rewrite设置

c08496cc3ecbeaf928622816e3779e2c.png

2)   添加一条配置信息

a)   打开Enable Rewite功能开关

5133f405668ad771c447573a420b357a.png

b)   添加一条配置信息

c)   Location中,添加域名的详细信息

867efe39eed27dc19af143a68c693765.png

3)   对域名添加对应的规则

a)  修改URL中的请求参数,比如MCC,aid等,Type选择:Modify
Query Param

b)  修改URL中的地域,比如添加某个国家的IP,Type选择:Add
Header

72e62dc33b9829d6fa9a25c2d9ae85ce.pngdb061c4e2a456ffa65d6b2514a09dd49.png

❖   举个栗子:

➢   例子1:客户端需要请求只针对MCC为310且aid尾号为1的用户下发的魔方云端配置

1.   配置魔方域名

267e42b2b12148b5b6c4e3282590ae18.png

2.   Type选择:Modify Query Param,并填写对应的参数

        4bd8bdfab080b66e0e8b7503df4addb2.png7b7b4f9028cd4e2b557b61b1f00cc0c3.png

3.   打开开关,客户端再次发生请求

82ac174ab12589816429c32664b65390.pnge7019ac511d2ed0a4dd915c55439ea7d.png

➢   例子2:客户端需求请求只针对印度IP下发的picks广告数据

1.   配置对应域名的数据

b34a8cdc811eeaacd14a0632ec2b88c4.png

2.   新增一个请求参数

d4318ce5bdf0e2297eaead220874d535.png

3.   再次请求对应链接

dc15b941f12a50ee32515bd2d09cc115.png

 

➢   例子3:客户端需要请求只针对英国IP下发的新闻数据

1.   配置对应域名的数据

7e23092b7dd515712927f7ffba34a1d6.png

2.   选择Type为Add Header

c277408385f04f41b648f5d1ccbbd179.png

3.   客户端再去触发请求,抓包查看X-Forwarded-For已修改为2.101.8.8

a766f9924e39fcc5c1d81cb54b78dc6d.png

16. session的操作

             Charles支持同时打开多个session,但新发起的网络请求,只会在最后建议的session中进行记录

             Charles还支持将session进行保存,在需要的时候可以将session作为Charles的日志提供给其他需要的人进行查看

17. 两种数据查看方式:structur和sequence

878817598dc938fbb306ea3706c799f9.png

18. 复制和保存请求内容            
1.     
在某个请求上右键选择“copy
URL”,可以将本次请求的完整URL复制出来
            
2.     
在某个请求上右键选择“copy
response”,可以将本次返回数据的完整内容复制出来
            
3.     
在某个请求上右键选择“save
response”,可以将本次返回数据的完整内容以文件的形式保存在本地

19. 选择内容查看方式            
1.     
在某个请求上右键选择“view
response as”并进一步选择需要的数据查看方式(有时候返回的内容,Charles不能直接提供json的查看方式,可以用这个功能来强行查看josn格式)
            
2.     
同理,可以在某个请求上右键选择“view
request as”并进一步选择需要的数据查看方式

20.对添加ignore的域名取消忽略

1.     忽略对应的域名

70fdb5f59b75f8e129916fda29b9c202.png            
2.     
进入Proxy--Recording Settings,进入Exclude取消remove即可

09707cfe88e149c52efde1f0100ec93d.png

[免责声明]

原文标题: Charles使用教程汇总

本文由作者原创发布于36氪企服点评;未经许可,禁止转载。

资深作者环信
环信
0
北京易掌云峰科技有限公司
实力厂商
实力厂商
优质服务
优质服务
及时响应
及时响应
立即询价
相关话题
效率办公
相关文章
最新文章
查看更多
关注 36氪企服点评 公众号
打开微信扫一扫
为您推送企服点评最新内容
消息通知
咨询入驻
商务合作