安装软件
百度搜索charles,第一个地址官方链接了:www.charlesproxy.com,下载安装便可。
设置网络,进行抓包
- 将移动设备和电脑设备设置为同一个网络,即连接同一个Wi-Fi。
- 利用电脑查询IP地址,如下图:
- 或者通过Mac的终端查询,打开终端,输入
ifconfig
,如下图:
- 设置移动设备的网络代理模式 进入连接的无线网的高级模式,上滑倒最底层,进入HTTP代理模式,然后选择手动,并在服务器中填写自己查到的IP地址,然后在端口中填写8888,最后存储设置。
- 然后用手机打开你要抓包或者mock的App,电脑端会显示一个弹窗,然后选择
allow
再进行手机操作,每个请求都会被拦截,使用Charles可查看。
证书配置,拦截HTTPS请求
对于https的请求,拦截的是乱码,如下图,需要做一些额外的操作。
需要设置SSL Proxying Settings
,将对应的域名以及端口添加进去,使用*:*
即可,如下图
另外还有相关证书的配置,通过help->SSL Proxying
去安装证书,Mac与iPhone都要进行安装并且信任,如下图
配置电脑端证书,选择install Charles Root Certificate
,然后安装,最后选择始终信任
配置手机端证书,选择install Charles Root Certificate on a Mobile Device or Remote Browser
,然后在手机浏览器里输入chls.pro/ssl下载,进行安装。最后一步就是进入手机设置,通用->关于本机->证书信任设置
,然后信任刚刚安装的证书即可。
这样就可以成功的拦截https的请求。
Mock链接的数据
截取到链接的数据是这样的:
如果列表有很多的请求,可以通过左下角的Filter:
进行筛选
方法一
首先要选择出想要mock数据的接口,设置断点
然后需要再次触发访问该接口。Charles会停留在断点接口,提供一个Edit Requese
页,可提供修改参数以及请求类型、请求链接的校验。
接着点击Execute
进行执行下一步,选择JSON Text
可以看到断点链接返回的参数,这个时候就可以改动返回值的结果,以达到想要测试的目的。
比如这里修改的是参数 "Community": "东方御花园一期",改成 "Community": "测试Mock数据",执行Execute
,便可看到下面结果(确保没有请求超时)。
方法二
按照方法一的步骤,获取到断点链接返回的数据后,把数据源拷贝出来,本地新建一个JSON类型的文件,把返回的数据复制到该文件中。 具体步骤如下:
打开软件Sublime Text
在你需要调试的接口,右键有个Map Local
选择你在本地提前写好的json文件,然后点OK
最后再次触发该请求即可。
以上是两种方法Mock数据,个人感觉第二种更方便一点,毕竟网络请求一般都是会有超时情况,如果Mock数据需改比较麻烦的话,会带来不便。
最后如果需要取消断点Breakpoint
或者Map Local
,可以进行下面的操作。
限速
利用上面的小乌龟,可以达到控制网速的效果,不过需要设置一下代理模式。 步骤如下:进行网络请求限制网络时,可调节Download
的相关参数;如果要限制上传速度的话,可调节Upload
的相关参数。
相关设置搞定以后,点击OK进行保存,便可以进行各种弱网测试,此时你也会发现,小乌龟变绿了,貌似在睡觉,表示限制网络了。
重写功能
Charles的Rewrite功能非常强大,可以重写接口所有元素的内容,例如:header、host、url、path、query、param、response status、body。
首先选择Tools->Rewrite
,会弹出下面弹窗,选中Enable Rewrite
以及点击左下角的Add
:
具体需要重写的对象,可以在Location下点击Add
去添加。具体重写操作可点击右下侧add
按钮进行添加。
当所有都添加完毕,点击OK保存即可。
最后感谢好友 @倩楠 的帮助,让我从陌生到了解的认识Charles。