今天测试登录模块,如果出现网络很差无响应超时的情况。(有遇到过没有设置超时时间的bug)想到Charles是可以模拟弱网条件进行测试,在以后测试视频画面流畅度和网络环境关系的时候也可以用到。记录下大概步骤。
以前在window下安装了Charles4.0,非破解版,启动的时候会延时10s,然后每次只能用30分钟,需要重开。
一、Charles抓包
Charles是通过将自己设置成代理服务器来抓包,代理设置默认端口8888。
我需要抓取手机端某个应用的包,先把默认的抓取本机的包取消掉,取消勾选Windows proxy。在PC端查看本机IP,然后在手机端设置HTTP代理为手动。将刚才查到的IP填入服务器地址,端口填写8888。完成后返回Charles会看到弹出手机请求连接的确认框,允许就可以了。
打开应用,抓包,过程中发现有些请求会显示unknow,而且提示SSL Proxying not enabled for this host
这因为是HTTPS请求,需要服务端和客户端都具备认证证书。
1. 首先在PC端安装charles ca证书,选择Help-SSL Proxying下Install Charles CA SSL Certificate
然后弹出证书信息,选择安装证书,将证书存储改为:受信任的根证书颁发机构,完成。
2. 修改Charles的proxy settings,勾选Enable transparent HTTP proxying.
3. 选择SSL Proxying settings,在Locations部分添加,Host为*,Post为443,抓取任意站点(HTTPS默认端口为443)
这样就OK啦~~~
4. 最后还遇到个问题,测试应用的登录时,地址和端口号都不一样,另外还提示了手机端没有证书这个问题,在Help-SSL Proxying下选择Install Charles CA SSL Certificate on a Mobile Device or Remote Browser,弹出以下提示框。
之前已经在手机上设置好了代理,现在去浏览器输入:chls.pro/ssl这个地址就会自动跳转到安装charles证书的界面啦,安装完成回到Charles,就一切OK啦~~~
二、模拟网络环境
在Proxy-Throttle Settings下选择网络环境并设置参数就好了。测试网络环境极差登录超时的情况,把下载上传参数设很小就可以啦~