charles几个常用功能
1,ios 抓包https网页:(如未配置,会显示unknown)
第一步是:给手机安装SSL证书
- 手机和电脑在同一wifi下,手机wifi配置http代理,ip是电脑ip,端口一般默认8888
- 安装SSL证书到手机,Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device
- 在手机上输入弹窗提示网址后,下载安装证书
如果是ios 10以上,需要到通用-关于手机-证书信任证书
第二步:charles SSL Proxying 增加你想要抓的网址
- charles,Proxy -> SSL Proxying Settings
- 点击add: host(写你要抓的网址url);端口443
两步做完之后手机再次发起请求,charles已经能看到https网页的接口数据了
2,模拟弱网
Proxy--->Throttle Settings
勾选Enable Throttling后,在Throttle Configuration设置弱网的参数
如果不对具体的弱网参数有要求,直接点击ok就可以了
面板上的小乌龟图标也可以开启或者关闭 Throtting
(衍生:弱网测试charles配置是一种方法,ios同时自带了弱网测试,开发者选项打开情况下,设置-开发者选项 > Network Link Conditioner 入口,系统已经内置常见网络配置,也可以增加自定义配置。)
3,设置断点,修改数据(比如你想要更改某个接口的request或者reponse的某个字段)
点击想要操作的接口,右键勾选 Breakpoints
从客户端再次请求该接口,charles自动跳转到新的session
点击 Edit Request ,Form视图下,可以更改客户端的传参,修改后点击Execute即可执行,第一次只能看到传参并更改,点击执行后可以看到response,此时可以更改返回参数(json模式查看)
更改之后再次点击Execute,就可以看到更改后的参数
4,接第三点,如果我想一直存储这个修改后的接口数据,而不是每次都要经过断点呢?——可以用Map Local
Map Local是将指定的网络请求重定向本地文件上
接上,点击更改后返回的request/reponse内容,右键save request/response保存到本地文件夹中
再次点击你要修改的接口,右键点击Map Local,在Map to下的choose里选择刚刚保存的文件
之后再在客户端重新请求接口,就可以发现客户端显示的就是刚刚你修改后的内容
那么如果关闭Map local ,恢复正常请求呢,在 Tools-Map Local 里把enable勾选去掉,或者去掉你想要关闭的文件就可以了
5,压测:重复给服务器发起请求,简单测试服务器的并发处理能力
接口右键,repeat Advanced
iteration 循环次数
concurrency 并发数
附注:
1,
网络环境
|
上/下行带宽(kbps)
|
2G
|
20/50
|
3G
|
330/2000
|
4G
|
40000/80000
|
wifi
|
33000/40000
|
2,
throttle [ˈθrɑ:tl] 喉咙;节流阀;
certificate [səˈtɪfɪkət] 证书
proxy [ˈprɑ:ksi] 代理服务器; 代表权;
iteration [ˌɪtəˈreʃən] 循环
concurrency [kən'kʌrənsɪ] 并发
3,
根据具体的需求,Charles提供了Map Remote、Map Local、及Rewrite功能,都可以达到修改服务器返回内容的目的,三种的区别分别是:
1.Map Remote是将指定的网络请求重定向到另一个网址上
2.Map Local是将指定的网络请求重定向本地文件上
3.Rewrite是对网络请求进行一下正则替换