Charles进阶使用(一)

前面我给大家讲解了Charles的IOS和Android抓包教程,今天给大家带来Charles中常用的:Breakpoints、Map Local、Throttle

图片

在Charles使用的过程中经常用到Breakpoints(断点)功能,Charles默认是关闭该功能的,需要手动启动。解释一下Breakpoints:一个请求打了断点,在用户触发这个请求的时候,用户既可以修改发送request请求的URL及请求的数据,也可以修改接口response返回的数据。

什么测试场景使用断点呢?

  1. 客户端发送的请求参数有问题,我们可以通过打断点修改客户端的参数发给服务端,这样服务端就能给正常的返回数据给客户端,不会影响后续的测试

  2. 服务端返回的数据有问题,我们通过打断点修改服务端返回的数据,已达到不影响后续测试的目的

  3. 测试极限长度,例如点赞人数超过999,前端就显示999+,测试的时候你要造超过999个赞会很麻烦,这个时候打断点就排上了用场

  4. 如果是前端做的分页功能,超过20条就产生分页,测试的时候造数据是很痛苦的,那么就可以通过修改服务端的数据,按照格式复制粘贴造数据,这样就可以达到测试分页的目的

  5. 测试数据的各种状态,可以通过修改服务端的数据进行测试,例如:已读、未读

  6. 接口健壮性测试,将返回的某些参数返回的数据清空,看前端的兼容,是否会出现崩溃现象

下面我们举个详情的例子:

图片

如图:

图片

A) 点击“Cancel”表示:断点取消,不做任何修改即原数据发送请求(即使你修改了请求内容也只发送原始数据)

B) 点击“Abort”表示:中止,不会给服务端发送该请求

C) 点击“Execute”表示:发送修改后的请求(只要你愿意,你也可以不修改请求内容)

Response:

图片

  1. 我们选择一个接口(ist?categoryCode=&partId=1)右键,点击Breakpoints,这就打上的断点,我们每次访问这个接口的时候,都触发断点

  2. 开启Breakpoints后,Charles控制面板上六边形就会变红

    图片

    ,再次点击

    图片

    就会关闭Breakpoints

  3. 我们如果选择上图的“speak”右键点击Breakpoints,那么它下面所有的接口都会触发断点(接口intro、接口list?part=1、接口ist?categoryCode=&partId=1)

  4. 我们也可以通过Breakpoint settings(Proxy-->BreakPoint Settings设置每个断点的Request和Response

    1. 取消勾选Enable Breakpoints,我们在触发接口时,不出出现断点的现象

    2. 勾选了Request,我们就可以在触发该接口的时候,修改请求request的数据

    3. 勾选了Response,我们就可以在触发该接口的时候,修改返回Response的数据

  5. 触发断点的接口

    request:

    图片

    图片

    1. 我们可以修改request请求接口的请求类型(post、get)

    2. 我们可以修改request请求接口URL

    3. 我们可以修改request请求HTTP协议的版本

    4. 我们可以修改request请求接口的参数categoryCode和partId

    5. 我们可以修改request请求的header数据

    A) 点击“Cancel”表示:断点取消,不做任何修改即原数据展示(即使你修改了返回的内容也只展示原始返回的数据)

    B) 点击“Abort”表示:中止,APP端是不会展示服务端返回的任何数据的

    C) 点击“Execute”表示:显示修改后的数据(只要你愿意,你也可以不修改原始返回数据)

    1. 我们可以修改Response返回的数据

  6. 删除Breakpoints

    我们在使用玩Breakpoints后,不再希望该接口再走断点了,这个时候,我们就需要删除断点,以下的方法都可以让该接口不再走断点

    1.  我们选择刚刚打断点的接口(ist?categoryCode=&partId=1)右键,再次点击Breakpoints,这样就删除了该接口的断点(推荐使用)

    2. 我们可以在Breakpoint settings(Proxy-->BreakPoint Settings)点击取消勾选Enable Breakpoints,这样Breakpoints服务就关闭了。(这个方法有个缺点:别的接口启用断点后,这个接口断点也启用了,所以不建议使用该方法)

    3. 我们可以在Breakpoint settings(Proxy-->BreakPoint Settings)在断点接口list中取消勾选该接口,这样该接口的断点就不会启用。(建议使用)

      图片

图片

Map Local的功能是接口的返回值读取本地文件的内容,而不是接口返回的数据。可能有人就会提出疑问了,Breakpoints(断点)不是也可以修改接口的返回数据么?

解释一下这两个的不同点:

  1. Breakpoints是接口实时返回的数据,你通过修改实时返回的数据已到达测试目的;

  2. Map Local永远读取的是本地文件的内容,只要本地的文件内容不变,前端展示的数据就不变。

  3. 除非对数据有要求,要不然都可以使用Map Local代替Breakpoints的Response。例如:未支付的订单进行支付,这个时候只能使用Breakpoints获取新订单,因为同一个订单是不允许重复支付的。

图片

  1. 我们选择一个接口(ist?categoryCode=&partId=1)右键,点击“Save Reponse”,将接口返回的数据保存在本地。

  2. 可以修改本地保存的文件内容已达到测试目的

  3. 我们选择一个接口(ist?categoryCode=&partId=1)右键,点击Map Local

    图片

  4. 加载修改后的本地文件,这样前端请求该接口后,前端展示的内容都是本地文件中的内容

图片

    关闭Map Local

    1. 删除本地保存Response的文件

    2. 上传Local path里面的文件路劲,但是不能全部删除,要不然保存不了

    3. 重新启动Charles

图片

在测试的过程中,很多时候都需要考虑弱网络的情况,这个时候就可以使用throttle settings进行模拟弱网的情况

  1. 点击Proxy->Throttle Setting

    图片

  2. 可以在Throttle preset上选择自带设置的配置,可以选择不同的网络情况进行模拟,也可以手工修改网络情况进行测试

  3. 开启"Only for selected hosts"后,可以针对单独的host进行限速,不会影响其他的host。例如:针对www.baidu.com进行限速,不会影响到www.sina.com的速度

  4. 不开启"Only for selected hosts",那么手机上所有的host(应用)都会受到限速

  5. 介绍下上面面板

    1. Bandwidth(Kbps)—>带宽(千比特/秒)、download—>下载速度、upload—>上传速度

    2. Utilisation(%)—>可用率(%):带宽可用率,大部分modern是100%

    3. Round-trip latency (ms)—>往返延迟(毫秒)

    4. MTU (bytes)—>最大传输单位(字节)

    5. Reliability (%)—>可靠性(%):丢包情况

    6. Stability (%)—>稳定性(%):网络抖动情况

    7. Unstable quality range (%)—>不稳定质量范围(%):此处设置主要针对于Stability中设置中的范围

  6. 开启Throttle preset后,Charles控制面板上小乌龟就会变成绿色

    图片

  7. 再次点击

    图片

    就会关闭Throttle preset

  8. 顺便介绍一下,IOS手机开发者工具就携带有各种网络模拟。IOS手机开启开发者权限,需要拿着手机去找IOS开发小哥哥连一下Xcode即可。

    图片

后面会继续推出Charles更多的图文教程,希望大家能够喜欢,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值