一、为什么使用charles

前几天因为需要通过抓包定位问题,打开了尘封已久的fiddler,结果打开软件后什么也干不了,别说手机抓包了,打开软件什么请求也抓不到。

很多时候都是如此,如果一个方案不行,肯定要有替代方案的。

于是,想到了charles来进行抓包,也就是换一个工具完成了想做的事。

二、下载地址

https://www.charlesproxy.com/

三、web抓包

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

1、抓取HTTPS协议

对于抓取https协议的包,和fiddler是一样的,要进行对应的配置设置。

2、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抓包

1、电脑端配置:

1,启动安装好的Charles抓包工具;

2,点击【Help】–>【local IP Address】获取下ip地址,也可以直接通过电脑自带的CMD命令来获取电脑IP【ipconfig】

3、点击【Proxy】–>【Proxy Settings】我们在设置下端口号,默认即可,具体视自己电脑环境设置

2、手机端设置:

1、打开手机的设置页面;

2、选择【无线局域网】;

3、IOS点击连接的WIFI后面的感叹号,安卓应该是长按连接的WIFI;(注:这里主要以IOS为例)

4、点击【配置代理】–>【手动】;

5、输入本机【IP地址(192.168.1.75)】以及端口号【9999】,这是我本机的,根据自己情况合理配置;

6、点击【存储】

接下里验证下手机请求,当我们看到Charles里能抓到这个连接,就说明配置没问题,看到unknown,这个不要紧,那是我们没有安装针对手机端的证书,下面继续我们手机端HTTPS证书安装

3、抓取手机HTTPS协议

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

4、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,在弹出框中,输入并发线程数以及压力次数点击进行测试

原文链接:

https://blog.csdn.net/u012486840/article/details/106593213

手把手教你如何使用Charles抓包的更多相关文章

  1. charles抓包工具分享

    今天,给大组内QA做了一次分享,主要面向移动端测试,介绍了我平时在测试工作中用到的功能,大家都积极响应,现场搭环境,现场操作,现场提问解答,最后大家都成功的利用起来了,感觉很有成就感.下面介绍我今天分 ...

  2. charles抓包工具的中文乱码解决方法

    charles是 MAC上最好用的抓包工具.charles 网上的参考文档已经很多,我就不再赘述啦.只是说说我在安装过程遇到的问题和解决方法,仅供参考. charles抓包的数据中的中文内容显示乱码, ...

  3. charles抓包

    charles使用教程指南 charles使用教程指南 前言 移动APP抓包 PC端抓包 查看模式 其他功能 问题汇总 1. 前言: Charles是一款抓包修改工具,相比起burp,charles具 ...

  4. charles抓包,打断点,连接手机抓包

    写给我自己: 如果是使用charles抓包.一定要tm的保证手机和电脑连的是一个网. charles抓本地包的操作 1.打开charles, 2.打开浏览器访问某网页,就可抓到对应的包 charles ...

  5. IOS charles抓包HTTP

    charles通常用来截取本地的网络封包,但也可以用它来截取其他设备上的网络请求.本篇以IOS为例,讲解如何进行相应的操作. 1.charles上的设置 要截取iphone上的网络请求,我们要先将ch ...

  6. Charles抓包工具使用

    Charles抓包工具使用和进行接口数据模拟 打开软件,选择Tools  >>  Map Local  >>  勾选enable  >>  add  >> ...

  7. charles抓包https设置

    写在前面 https抓包的实现 (一)首先,电脑得装个证书 (二)然后,移动设备上安装证书 (三)最后,Charles添加SSL Proxying 写在前面 开发时,面对各种接口数据,绝大多数时间都会 ...

  8. jmeter数据库,charles抓包,Python循环语句

    jmeter数据库,charles抓包,Python循环语句 一.Jemeter数据库 添加jar包数据库 jemeter=>浏览 添加JDBC Connection Configuration ...

  9. Charles 抓包工具(新猿旺学习总结)

    Charles 抓包工具安装机操作 1.Charles 抓包工具是代理服务器工具,可以拦截数据,进行更改,返回数据,以实现前端后台的请求和响应数据的测试2.Charles 菜单介绍 Charles抓包 ...

随机推荐

  1. 微信公众号代码高亮美化工具 All In One

    微信公众号代码高亮美化工具 All In One markdown 美化 mdnice 编辑器 https://www.mdnice.com/ https://github.com/mdnice ma ...

  2. how to convert Map to Object in js

    how to convert Map to Object in js Map to Object just using the ES6 ways Object.fromEntries const lo ...

  3. How to change Linux Terminal display username

    How to change Linux Terminal display username 如何更改 Linux Terminal 显示的用户名 (base) ➜ ~ whoami xgqfrms-m ...

  4. search cascade select & AntD

    search cascade select & AntD Antd https://ant.design/components/cascader-cn/#components-cascader ...

  5. Masterboxan INC:OPEC+达成产量协议 产油联盟内部分歧逐步加大

    本周,"OPEC+"在维也纳召开了今年首次部长级会议,并就未来两个月的石油生产计划达成协议.据了解,此次会议的协商过程可谓一波三折,虽然最后沙特意外宣布减产维持了OPEC+大体产量 ...

  6. Mysql之用户认证授权管理

    概述 Mysql的认证采用账号密码方式,其中账号由两个部分组成:Host和User:Host为允许登录的客户端Ip,User为当前登录的用户名. 授权没有采用典型的RBAC(基于角色的访问控制),而是 ...

  7. 微信小程序开发小技巧:

    小技巧:输入view.tabs_content就可以生成下面的代码. 输入p10,就可以得到: 输入jc:c得到:文字水平对齐 输入d:f得到: 输入ai:c得到: 输入bb得到: currentCo ...

  8. Apache支持Vue router使用 HTML5History 模式

    一.前言 前端Vue router 使用history模式,URL会比hash模式好看,这种模式要玩好,还需要后端配置支持,否则会报404错误. 注:1.前端代码省略. 2.此处后台使用Apache服 ...

  9. 2.5w字 + 36 张图爆肝操作系统面试题,太牛逼了!

    欢迎各位大佬访问我的 github ,跪求 star bestJavaer 大家好,我是 cxuan,我之前汇总了一下关于操作系统的面试题,最近又重新翻阅了一下发现不是很全,现在也到了面试季了,所以我 ...

  10. mysql 单表下的字段操作_查询

    查询的规律 查询语句限定条件越多,查询范围越小: 1.整个表 Select * From 库名.表名 2.整个表的某字段内 Select id From 库名.表名 3.整个表某字段的范围内 Sele ...