手把手教你Charles抓包工具使用

手把手教你Charles抓包工具使用Charles简介Charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器,当浏览器连接Charles的代理访问互联网时,Charles可以监控浏览器发送和接收的所有数据。它允许一个开发者查看所有连接互联网的HTTP通信,这些包括request,response和HTTPheaders(包含cookies与caching信息)。Charles主要功能支持SSL代理。可以截取分析SSL的请求。支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。支持AJ

大家好,又见面了,我是你们的朋友全栈君。

Charles简介

Charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器,当浏览器连接Charles的代理访问互联网时,Charles可以监控浏览器发送和接收的所有数据。它允许一个开发者查看所有连接互联网的HTTP通信,这些包括request, response和HTTP headers (包含cookies与caching信息)。

Charles主要功能

  • 支持SSL代理。可以截取分析SSL的请求。
  • 支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。
  • 支持AJAX调试。可以自动将json或xml数据格式化,方便查看。
  • 支持AMF调试。可以将Flash Remoting 或 Flex Remoting信息格式化,方便查看。
  • 支持重发网络请求,方便后端调试。
  • 支持修改网络请求参数。
  • 支持网络请求的截获并动态修改。
  • 检查HTML,CSS和RSS内容是否符合W3C标准。

开始抓包

在开始抓包之前,先来介绍下本篇文章主要涉及Charles那些?

  • Charles的介绍与安装
  • web抓包
  • App抓包
  • 抓取手机HTTPS协议
  • Charles过滤
  • 弱网测试
  • 打断点篡改数据
  • 重复发送请求
  • compose编辑接口
  • 服务器压力测试
  • 本地映射
  • 远程映射
  • 后续会继续更新

Charles的介绍与安装

在移动互联网时代,作为测试工程师,开发工程师。绝对必须要掌握必要测试工具,今天主要来了解Charles。

官方地址:

https://www.charlesproxy.com/

在这里插入图片描述

安装

由于安装过程是比较简单,这里就不再过多贴图了,直接上一张安装后进入首页的图片,让我们一起来看一下Charles的庐山面目。
在这里插入图片描述

web抓包

1,web 抓包

Charles Web抓包非常简单,启动Charles会自动与浏览器设置成代理,不需要进行过多的设置,接下来我就就是通过浏览器发送网络请求,Charles就会直接抓取到这些信息和响应信息

在这里插入图片描述

2,Web 抓取HTTPS协议

虽然现在Charles能够直接抓包了,但是https协议的报我们是抓取不了的,需要安装SSL证书才可以

Charles下配置
1,点击顶部菜单栏【Help】–>选择【SSL Proxying】,点击【install Charles Root Certificate 】安装Charles根证书即可;
这里由于用的笔记本截图快捷键问题,没发截取,这里截取证书安装,证书安装一直下一步就可以
在这里插入图片描述
在这里插入图片描述
2,点击【Proxy】–>【SSL Proxying Settings…】
3,在弹出选项卡中,勾选【Enable SSL Proxying】点击【add】,在Host输入【*】表示接收任何主机,在Prot输入【443】最后点击【ok】保存
在这里插入图片描述
在这里插入图片描述

App抓包

Charles抓包不仅仅可以抓取来在电脑端的HTTP请求,也能够抓取来自App发出的HTTP请求,但是手机抓包需要在电脑端配置下,并且同时需要手机和电脑在同一网络下

电脑端配置:

1,启动安装好的Charles抓包工具;
2,点击【Help】–>【local IP Address】获取下ip地址,也可以直接通过电脑自带的CMD命令来获取电脑IP【ipconfig】,根据自己的习惯这里的ip是取我虚拟机的;
在这里插入图片描述
在这里插入图片描述
3,点击【Proxy】–>【Proxy Settings】我们在设置下端口号“9999”;
在这里插入图片描述

手机端设置:

1,打开手机的设置页面;
2,选择【无线局域网】;
3,IOS点击连接的WIFI后面的感叹号,安卓应该是长按连接的WIFI;(注:这里主要以IOS为例)
4,点击【配置代理】–>【手动】;
5,输入本机【IP地址(192.168.1.75)】以及端口号【9999】,这是我本机的,根据自己情况合理配置;
6,点击【存储】
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
接下里验证下手机请求,当我们看到Charles里能抓到这个连接,就说明配置没问题,看到unknown,这个不要紧,那是我们没有安装针对手机端的证书,下面继续我们手机端HTTPS证书安装
在这里插入图片描述

抓取手机HTTPS协议

通过上面的设置,虽然来自我们手机端的Http协议请求可以抓取到,但是HTTPS协议的包是不能抓取的,需要安装配置证书才可以,现在手机上大多数都已经切到https很少由http协议的了

Charles配置:

1,点击顶部菜单栏【Help】–>选择【SSL Proxying】,点击【install Charles Root Certificate】安装Charles根证书即可;
2,点击安装【Install Charles Root Certificate On a Mobile Device or Remote Browser】在移动设备上或远程浏览器安装证书即可;(这里和上面安装一样)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Charles过滤

通常情况下,我们需要对网络请求进行过滤,只监控向指定目录服务器上发送的请求。对于这种需求,以下几种办法:

方法一:在主界面的中部的 Filter 栏中填入需要过滤出来的关键字。例如我们的服务器的地址是:http://ceshi.com, 那么只需要在 Filter 栏中填入 ceshi 即可。

方法二:在 Charles 的菜单栏选择 “Proxy”->”Recording Settings”,然后选择 Include 栏,选择添加一个项目,然后填入需要监控的协议,主机地址,端口号。这样就可以只截取目标网站的封包了。如下图所示:
在这里插入图片描述

弱网测试

Charles配置弱网设置
1,点击【Proxy】–>【Throttle Setting】
2,勾选上【Enable Throttle】,也可以勾选【only for selected host 】 设置一个指定注解访问进行网络限制,不影响其他软件;
3,在【Throttle preset】选择常见预设的网络情况,也可以在【Bandwidth】自己设置网络的上传和下载速率
在这里插入图片描述
在这里插入图片描述

打断点篡改数据

在我们的测试场景中,可能需求修改请求参数或者返回参数进行测试,比如支付方面的接口,涉及用户登陆权限的接口参数
这里就不再举例了;

修改请求数据

1,选择请求会话右键勾选【Breakpoints】这是我们会发现工具栏有个六边形按钮已经变为红色
2,设置断点,点击菜单栏【proxy】勾选【Breakoint Setting …】这是会弹出断点设置弹窗;
3,在弹出的断点设置弹窗,双击想打断点的接口,进行断点编辑;
4,编辑断点,如果修改Request数据,九江Request勾选,如果修改Response数据,就将Response勾选,当然你也可以都勾选;
5,在手机上重新进行请求,Charles 会自动进行拦截并跳转到请求数据修改页面;
在这里插入图片描述
这时,服务端给我们返回的数据就是有关jmeter的数据了

重复发送请求

在我们的测试工作中,可能你会发先一个bug,开发会让你在操作一遍,他要查看日志经i选哪个定位分析,这时候,在客户端上进行操作一遍就会麻烦,这是直接用Charles 发送一遍重复的请求就可以了,并且,重新发送请求也可以帮助我们进行功能测试;
选择需要重新发送请求的会话上,直接点击工具栏【重新按钮】

Compose编辑接口

在我们的测试工作中,可能需要发送不同的参数进行请求。
选择需要修改的请求,右键选择【Compose】这时多出一个笔的请求;

服务器压力测试

Charles 还有一个比较有意思的功能,它能勾简单的给服务器进行压力测试;
1,在进行压力测试的请求会话上右击,选择【Repeat Advanced】
在这里插入图片描述
2,在弹出框中,输入并发线程数以及压力次数点击进行测试

本地映射

映射的意思就是指将一个请求重定向到另外一个请求,本地映射的含义就是通过修改已有数据来映射指定的接口,使接口数据使用本地设置的数据来做调试,
下面我就通过一个例子位大家讲解如果通过Charles 将网络请求映射到本地文件
在请求会话上右键选择【Save Reponse…】将返回信息保存到本地

远程映射

远程映射的含义就是将你本地的请求地址,映射到另外一个远程地址上,相当于你的请求地址修改了,下面就通过一个例子
在菜单栏点击【Tools】选择【Remote】进行远程映射设置。

如果本文对你有所帮助,欢迎关注点赞,分享给您身边的朋友。您的鼓励就是对我的最大动力。

相关博客

简书原文博客:手把手教你Charles抓包工具使用
掘金原文博客:手把手教你Charles抓包工具使用

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/130129.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Anaconda清华镜像源的使用及安装Pytorch失败问题解决

    Anaconda清华镜像源的使用及安装Pytorch失败问题解决AnacondaAnaconda(官方网站)是一个用于科学计算的Python发行版,支持Linux,Mac,Windows,包含了众多流行的科学计算、数据分析的Python包。Anaconda本身也可以通过清华镜像下载。在Anaconda中使用清华镜像源1添加清华镜像至Anaconda仓库运行以下命令,将清华镜像添加至Anaconda仓库中condaconfig-…

    2022年9月28日
    4
  • saga分布式事务_spring分布式事务实现

    saga分布式事务_spring分布式事务实现Saga分布式事务解决方案与实践我先介绍一下我自己,我叫姜宁,来自于华为开源研究中心,现在负责的是ServiceComb这个开源项目。ServiceComb这个项目已经进到Apache孵化,应该是去年11月份时进到Apache孵化的,这个月我们帮刚发了1.0M1版,但对于SAGA来说我们属于探索的阶段,发布了0.1.0。我参与过Apache一些项目,我也是Apache的Member,…

    2022年9月19日
    6
  • CAP定理整理_craig定理

    CAP定理整理_craig定理CAP定理是分布式系统设计中最基础、最关键的理论,CAP定理又称CAP原则,指的是在一个分布式系统中,Consistency(一致性)、Availability(可用性)、Partitiontolerance(分区容错性),最多只能同时三个特性中的两个,三者不可兼得CAP的定义Consistency(一致性):“allnodesseethesamedataatthe…

    2025年6月23日
    2
  • Linux安装Jenkins教程

    Linux安装Jenkins教程Linux安装Jenkins教程网址https://pkg.jenkins.io/redhat-stable/选择最新的版本下载下载好了将文件上传到服务器然后执行命令rpm-ivhjenkins-2.7.3-1.1.noarch.rpm(版本自己对应上!!这里我只是举例)Jenkins默认的端口是8080,如果你的tomcat也是,那你得修改下进入vi/etc/sysc…

    2022年5月14日
    33
  • Repeater嵌套绑定Repeater「建议收藏」

    Repeater嵌套绑定Repeater「建议收藏」Repeater嵌套Repeater的结构: cs代码:  Code private void RpTypeBind()   {       //GetQuestionTypeAndCount() 返回一个datatable        this.rptypelist.DataSource = LiftQuestionCtr.GetQuestio…

    2022年7月14日
    21
  • mysql 加入�列,改动列,删除列。

    mysql 加入�列,改动列,删除列。

    2021年12月2日
    40

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号