1.安装软件
百度搜索charles,第一个地址官方链接了:https://www.charlesproxy.com
如果没安装java环境,首次进入charles会提示需要安装java包,下一个java包就可以了。
安装后,长这样的。
打开软件。
2、设置网络
a、查询电脑的IP地址
Window使用快捷键win+R进入运行窗口,输入cmd,再输入ipconfig
MAC在终端里输入ifconfig,注意是“f”,不是“p”(Mac端调起终端的方法见另一篇:http://blog.csdn.net/alice_tl/article/details/75905103)
b、将移动设备和电脑设备设置为同一个网络
c、设置移动设备的网络代理
进入无线局域网的高级设置页面,找到HTTP代理字样。
选中手动代理,并在服务器中填自己电脑查到的ip地址,然后把端口调8888,最后点击左上角返回。
返回值后系统会自动设置代理重新连接,这样操作的目的是为了让手机就经过电脑上网。
e、用手机打开一个联网的程序,电脑上会显示一个弹窗问【allow】还是【deny】,点allow。
之后手机发出的每一个请求都会被拦截到电脑上,使用charles看见。
2.拦截某个软件的接口数据
拿个APP举例。手机上启动一个只要是需要联网的操作的app,进入一个产品详情页面
请求和返回字段信息如图。
Contents的内容即为请求传参内容,比如APPID、DeviceID、OS和OSversion等一看就很好理解。
下方json格式的字段信息及服务端返回的信息,Response
另外这里可以看到接口名称,并且双击可以拷贝下来。
对于 https 的请求,如果发现拦截到的是乱码,需要设置 SSL Proxying Settings,将对应的域名或及端口添加进去,*:*也可,如图:
3.mock返回的数据
这个页面本来应该返回的字段信息是这样的:
手机上展示一个名称叫“产品说明书”的文本,点击后可以跳转到这个链接
a、选择想要mock数据的接口设置断点,如图:
b、设置了断点后,再次触发访问该接口。
c、先会弹出页面问是否要修改request,即是否修改请求的传参。
此时不需要修改请求参数,可以直接点击“Execute”执行
d、接着会弹出Response修改的页面,点击Json Text
这里的有好几种查看的方式,但是推荐使用JSON Text看的比较清楚。
e、现在我们对拦截回来的数据进行修改,把返回的跳转链接改成https://www.baidu.com,然后点击“Execute”
更改后的数据就会像正常返回回来的数据那样显示到,APP的页面上展示。点击后就跳转到www.baidu.com页面了。
那么一般情况下,什么时候会用到mock数据测试呢。
1、测试接口的时候,模拟接口返回的不同信息,为空,或者不同code
订单接口返回状态为空时对应前端的展示
订单数据出现异常时对应前端的展示
订单接口请求超时对应前端的展示
2、测试页面展示以及兼容的时候,想知道某一个字段内容长或者短,或者是空白的时候怎么展示,或者一个图片尺寸大了或者小了怎么展示
3、定位前后端问题的时候,更直观
比如当前端点击跳转没有反映时,可以将链接地址拷贝到浏览器中看看是否打开,看是地址本身的问题,还是前端无法调起手机浏览器的问题