charles除了以前介绍过模拟弱网的功能外,还有不少强大的功能。最近客户端测试用到的功能介绍以下:服务器
charles设置代理端口号8888:Proxy→ Proxy Settings网络
手机设置代理,链接wifi,点开设置http代理,选择手动,服务器填写charles所在本机的ip地址,端口号8888app
Proxy→SSL Proxying Settings→勾取Enable SSL Proxying→add→添加想要抓取的域名和端口号,以抓取阿波罗app数据为例工具
手机代理到电脑,charles会出现弹窗,询问allow仍是deny,选择allow,链接成功。测试
一般状况下,咱们须要对网络请求进行过滤,只监控向指定目录服务器上发送的请求。网站
在Charles的菜单栏选择"Proxy"->"Recording Settings",而后选择Include栏,选择添加一个项目,而后填入须要监控的协议,主机地址,端口号。这样就能够只截取目标网站的封包了。以下图截取阿波罗app数据:spa
若是只测试一个功能的状况下,能够只截取单个接口,例如测试阿波罗首页广告,只需截取splash接口,添加并勾选。代理
勾选Proxy →Start Recording,开启抓取记录,能够在charles界面看到你所过滤的网络请求,以阿波罗app为例:调试
Charles主要提供2种查看封包的视图,分别名为“Structure”和"Sequence"。排序
你们能够根据具体的须要在这两种视图以前来回切换。
对于某一个具体的网络请求,你能够查看其详细的请求内容和响应内容。若是响应内容是JSON格式的,那么Charles能够自动帮你将JSON内容格式化,方便你查看。
能够将远程的某个文件代理到本地文件,进行调试。使用方法以下:
Tools→Map Local→勾选Enable Map Local→Add→填入须要映射本地文件的协议,主机地址,端口号
本地文件能够是本身造的测试数据,也能够是接口返回的数据保存到本地再进行修改,只需先将接口返回数据进行保存到本地:点击某接口response,右击save response。
Map Remote的功能原理和Map Local的原理相同,都是替换请求,只不过Map Local替换的请求为本地文件,而Map Remote替换的请求为线上请求。
使用方法:Tools→Map Remote→勾选Enable Map Remote→Add→填入须要替换请求的协议,主机地址,端口号。
如图,splash接口映射到entry接口,splash接口访问的是entry接口的数据。
咱们能够经过使用断点功能来篡改请求的数据或者返回的数据,达到模拟的效果,已测试阿波罗app为例方法以下:
相似于mapping,咱们能够针对接口右键选择"BreakPoints",这样这个接口就被加入到断点状态了
须要进一步修改断点的属性,能够在菜单栏"Proxy"–>"Breakpoints Settings"里进行添加删除或者修改,配置方式和mapping雷同,而且能够选择这个断点是在request仍是response,仍是二者都要。
这个时候再刷新app界面,会直接跳转到断点模版,这个时候你能够在对应状态状况下修改request或者response,而后点击下方按钮“Execute”。
跳转到断点界面,先点击下方执行按钮“Execute”。
而后点开Edit Response界面,选择JSON格式,格式清晰,方便修改,直接在上面进行数据修改,改为你想要测试的数据,而后点击执行按钮
再次刷新app界面,而后app返回的是新改的数据,根据返回数据测试客户端显示是否正确。
不断更新。。。