美文网首页
Charles --- Discover new skills

Charles --- Discover new skills

作者: 二先生Developer | 来源:发表于2017-11-16 10:30 被阅读51次

使用Charles在同一个网段中抓取数据就不说了(模拟器、真机都👌),下面我们看看更加实用的技术篡改返回数据

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

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

wKiom1WcsD6B1KCuAAATwpXwZYo738.jpg

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

wKioL1Wcsg7CWVhUAADTkpw_7pk214.jpg

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

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

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

wKiom1WcsD_QWRxUAAEijZIpaAo144.jpg

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

wKiom1WcsD-y_Q-6AADiaXU4ztA176.jpg wKioL1Wcsg_BkKW3AADkY8GBziQ592.jpg

这里的有好几种查看的方式,但是推荐使用JSON Text看的比较清楚。 现在我们对拦截回来的数据进行修改,我把这些统计数据全改成999如下图

wKioL1Wcsg_C_ukxAABwuHfbKh4059.jpg

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

wKiom1WcsECAj-zKAABNiw_cXLA498.jpg

能来到这一步就说明已经完整的掌握了用青花瓷篡改返回数据测试App的技术。

这么做的意义:

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

好友提到了Charles的本地映射 我感觉也是非常实用的东西,记得前面做项目,查看后台数据通过NSLog/Print 或者是在工程中打断点,看到的数据都不在是标准的JSON格式数据,而是经过转换的这样的数据

变异的JSON
如果这时我想把本地映射的数据加载入工程作为工程的测试数据,这时就非常方便了,而不需要手动去修改控制台打印出来的数据(如果数据量大,你就不想去改成JSON数据了😄)所以将抓取到的数据做本地映射就显得格为重要
NSData转JSON 没搞懂为什么要放个 try? 希望懂的大神解释一波

下面就是本地映射具体操作:

1、选中你要进行断点的接口,右键选择Save Respons,把文件保存到本地
image

2、格式用.bat

image

3、返回到接口处,再点右键,选择Map Local,映射到本地你保存的文件上面

image

4、选择保存成bat格式的文件

image

5、选择保存成bat格式或者Text的文件,查看可以通过j son在线工具解析,或者直接拖入工程,创建模型使用该数据!

相关文章

网友评论

      本文标题:Charles --- Discover new skills

      本文链接:https://www.haomeiwen.com/subject/dgakvxtx.html