怎么使用charles抓包
原创今天,我想和大家分享一下,主要是手机测试,并介绍我在平时的界面开发工作中使用的功能。以下是我今天分享的内容:
一、charles简介
2.安装和配置
三、功能
四、Q&A
一、charles简介
1.Charles是一个HTTP代理服务器,HTTP监视器,反向代理服务器。
ps:反向代理(Reverse Proxy)以方式 代理服务器 来接受internet然后将请求转发到内部网络上的服务器,并将从服务器获得的结果返回到internet在请求连接的客户端上,代理服务器显示为反向代理服务器。我所理解的是,手机建立了代理连接。charles,此时charles它显示为反向代理服务器。
2.它允许开发人员查看所有连接到互联网的HTTP通信。
3.Charles是一个简单的HTTP开发和测试中的协议传输调试工具 工作起着重要的作用。
2.安装和配置
charles安装:
1.下载地址:官网 http://www.charlesproxy.com 下载
2.破解:Charles这是一个需要破解的收费软件。破解方法是下载charles.jar更换原件 jar包。
3.charles.jar下载地址: http://pan.baidu.com/s/1i3Qt24H (我下的charles版本为3.11.2)
ps:jar包对应的charles版本3.11.2 ,可以在线搜索最新的
环境配置:
对于移动终端测试,测试手机app所需配置:
1.Charles端口设置
proxy->proxy Setting,设置端口号8888
2.IOS&Android代理环境配置
连接wifi,点击设置http代理, 选择手动; 服务器填写charles机器所在的位置ip地址、端口号8888
3.安装SSL根证书,查看/修改https接口
https是SSL协议加密(基于CA证书)的http请求,通过charles提出了拿包的请求charles不是服务器和app实现SSL握手协议。因此,有必要使用charles抓app的https袋子必须安装在手机上。charles的SSL根证书,实现charles对手机app身份。
安装证书:http://www.charlesproxy.com/ssl.zip,解压后导入移动设备。
方法引用:工具栏Help—》SSL Proxying—》Install Charles Root Certificate on Mobile Device or...
按照提示下载证书: 手机安装代理-浏览器输入URL-安装证书
4.SSL代理设置:Proxy→SSL Proxying Settings→勾取Enable SSL Proxying→add→添加您要抓取的域名和端口号以抓取阿波罗app数据为例
三、功能
1.捕获网络请求
捕获记录控制:过滤网络请求 通常,我们需要过滤网络请求,并且只监视发送到指定目录服务器的请求。
"Proxy"->"Recording Settings",然后Include栏选择添加一个项目,填入需要监控的协议,主机地址、端口号,这样就可以只截取目标网站的封包了。如下图截取阿波罗app数据:
勾选Proxy →Start Recording,打开捕获记录,可以在charles该界面会看到您过滤到Apollo的网络请求app为例:
Charles主要提供2包的视图,名为“Structure”和"Sequence"。
Structure该视图按访问的域名对网络请求进行分类。
Sequence该视图按访问时间对网络请求进行排序。
您可以根据具体需要在这两个视图之前来回切换。
对于特定的网络请求,您可以查看其详细的请求内容和响应内容。如果响应内容为JSON格式化,然后Charles可以自动帮助您JSON内容经过格式化,便于查看。
2.断点
Breakpoint:适用于临时修改数据
通过使用断点函数篡改请求的数据或返回的数据来达到仿真的效果,对Apollo进行了测试。app作为一个例子,该方法如下:
我们可以在界面上单击鼠标右键选择"BreakPoints",通过这种方式,接口被添加到断点状态。
断点的属性需要进一步修改,可以在菜单栏中找到。"Proxy"–>"Breakpoints Settings"添加、删除或修改,您可以选择此断点在request还是response或两者兼而有之。
刷新app接口,跳转到断点模板,此时可以在相应状态下进行修改request或者response,然后点击下面的按钮“Execute”。
点开Edit Response界面,选择JSON格式清晰,易于修改,可直接对数据进行修改,更改为您想测试的数据,然后点击执行按钮。
再次刷新app接口,然后app返回新数据。根据返回的数据,测试客户端显示是否正确。
3.强大的maping
Map:适用于将某些请求长期重定向到本地文件或其他网络地址
a.Map Local
您可以将远程文件代理到本地文件进行调试。使用方法如下:
Tools→Map Local→勾选Enable Map Local→Add→填入需要映射本地文件的协议,主机地址、端口号
本地文件可以是自制的测试数据,也可以将接口返回的数据保存到本地进行修改。只需将接口返回的数据保存到本地:点击一个接口response,右击save response。
b.Map Remote:模拟域名劫持
实现方式:通过map remote需要申请的域名map到另一个域名
Map Remote功能原理和Map Local原则是一样的,都是替换请求,Map Local替换请求是本地文件,而Map Remote更换请求是在线请求。
用途:Tools→Map Remote→勾选Enable Map Remote→Add→填入需要替换请求的协议,主机地址、端口号
如图:splash该接口已映射entry接口,splash访问的接口是entry接口的数据。
4.网速模拟
charles可以模拟不同的网络,例如2G,3G,您还可以自定义设置的网络速度来模拟网络速度较慢的情况。
使用方法如下:
打开网络速度模拟,主菜单Proxy——Throttle Settings
配置:打开throttle settings在页面中,您可以选择一些内置的带宽设置,也可以通过设置上行和下行带宽和往返时延,自定义这些设置来模拟您需要的网络速度。
5.重复发送请求
repeat:
此功能对于测试学生以验证界面的健壮性特别有用。
前端的价值在于不需要刷新页面,只需要repeat请求,例如检查代理是否成功、修改请求并执行它。
用途:
选择请求后,右键单击Repeat 就是重复发送请求。
Advanced Repeat您可以自定义重复次数和重复间隔,并重复发送多个请求。
Iteration:迭代次数
Concurrency:并发数
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除