不知不觉,忙碌而又充实的三月就快要过去了,同时终于结束了长达半年之久的项目。
默默的吐槽一下,这个项目最崩溃的地方不是改bug,而是找bug啊,不过还好有charles和capture,
哈哈,下面就来介绍和总结charles的使用吧。
Charles 主要的功能:
1、截取 Http 和 Https 网络封包。
2、支持重发网络请求,方便后端调试。
3、支持修改网络请求参数。
4、支持网络请求的截获并动态修改。
5、支持模拟慢速网络。
安装Charles
[http://www.charlesproxy.com](http://www.charlesproxy.com/)官网下载,然后按照提示安装即可。
非官方版本每次启动要等待30s,每隔30min也会自动退出,不过~
先看一下Charles的页面吧!
Charles的使用
将 Charles 设置成系统代理
打开Charles,选择菜单中的Proxy--->WindowsProxy设置即可,如图所示
这样,你操作的网络请求都可以在这边看到啦。
不过,像下面这样,每一个网络请求都会显示,实在是太多了,所以可以使用Focus过滤网络请求。
过滤网络请求
选择你关心的网络请求,右击选择Focus
然后,页面就变成这样了,是不是看起来舒服了很多
抓取手机上的数据
因为我是做app的,所以大部分使用Charles都是为了抓取手机上的数据,下面就说一下如何在手机上使用,很简单。
一、在 Charles 的菜单栏上选择 “Proxy”->”Proxy Settings”,填入代理端口 8888,并且勾上 “Enable transparent HTTP proxying”
就完成了在 Charles 上的设置, 如下图所示
二、给手机设置代理,打开手机设置-->WLAN
之后,手机上的网络请求都可以看到了
注意:手机 和 Charles 代理设备连接的是同一网络
修改网络请求
开发一个app时总会和后台进行接口联调,请求发生了错误,为了让后台方便定位错误原因,
这时候可以模拟不同情况和数据,把不同请求和响应结果发给后台,让他们进行分析。
1、 选择要修改的网络请求的Url,右键单击选择Edit,就可以对请求参数和body进行修改,如图所示
修改完数据之后,点击 Execute 即可将修改后的数据直接发送出去。如果想重置回原本的数据,点击 Revert 就恢复到最初的数据了。
模拟数据
有些时候后台还没开发完成,但是数据模型和接口已经给出,这时候app需要数据进行测试,
就可以将请求重定向到一个网络地址或者一个本地文件中。
本地数据Map Local
右键单击Map Local,
远程数据Map Remote
打开此链接,http://www.mocky.io/,把数据填充到Body里面,可以修改Content Type格式,
默认是json格式。填写完成后点击Generate my HTTP Response,生成一个链接,复制此链接
右键单击Map Remote,把刚才复制的链接粘贴到Host中,点击ok即可。
取消所有的Map功能
如果想取消Map功能,选择Tools-->Map Remote(Map Local)-->Enable Map Remote即可,下次再请求此接口,返回的就是真实的数据,而不是模拟数据了。
模拟网速
App测试时一般都是用的公司的网络,速度还可以,如果想模拟网络环境非常差的情况下,
会出现什么情况, Charles 也提供了对应的支持,来模拟低速网络环境。
选择菜单栏Proxy->Throttle Settings
抓取https网络请求数据
有些时候,我们会遇到Https 请求。一般情况下,Charles 是不能截取Https的网络包的,涉及到 Https 的 证书问题。但是安装 Charles 的 CA 证书后,
就可以获取到手机上的 Https 请求了。
1、点击 Charles 的顶部菜单,选择 “Help” -> “SSL Proxying” -> “Install Charles Root Certificate”,
然后输入系统的帐号密码,即可在 KeyChain 看到添加好的证书。如下图所示:
2、打开手机浏览器,输入 http://charesproxy.com/getssl去下载安装 CA 证书。
3、在需要截取Https的请求上,选择 Enable SSL Proxying。
到此就结束了。
五月份就要来了,要出去压青了,我要控制我自己~~~~