charles高级篇:过滤请求、串改请求、上行下行超时、弱网

一、背景

抓包工具的使用,是测试工作中高频使用必备的技能之一,charles因其功能强大,页面清爽,成为了目前主流且非常好用的抓包工具。之前有写过一篇文章:Charles抓取https请求及常见问题解决,刚入门的同学可以先看这一篇。

但会抓包只是第一步,抓到请求之后,能对请求做对应的操作,以满足我们不同测试场景的需要,才是核心难点。因此今天主要是charles的进阶使用技能讲解,主要包括以下几点:

  • 如何过滤请求
  • 如何串改请求入参&响应结果
  • 如何模拟请求上行/下行超时
  • 如何模拟弱网环境

二、过滤请求

运行Charles抓包后,我们所有的网络请求都会显示在Charles页面上,请求太多,不方便找到自己关注的请求:
在这里插入图片描述
这个时候就需要用到过滤请求这个功能,在下方“Filter” 文本框内输入你关注的请求的域名,这样页面上就只会展示该域名相关的请求信息了:
在这里插入图片描述

三、临时串改请求

很多时候我们需要串改请求的入参、响应内容,以达到想要的测试效果。有多种方式可以达到串改请求的效果,如果是每次都临时改造入参、响应内容,那么可以使用断点。在请求上鼠标右键,然后选择“Breakpoints”:
在这里插入图片描述
然后你会发现工具栏的断点图标变为了红色,表示断点已启用:
在这里插入图片描述
此时我们再次访问草料二维码的登录页面,charles则会给该请求打上断点,拦截该请求。首先弹出的修改入参页面:
在这里插入图片描述
有3个按钮,分别的作用是:

  • Cancel,表示不修改入参,跳过修改入参,直接进入修改响应内容页面
  • Abort,表示取消该次请求,本次登录请求会失败
  • Execute,表示执行本次的修改内容,然后跳转进入到下一步“修改响应内容页面”

比如我们本次将登录窗口的文案从“微信扫码登录”改为“微信扫码登录被串改啦哈哈”:
在这里插入图片描述
点击Execute,执行本次修改,查看修改后的效果,会发现登录窗口文案确实被修改了:
在这里插入图片描述

四、长期串改请求

打断点的方式适合每次临时手动修改请求入参和响应,但有的时候,我们不想每次都手动修改,想让某个请求一直自动被串改,这个时候就需要用到“重写”功能。

同样是登录请求,我们在charles菜单栏选择Tool > Rewrite…
在这里插入图片描述
然后勾选上“Enable Rewrite”,添加一个规则,比如我们取名叫“changeLogin”,填写我们要修改的请求是哪一个请求:
在这里插入图片描述
然后再添加要修改的内容是request还是response,本次我们修改response,将response中body中的“微信扫码登录”文案修改为“我试试微信登录啊啊”:
在这里插入图片描述
点击OK保存好之后,重新请求草料二维码登录页面,会发现登录页面的文案已被修改
在这里插入图片描述
并且多次请求登录页面,会发现每次页面都被自动修改了,不再需要像打断点的方式每次都手动去修改。如果不想修改请求了,就在菜单栏选择Tool > Rewrite…>Rewrite Settings页面上取消掉“Enable Rewrite”选项的勾选就行了:
在这里插入图片描述
取消勾选后,再次请求登录页面,页面恢复正常原样显示啦:
在这里插入图片描述

五、请求上行下行超时

有时候我们需要测试请求超时的情况下,程序的表现是否符合预期。超时又分为请求上行超时和请求下行超时,通过Charles同样可以实现该功能。做法依然是使用前面说过的断点,给请求打上断点后,我们可以点击菜单栏的Proxy > Breakpoint Settings…
在这里插入图片描述
在弹出的断点设置窗口上双击请求,会出现“Edit Breakpoint”窗口,窗口上只勾选"Response", 则表示请求不拦截,只拦截响应:
在这里插入图片描述
保存后,再次请求登录,charles收到响应后会拦截,自动跳到修改请求响应内容界面:
在这里插入图片描述

  • 如果是让它超时,可以停留在这个状态等程序触发超时,或者点【Abort】直接触发请求失败;
  • 如果想让它等一会再返回或想修改响应结果,可以在合适的时机,点【Execute】;
  • 如果不想拦截了,放过它,就点【Cancel】

登录请求失败后,页面显示如下:
在这里插入图片描述
同理,如果要测试请求上行超时,则在断点编辑弹窗页面上只勾选“request”即可:
在这里插入图片描述

六、模拟弱网限流

有时候我们需要测试在网络很差,即通常说的弱网情况下,程序的表现是否符合预期。这个时候同样可以通过Charles来实现该功能。点击菜单栏的Proxy > Throttle Settings…
在这里插入图片描述
勾选“Enable Throttle”, 勾选“Only for selected hosts”,设置对“https://user.cli.im”域名的请求限流:
在这里插入图片描述
点击Throttle preset下拉选项中预设了一些常用的网速设置,可以直接选择,也可以自己手动在下方去修改设置:
在这里插入图片描述
网络限流的每一项代表的含义,我找了一个中文版帮助大家参照对比理解各选项的意思:
在这里插入图片描述
最后我们来看看弱网后的效果,本次登录请求总共耗时11.71秒才加载完成:
在这里插入图片描述

============================================================================
以上就是本次的全部内容,如果对你有帮助,麻烦点个赞+收藏+关注,一键三连啦~ 欢迎关注下方我的公众号:程序员杨叔,更多文章会第一时间在上面发布,持续分享各类测试开发知识干货,你的支持就是作者更新最大的动力。

  • 26
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Charles修改请求,首先需要熟悉Charles的使用方法。你可以参考中提到的"charles使用"的相关内容,了解如何在移动端和Web端进行抓包和修改请求参数值。 在Charles中,有三种方式可以修改请求。第一种方式是,在端上响应结束之前修改请求,这样修改才会生效;如果端上响应已经结束,修改请求将不会生效。第二种方式是,如果要修改响应,同样需要在端上响应未结束的情况下进行操作才会生效;如果端上的响应已经结束,修改响应将不会生效。这两种方式可以通过执行请求和执行响应来实现。 此外,还有第三种方式可以修改请求,可以直接修改返回的接口。在响应时间内,可以对该接口的请求和返回数据进行修改。 总结起来,Charles可以通过修改请求参数、修改返回数据以及修改接口来实现请求的修改。具体操作方法请参考相关文档和教程。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Charles如何修改请求和返回数据](https://blog.csdn.net/jdsjlzx/article/details/109449563)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值