Charles学习(一)之macOS Charles 4.x版本的安装、激活、使用以及软件功能了解

前言

Charles是mac上一款比较好用的抓包工具,那么我们什么情况下需要用到抓包工具呢?比如我想查看一个接口请求的参数、返回值,还有移动设备上的http/https请求。

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

主要功能

  • 支持SSL代理。可以截取分析SSL的请求。

  •  支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。

  •  支持AJAX调试。可以自动将json或xml数据格式化,方便查看。

  •  支持AMF调试。可以将Flash Remoting 或 Flex Remoting信息格式化,方便查看。

  •  支持重发网络请求,方便后端调试。

  •  支持修改网络请求参数。

  •  支持网络请求的截获并动态修改。

  •  检查HTML,CSS和RSS内容是否符合W3C标准。

一、安装charles for mac

官网:https://www.charlesproxy.com/latest-release/download.do

 

下载好后,解压,将安装包拖到应用程序里,双击进行安装,打开Charles后会看到提示还有30天使用期限

没关系我们可以使用激活码!

二、激活charles

Charles激活码:

Registered Name: https://zhile.io

License Key: 48891cf209c6d32bf4

参考:https://blog.csdn.net/qq_25821067/article/details/79848589

激活码使用步骤:

选择菜单---> help---> register..... ---->输入账号和key提交破解成功就可以正常使用啦!

三、基本使用方法

1、抓浏览器网页http请求 —— 配置网页代理

其实浏览器的请求一般用浏览器的开发者工具就可以,当然charles也可以做到,使用方法呢,也很简单

将你链接的网络,配置网页代理,注意地址为你本机的ip地址,可以通过,ifconfig查看,

 

我的是这个样子,然后打开网页,charles就会弹出弹窗提示你,是否allow哈哈。当然allow,搞定,当当当,可以愉快的抓请求了

 

⚠️如果mac按照上述步骤无法抓包,那么我们还需要设置一个地方 ------》macOS Proxy,charles设置成系统代理,抓取http请求,但是现在只能抓取到http的请求,抓取不到https的请求(https都是🔐和unknow)

2、抓移动端数据包http请求 ———— 配置移动端代理

  • 手机和电脑连接同一网络

  • 获取电脑ip、端口:在电脑上打开charles,设置代理端口并勾选启用透明的http代理,安装证书,查看电脑的ip地址------->  ifconfig

  • 在手机上配置代理,手机的网络里,找到链接的wifi,添加代理,将手机的服务器和端口设置为电脑ip和电脑端口

  • 保存后,charles会弹出弹窗提示allow,同意,又可以愉快的抓包了

1)获取Mac IP

手机连接与Mac相同的无线网内,查看当前Mac IP地址

PS:也可直接option+wifi查看

2)设置PC端代理端口号

设置端口号如:8888(也可更改,手机设置代理输入一致即可)

 

安装证书

3)设置手机代理

iOS手机代理设置

设置-无线局域网,进入已连接WiFi----》配置代理----》手动(端口需与PC端设置的代理端口号一致,服务器为PC端Mac IP)

安卓手机代理设置

设置-WLAN,进入已连接WiFi手动设置(端口需与PC端设置的代理端口号一致,服务器为PC端Mac IP)

不同安卓手机弹出设置代理入口不同,如果进入网络详情页无代理项,可在WLAN列表长按wifi名称弹出代理设置如下:

当手机进行数据请求时,Charles 将弹出是否允许连接此代理(选择允许 allow),之后便可进行http抓包

此时我们在电脑上更改代码可以直接在手机上查看更改后的效果,不需要反复上预发去查看

3、抓https

安卓:把需要抓取的接口配置一下,或者抓取全部接口

IOS:需要安装Charles SSl证书 

安卓手机就很方便了,直接就可以不用配置什么,但是要把要抓的接口配置一下,比如,我想抓这个接口,我就要配置成可抓取的,具体如图

 

IOS手机(牛X的苹果惹不起)

Charles抓HTTPS包

ios需要安装证书(安卓不用):手机和电脑先连接同一wifi,配置好移动端代理,进入Charles-》Help-》SSL Proxying-》Install Charles Root Certificate ,会打开证书,安装进去 

手机---设置----关于手机-----证书信任设置----勾上刚才安装的

 

修改charles的proxy settings:选择“Proxy--Proxy Settings”,弹出proxy设置选项卡,勾选“Enabling transparent HTTP proxying”;

再选择“Proxy—SSL Proxy Settings”,勾选“Enable SSL Proxying”,在include中添加一个域名

然后想抓那个接口,重复上边操作的就可以啦哈哈,也可以配置我想抓取全部的接口,如图

 

注意,在实际使用中发现存在按照步骤配置后还是无法抓取htts请求,请求乱码的问题,这是因为我们先配置了* 443,可以先尝试配置其他域名,在添加* 443,可以解决这个问题

 

1、PC端SSL设置

选中Proxy→SSL Proxying Setting

 

开启SSL代理,并添加信任地址

add添加方法

四、简单功能了解

视图 Structure 和 Sequence

 

设置为列表方法 

设置->Preferences->Viewers

 

 

清除和暂停

清除是清除所有已经抓到的全部请求

 

暂停是停止抓取数据,保留之前抓取的数据

过滤 Focus

设置代理后,抓取到手机的各种请求,很多是不需要的,因此需要过滤下请求

选择需要的请求右键选择Focus

或者抓包列表底部filter输入需要查看的请求关键字

重复请求 Repeat/Advanced Repeat

tools→ Repeat/ Advanced Repeat (可做简单的并发压测)

repeat 单次重复请求

 

 Advanced repeat 多次重复请求

如某个接口共需要请求20次,单次并发请求10个,设置如下

断言 Breakpoints

测试或者开发中有些场景,可能需要手动造很多数据才能发现问题,那么mock替换JSON返回值这个功能就非常实用了,右键请求url,选择Breakpoints,则默认添加该请求入接口断言列表

Proxy→Breakpoints Settings 查看接口断言列表

或者Proxy→Breakpoints Settings->add 添加断言

添加需要断言的请求url如下:

设置断言成功后,重新发起请求,状态变为可编辑状态,进入请求参数or返回参数的修改

修改请求参数↓,设置成功后点击底部“Execute”进入下一步修改返回参数

 

修改返回参数如下,如title“年糕妈妈商城”需要修改成改成“AAAA”,直接在JSON Text中编辑

修改后如下:

最后再次点击“Execute”,如果是手机端发起的请求,mock修改后前端页面就会展示修改后的数据啦!是不是很方便!如果想界面测列表几十条数据的功能点,可以省去数据库或者后台造数据的时间,直接txt造几十条json数据就可以啦!(PS:修改参数手速要快哦~因为一般情况下,为了用户体验,大部分页面都会兼容一定时间内接口无响应,显示默认友好提示的空页面,所以替换的json可以事先在json编辑器中或者txt中编辑好,之后直接复制粘贴就可以啦~)

另外使用断点可以模拟接口在请求过程中的各种状态,如请求失败、请求成功但返回数据不对

请求失败:设置好断言后,在请求接口的时候会跳到这个页面,此时前端发起的该接口请求已经被拦截,点击abort会跳过这个请求,请求失败

请求成功但数据不对:设置好断言后,在请求接口的时候会跳到这个页面,此时前端发起的该接口请求已经被拦截,点击execute,此时可以修改返回json数据,修改好后再次点击execute,请求成功但数据不对

重定向 Map Remote

如果在测试过程中,需要切换host不同的环境来测试,那么替换host功能就可以实现,不需要手动再重新打包更改域名,打开Charles→Tools→Map Remote→点击ADD

如下如所示方式添加即可

 Map Local

tools->map local,映射本地json文件,可直接更改本地json文件来mock数据调试查看,功能类似断言

⚠️map Local和断言不能同时存在

网速模拟  Throttling

Proxy-Throttling勾选Enable Throttling启用网速模拟,可选择内置的一些带宽设置或自定义设置,保存后可以点击主界面的按钮开启/禁用慢网速功能

配置含义:

Bandwidth(带宽)、Utilistation(利用百分比)、Round-trip(往返延迟)、MTU(字节)

以上都是Charles常用的基础功能, 其实还有很多其他更有趣功能,可自行摸索~Charles可以说是测试之路上排查问题找问题非常实用的工具啦!测试必备哦~

参考:macOS Charles 4.x版本的安装及使用(含破解激活)

            MAC下最好用的抓包工具--charles简单操作教程

            Charles 从入门到精通   

   Charles使用详解

     最明白的charles教程 (四)

 

 

 

posted @ 2019-05-14 15:55  坤嬷嬷  阅读(2635)  评论(0编辑  收藏  举报