如何用charles抓http/https包并mock数据

一、 抓http包

1. 打开charles,设置代理端口号

如何用charles抓http/https包并mock数据_第1张图片

1.png

2. 手机设置代理

手机必须和电脑处于同一个局域网内。
点击当前所连得WIFI右边的info设置,在设置中最下面的http代理栏,选手动,服务器填电脑的IP地址, 端口填步骤1中charles设置的端口号。填完之后返回即保存。

如何用charles抓http/https包并mock数据_第2张图片

wifi页

如何用charles抓http/https包并mock数据_第3张图片

wifi设置页

完成之后,手机即可通过电脑上的charles代理上网。手机联网的话,charles应该会弹出一个确认窗口问是否同意通过charles联网,点同意,即可开始抓包。

友情提示:手机设置了http代理后,如果charles关闭了手机将无法上网,记得把http代理取消。

二、 抓https包

charles新版本已经可以抓https的包了。我的版本是3.11.4。

1. 手机安装证书

先按抓http包的设置,让手机通过charles代理上网。
然后手机上访问地址: http://www.charlesproxy.com/getssl/
这样手机会跳到charles根证书的安装页面。一路点安装

如何用charles抓http/https包并mock数据_第4张图片

证书安装

 

如何用charles抓http/https包并mock数据_第5张图片

安装完成之后显示

2. 设置抓包域名

点开charles的 菜单---> Proxy ---> SSL Proxying Setting,在SSL Proxying页勾选上 Enable SSL Proxying。 并在下面设置要抓包的域名。没有设置的域名将不能成功抓包。 当然可以用通配符。

如何用charles抓http/https包并mock数据_第6张图片

设置抓包域名

3. 成功抓包

如何用charles抓http/https包并mock数据_第7张图片

成功抓https包



作者:qiushuitian
链接:https://www.jianshu.com/p/655600177673
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

 

 

3.更改返回数据来测试临界情况。

这个是重点了。因为这种做法可以让一个iOS前端的开发人员独立完成测试而不用拉过来一个后端一起联调。并且各种特殊维度,或是临界的账号也不用再去辛苦找了,仅仅自己在青花瓷上改来改去就可以达到效果了。比如这个地方如果返回了nil程序会不会崩,直接改response就行了。下面是具体操作方案。

打开青花瓷切换成结构页面

这里可以看到断点和调试信息

如何用charles抓http/https包并mock数据_第8张图片    如何用charles抓http/https包并mock数据_第9张图片

然后找一个我们公司的页面。这个页面本来应该返回是这样的:如上图右边

你先正常的打开这个页面把玩几下,这个青花瓷就会抓取很多接口和域名分类了。在这里找到你这个页面所属的域名分类应该不难。然后打上断点。这里要注意是在域名上打断点而不是在下面的单个请求上打断点。

再次用手机进入这个页面,就会通过你刚才打断点的那个域名来请求数据,就会被断点拦住,如下图所示。

如何用charles抓http/https包并mock数据_第10张图片

右边的信息也很清晰,一开始可以编辑请求。如果点击单步执行,等一下相应回来了也可以编辑响应。

如何用charles抓http/https包并mock数据_第11张图片

如何用charles抓http/https包并mock数据_第12张图片这里的有好几种查看的方式,但是推荐使用JSON Text看的比较清楚。 现在我们对拦截回来的数据进行修改,我把这些统计数据全改成999如下图

如何用charles抓http/https包并mock数据_第13张图片

然后再次点击下方的Execute单步执行,更改后的数据就会像正常返回回来的数据那样显示到,APP的页面上展示。

如何用charles抓http/https包并mock数据_第14张图片

 

这么做的意义:

这里只是简单的更改了一些数字,在页面显示更加直观。实际的操作中,你可以经常用来把某些值改为临界情况以看到App在处理这些临界状况时的反应,这样比找那些临界数据的测试账号成本要低得多。也可以把一些可能不会反回数值的字段找到,直接将里面的值删成nil,看看会不会报异常等等。

 

转自:https://www.cnblogs.com/SnowStark/p/5610821.html

你可能感兴趣的:(如何用charles抓http/https包并mock数据)