【web/app】charles抓包https/模拟弱网/设置断点/修改接口请求值或返回值/压测

charles几个常用功能
charles本质一是一个代理服务器,可以抓移动端也可以抓web端,都需要安装证书
 
1,抓包https网页:(如未配置,会显示unknown)
第一步:安装证书
if 移动端,首先:给手机安装SSL证书
  • 手机和电脑在同一wifi下,手机wifi配置http代理,ip是电脑ip,端口一般默认8888
  • 安装SSL证书到手机,Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device
  • 在手机上输入弹窗提示网址后,浏览器会自动弹出下载或者安装弹窗,安装证书
  • 注意最后步骤必须保证第一步完成,即此时手机已配置了电脑的IP代理,否则的话可能不会自动下载
case1:如果是安卓机,下载成功后没有安装弹窗,点击下载的pem文件无法打开,此时
小米,设置-更多设置-系统安全-加密与凭据-从储存设备安装,点击对应文件,安装即可
华为,设置-高级设置-安全-从SD卡安装证书,点击对应文件,安装即可
 
case2:如果是iphone,且ios 10以上,需要到通用-关于手机-证书信任设置,勾选一下,即可
 
if web端,比如我想抓本机谷歌浏览器的接口返回
Help -> SSL Proxying -> Install Charles Root Certificate 安装即可
 
第二步:在charles SSL Proxying 增加你想要抓的网址
  • charles,Proxy -> SSL Proxying Settings
  • 点击add: host(写你要抓的网址url);端口443
 
两步做完之后手机再次发起请求,charles已经能看到https网页的接口数据了,在这个过程中charles有可能会问询能否连接,直接点击allow即可
如果完成以上步骤还是不能抓包,可以尝试重启charles,重新连接
还不行的话,再次确认下当前PC的ip地址是否正确,注意wifi不同,当前pc的IP地址会变化,如果IP地址变化的话,就算是同一手机也要针对新的IP重新完成以上操作,才能抓包
 
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里选择刚刚保存的文件
Tools-Map Local- Map Local Seting可以勾选你想选择的选项
之后再在客户端重新请求接口,就可以发现客户端显示的就是刚刚你修改后的内容
那么如果关闭Map local ,恢复正常请求呢,在 Tools-Map Local 里把enable勾选去掉,或者去掉你想要关闭的文件就可以了
 
如果map local了文件之后再次发起请求,数据没有变化,可以查看保存的request/response的json文件,之前做的修改是否有效,可以使用一些线上的json转换文件
可手动更改json文件的内容,重新map local,app再次发起请求,一般来说就可以了
 
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是对网络请求进行一下正则替换
posted @ 2019-01-11 11:22  别打雷  阅读(1745)  评论(0编辑  收藏  举报