- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章真香!自从用了Charles,Fiddler已经被我彻底卸载了由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
在做客户端/服务端测试时,经常需要对客户端的操作进行抓包分析,排查请求和响应数据是否符合预期。因此抓包能力是软件测试从业者的必备技能。目前行业里常用的抓包工具主要有Fiddler和Charles。本文重点讲解下Charles的基本使用.
Charles 是一款支持 HTTP 代理和抓包的网络代理软件。浏览器或APP通过 Charles 访问网络时,它可以记录并显示所有发送、接收的数据.
Charles依赖Java运行环境,本机需要先配置好jdk(具体安装配置略) 。
访问Charles官网 。
点击右侧下载按钮,就能下载最新版Charles,在Windows下双击安装即可。目前最新的版本是4.6.2.
默认情况下,启动Charles后,就能自动抓Chrome浏览器、Firefox浏览器的包,如果不能抓,请检查Charles中是否勾选了代理开关“Windows Proxy/Mac Proxy” 。
Charles主要提供两种查看封包的视图,分别名为 “Structure” 和 “Sequence” 。
默认情况下Charles会抓取所有的数据包,并展示在请求列表中。但是大多数情况下,我们只关系某个ip或某个域名下的包Charles提供了过滤器,帮助我们显示/排除指定的HTTP请求.
Charles有两种方式可以实现请求过滤:
方法一:
请求列表下方的Filter可以实现简单的过滤功能,输入关键字即可筛选出对应URL 。
方法二:
菜单栏“Proxy-Recording Settings”里,设置include(包含)和exclude(排除),可以仅显示或者不显示指定的url 。
和Fiddler一样,Charles也提供了弱网模拟的功能,测试浏览器/APP在弱网条件的使用情况.
菜单栏里“Proxy”–>“Throttle Setting”里,Charles内置了不同的网络模式:56kbps、256kbps ... 3G、4G等,来模拟不同弱网效果。还可以手动修改Download和Upload的值,模拟不同的速度.
需要注意的是,这里的网络速率值,单位是bps,对应到常用的byte/s,还需要除以8,如图中的4096kbps,实际为512kb 。
如果想对某个请求进行拦截,修改请求的参数。或者修改某个请求响应中的值,可以使用Charles的断点功能.
在请求列表中,选择某个URL,右键点击“Breakpoints”,默认就给这个请求设置了请求+响应断点。进行指定的操作时,Charles就会拦截对应的请求,并支持数据修改 。
修改服务端返回的响应内容,比如将success修改为fail 。
如果想做一些更详细的的断点配置设置Breakpoint Settings 。
和Fiddler一样,Charles也可以抓APP端的包,需要进行以下设置,ProxySetting中设置允许远程HTTP代理 。
电脑和手机连接同一WiFi,在手机端设置WiFi代理,指向Charles所在的ip和8888端口 。
最后,Charles还有很多高级功能,大家可以去官网查看文档进行学习.
原文地址:https://www.toutiao.com/a7067507576748900900/ 。
最后此篇关于真香!自从用了Charles,Fiddler已经被我彻底卸载了的文章就讲到这里了,如果你想了解更多关于真香!自从用了Charles,Fiddler已经被我彻底卸载了的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
一段时间以来,我一直在做这个反复出现的噩梦(阅读 - 我的应用程序中的错误)。出于某种原因,某个计时器在我停止后继续发送“Elapsed”事件,即使 在事件本身 计时器“承认”已被禁用!检查一下: /
为了找到 2 个 git 分支的共同祖先,需要做的是: git merge-base branch another_branch 好的。但是……如果两个分支都已经 merge 了怎么办?当我在这种情况
关闭。这个问题是opinion-based .它目前不接受答案。 想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它. 1年前关闭。 Improve this
我想要一个相机 View ,可以将图像捕获到本地文件或让用户从本地照片库中选择图像。我想也许有人为此编写了很好的库/代码。也许我可以利用它。已经有好的了吗?谢谢。我只是避免重新发明轮子:) 最佳答案
我从 master 分支创建了一个功能分支。之后有来自功能分支的提交 [F1]。 [F1] -- Feature Branch / [M1]-[M2
我喜欢使用 .NET 进行编程,尤其是 C# 3.0、.NET 3.5 和 WPF。但我特别喜欢的是 Mono .NET 确实与平台无关。 现在我听说了 Mono 中的 Olive 项目。我找不到某种
介绍和搜索 所以我认为我犯了一个严重的错误,我很担心。我已经分析了独立负责人的论坛,我已经接近找到答案,但场景太具体,不适用于我所在的位置。如果您找到可以回答我的问题的特定主题,请链接我。 例如:Ho
我有一个类似于下图的提交图。标记为 * 的提交表示大量提交。 A* | B--------- | | C* D* master 和 cor
我喜欢使用 .NET 进行编程,尤其是 C# 3.0、.NET 3.5 和 WPF。但我特别喜欢的是 Mono .NET 确实与平台无关。 现在我听说了 Mono 中的 Olive 项目。我找不到某种
我们最近接手了一个 .NET 项目,在查看 db 后,我们在某些列中有以下内容: 1)某些列具有诸如" & etc etc 2) 有些有 标签和其他非 html 编码的标签 这些数据
你好,当我导航到应用程序中的另一个页面时出现此错误 我不知道为什么这个错误出现 #0 _AsyncCompleter.complete (dart:async/future_impl.da
我使用以下 C 算法计算数据的 CRC32: #define CRC32_POLYNOM_REVERSED 0xEDB88320 uint32 calcCrc32(uint8* buffer, u
我试图在我的一个测试中断言模型中的字段没有改变。我知道从哲学上这是不正确的,但由于我控制了我需要知道的所有变量,所以我只想检查我的数据库条目是否没有改变。 我愿意接受一个解决方案,该解决方案可以将其转
我是 GitHub 的新手。并通过 Eclipse 使用它我们是两个人在开发一个应用程序。当我在 Git shell 中检查 git status 时,我得到以下状态。 On branch maste
简单代码: std::ifstream file("file.txt"); std::string line; while(getline(file,line)) ; //exhaust file
是的,我又找不到这个 Gradle DSL 方法:'compile()' 问题。 我检查了我有: buildscript { repositories { jcenter()
HTML: articles CSS: #main_menu { float: left; padding-top: 10px; vertical-align: m
我是一名优秀的程序员,十分优秀!