一.跟踪HTTPS
1.下载官方的证书ssl.zip证书,解压成*.crt
2.可以通过邮箱或者发布到自己的服务器的方式,然后用手机去下载安装crt文件。
3.charles设置Proxy-->SSL,勾选Enable SSL Proxying,下面点击"Add",将你需要验证的域名+端口号添加进去并且勾选。比如:*.my.com, mobileapi.myserver.com
4.手机设置对应代理的IP,这个时候就可以看见Charles中https请求的内容了
PS: 步骤3中如果你勾选了,但是你的设备没有装证书,如果走代理则会请求失败。不勾选,可以请求成功,但是无法看见内容。
碰到mthd="Connect",request里看见“SSL Proxying not enabled for this host: enable in Proxy Settings, SSL locations”的错误,则表示第3步没有将域名设置好。
二.强大的mapping功能
简单来说,可以远程的某个文件代理到本地文件,从而进行调试。
1.打开我****的blog首页,然后可以在charles看到所加载的页面和相关资源,找一个js文件做代理,如图:
2,创建一个本地文件1.txt,我将realtime.js的 response拷贝下来,并且在开头添加自己的js语句 “alert(123)”
3.选择"Map Local..",设置如图:注意的是在paramter里我设置的是"*",因为很多情况下接口可能会加随机串,当然URL也可以使用通配符来匹配
4.点击OK,重新刷新页面。页面弹出alert,内容为:"123"。并且在"Notes"的Tab里会告诉你“Mapped to local file: /Users/apple/Desktop/1.txt”,表示成功
5.如果要删除已经设置的map地址,可以在Tools-->Map Local... 里管理,添加或者删除,非常方便。
三.网速模拟
Proxy-->Throttling Setting,可以模拟各种情况下的网络速度,从而可以在低速情况查看APP的使用情况
部分设置含义,Bandwidth(带宽)、Utilistation(利用百分比)、Round-trip(往返延迟)、MTU(字节)
四.断点功能
APP某个界面需要调用接口,并且返回数据来绘制界面。我们可以通过使用断点功能来篡改请求的数据或者返回的数据,达到模拟的效果。让我们来看看怎么做
1.类似于mapping,我们可以针对接口右键选择"BreakPoints",这样这个接口就被加入到断点状态了
2.需要进一步修改断点的属性,可以在菜单栏"Proxy"-->"BreakPoints"里进行添加删除或者修改,配置方式和mapping雷同,也可以使用通配符来操作,并且可以选择这个断点是在request还是response,还是两者都要
3.这个时候再刷新界面,会直接跳转到断点模版,这个时候你可以在对应状态情况下修改request或者response,然后点击下方按钮“Execute”。
五.重复发送
这个和前端似乎关系不大,可以对接口测试健壮性,也是右键点击某个请求,然后"repeat" 或者"repeat Advance",后者可以设置循环调用次数和间隔
六.支持中文显示(Charles乱码问题)
打开Charles.app,找到Info.plist,然后添加参数-Dfile.encoding=UTF-8
参考
http://www.36ria.com/6278