基于应用场景聊聊charles

在我从开发web变成开发wap以后,wap上的调试没有之前那么方便了,然而有个工具对我在调试的帮助很是大,那就是charles(或者finder)。前端


除了开发以外,测试大佬在测试wap的时候用charles也是很好用的,在不少时候,测试反馈了一些问题以后,开发要作的不少时候就是手机连上代理,而后按照测试大佬说的操做场景去复现,固然也会关注charles里面的信息,例如:android

1.静态资源是否有缓存
2.是否由于接口数据返回的问题,这个时候就能肯定是本身的问题仍是后端接口的问题

1.代理手机看请求
查看ip(直接用终端查也是能够了,ipconfig[win系统] 或者 ifconfig[mac能够用这个]),


默认端口是 8888

若是 8888 端口被占用的话,那么能够proxy settings 面板调整portios


在设置好代理以后,就能够用手机来链接代理了,在手机链接代理后会弹窗提示要不要容许连代理,点击allow按钮,赞成链接。



2.在代理手机以后,在抓请求的时候,会遇到https请求的话抓取不了的问题,是提示“unknow”,具体表现以下:


那么这时候要作的有两步,
a.给手机安装证书;




直接在手机自带浏览器上输入 chls.pro/ssl 就能够了,根据不一样的系统,安装证书的步骤也有点区别

android:(小米安装不了,这个后期会整理一下看有没有其余办法,并且android在系统升级了以后,也有可能安装证书的方式变了,例如我自个的荣耀机子)web

->打开自带浏览器,输入chls.pro/ssl,进行证书下载
->根据提示,安装证书,应该须要输入锁屏密码,若是没有密码的话,须要设置以后才能安装
ios:
->打开Safari,输入chls.pro/ssl,进行证书下载
->提示安装
->安装成功后,
进入 设置
->关于手机
->证书权限,打开对应的证书信任开关

b.设置SSL Proxying



在 SSL Proxying 面板添加对应的设置。这里提一下,若是是写指定的域名的话,那么可能每有一个https的域名,你都得添加一次,有一种能够偷懒的方法,那就是直接添加一条


作完上面这两步以后,你就能够愉快的经过手机代理进行抓请求了。(这个时候其实也有可能会出现请求是 unknown的一个状况,例如域名自己的证书过时,或者像andoid在打包的时候选择的sdk是android 6.x 的版本,会发现抓不了https,须要客户端的同事在debug包作些处理。)

如今已经能够抓请求调试了,可是光是这样仍是知足不了平常的一些调试场景,例若有时候在修复bug的时候每次都得打包好静态资源,而后上传到对应的环境,而后再进行验证,若是验证有问题的话,还得重复这样去操做,这样是很费时间的。(比较有些项目只能是在特定的环境调试,没办法在本地调试)json

3.静态资源代理


这里的方式有两种
a.Map Remote 指定对应连接目录,例如


把全部https://xxxx.com/static/下面的资源,直接访问到 http://192.168.10.17:8080/dist/下面对应的资源,能够经过这种方式在本地去调试。

b.Map Local 指定对应本地目录,例如


把全部https://xxxx.com/static/下面的资源,直接访问到本地目录下面对应的资源。

上面的这种主要的应用场景有两个
1.代理到本地资源,方便调试bug
2.在测试环境被占用,且只是前端的测试环境被占用,那么能够经过以上方式来达到测试的效果,固然到最后,确定也是要在正式环境里面过一遍的。

4.接口数据更改
有时候在测试的时候,须要测一下接口返回特殊数据的状况,并且是比较难以达成的条件,例如,等级要到达9999级的时候才触发,这时候有个方法就是直接修改接口返回对应特殊的数据来测试。

在左边请求显示栏目,右键,而后点击 breakpoints ,断点这个请求


当第二次请求的时候,就会来到这个界面,编辑request信息,点击 execute,进入下一步


点击编辑 editResponse
后端


这个时候直接修改json,再次点击 execute 就完成了请求。返回结果



后面再继续补充。有错误的地方,欢迎指点。
相关文章
相关标签/搜索