01、charles简介

charles是一款非常优秀的抓包工具,全平台支持,在mac,windows,linux上都可以使用,既可以抓取web端的包,也可以抓app端的包。

charles主要的功能包括如下几点:

  • 截取 Http 和 Https 网络封包。

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

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

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

  • 支持模拟慢速网络

代理服务器的工作原理如下所示:

客户端发起请求,请求通过charles转发给服务器,服务器返回响应,响应通过charles转发给客户端。

charles所起的作用就相当于信使,把信息从A传递给B,并且把回信从B传递给A,正因为他这个信使的工作,所以他对信息的内容了如指掌(不管是原信还是回信),正因为如此,charles也就可以篡改信息的内容,即篡改请求和响应。

02、安装

mac电脑参考这个连接进行安装和破解:https://www.jianshu.com/p/82f63277d50f

windows电脑下载网盘里的软件进行安装和破解

链接:https://pan.baidu.com/s/1AkDV5VAbVWw_uWTBW3biyw

提取码:emj4

03、基本设置

  • 开启代理(默认就是开启的)

  • https设置及安装证书

0、先设置代理

1、安装证书

2、设置ssl代理

单击菜单项“代理”->“SSL 代理设置”

单击【添加】,在弹出的“编辑位置”窗口中,主机、端口文本框均输入星号,如下截图所示,单击“编辑位置”窗口中的【确定】

然后在“SSL 代理设置”窗口中,单击【确定】

3、chrome浏览器的单独设置

对于chrome浏览器上的https抓包需要按照如下操作进行

先保存charles证书,保存时选择二进制

打开chrome浏览器的设置界面,搜索证书,进入证书管理界面

04、手机端抓包配置

  • 手机连接代理设置

首先确保手机和charles所在的电脑在同一个局域网下,然后设置手机的代码连接,长按手机的wifi,打开修改网络

其中的ip是charles所在电脑的ip,端口是charles代理设置那里看到的端口号8888

第一次连接代理时,charles会弹出确认框,记得点允许

  • 手机浏览器输入chls.pro/ssl会提示下载证书,下载并安装即可

  • ios手机还需要在设置 - 通用 - 关于本机 - 证书信任设置里信任证书

05、功能图标

从左到右依次是

  • 清除当前会话

  • 停止记录

  • 开始限流/停止限流

  • 开始断点/停止断点

  • 根据所写内容撰写新请求

  • 重发选定请求

  • 工具

  • 设置

06、抓包视图

charles抓包的请求信息可以以两种方式展示,一种是结构化展示,一种是序列化展示

1、结构

结构化展示方式,会以某个网址作为管理根本,然后按照各个请求的路径层级进行分类展示,如上图所示,我们最终要的纯接口

请求实际上是api下的login2

2、序列

序列是按照抓到的请求逐个排列的,一行就是一个,每一列都代表着不同的含义

3、请求信息查看

在请求发起信息中的一些标签含义:

  • 标头:请求header信息

  • 文本:请求参数的文本形式

  • 十六进制:请求参数的十六进制形式

  • 表单:请求参数的表单形式

  • 原始数据:请求发起的所有信息,在这里可以看到请求发起的所有信息

在请求响应信息中的一些标签含义:

  • 标头:服务器响应的header信息

  • 文本:响应内容的文本形式

  • 十六进制:响应内容的十六进制形式

  • JavaScript:响应内容的js形式

  • JSON:响应内容的JSON格式形式

  • JSON文本:响应内容的JSON格式文本形式

  • 原始数据:服务器响应信息的所有内容都在这里

07、请求过滤

通常情况下我们可能会抓包非常多的请求,那么为了方便我们查找自己的目标请求,可以针对性的设置一些过滤条件

  • 快捷过滤方式

  • 多条件过滤

上方工具栏的代理—记录设置—包括—添加

08、接口请求调试

1、选中要调试的请求,右键–>撰写

2、修改参数并执行

这种方式也可以理解为篡改请求报文,再次发起请求的方式

09、断点

断点的意思就是请求发起或者响应时会被暂停,使用者可以根据自己的需求编辑篡改请求报文或者响应报文,以达到不可告人的目的

  • 断点设置

在上方菜单栏代理–>断点设置,点开后添加,添加后当捕获的请求命中设置的各项信息,就会被暂停

  • 执行请求,篡改报文

要么在页面上重新访问,要么再charles里右键请求点击重发,都可以进入编辑报文的界面

10、接口请求映射

在断点中篡改报文并不是很方便,每次都得改,那么为了一劳永逸的修改某个接口的响应信息,可以通过接口映射的方式,将指定接口的响应信息指向我期望的本地文件或者远程接口

  • 本地映射

本地映射的意思就是将某个接口的响应内容指向本地文件,因此我们先创建一个本地文件,针对码同学全栈接口项目的

登录接口做本地映射,创建一个txt文件,写入如下内容,这内容里改了响应信息中的code是500:

{"code":"500","message":"success","data":"04cec0658e9a4e55906bdd37416e2841"}

设置本地映射:在上方菜单栏工具–>本地映射

然后重发(回放)目标接口,查看响应

  • 远程映射

先来看一个场景

“app在线上出现了问题,你想测下在测试环境是否有问题,其实就是你想用线上的包发请求时不要发线上,发到测试环境。或者 有个app需要测试,测试环境已经测试完成,需要到灰度环境测试。但是,现在没有灰度环境对应的app,那怎么办”

有两种方法能解决:

①一种是让开发给你重新打包,把里面请求线上的地址换成测试的地址

②一种是在charles里做域名映射 如果开发忙没有时间给你打包,那我们就可以直接在charles里域名映射

设置远程映射:在上方菜单栏工具–>远程映射

访问原域名都会去访问目标域名了

11、重写

重写功能适合对某一类网络请求进行一些正则替换,以达到修改结果的目的。

可以重写接口所有元素的内容:header、host、url、path、query param、response status、body.

比如我要模拟响应状态码的异常情况:在上方菜单栏工具–>重写

1、添加一个规则

2、添加匹配请求

3、添加重写规则

4、确定以后,在页面访问,登录接口响应状态码会被改成500

5、除了针对响应状态码,其他接口的信息也可以被重写,可以在重写规则那里进行选择

最后: 可以关注公众号:伤心的辣条 ! 进去有许多资料共享!资料都是面试时面试官必问的知识点,也包括了很多测试行业常见知识,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!推荐软件测试交流学习群:914172719 里面会分享一些资深架构师录制的视频录像


好文推荐

转行面试,跳槽面试,软件测试人员都必须知道的这几种面试技巧!

面试经:一线城市搬砖!又面软件测试岗,5000就知足了…

面试官:工作三年,还来面初级测试?恐怕你的软件测试工程师的头衔要加双引号…

什么样的人适合从事软件测试工作?

那个准点下班的人,比我先升职了…

测试岗反复跳槽,跳着跳着就跳没了…

学完这篇Charles抓包教程,我直接把fiddler卸载了相关推荐

  1. Charles抓包教程

    0 概述 文档内容:主要描述使用Charles工具抓取移动端APP与服务器传输数据的操作教程. 文档用图:支持开发者学习Charles抓包,辅助SDK接入问题排查和反馈. 1 关键定义 Charles ...

  2. Windows10下Charles抓包教程

    抓包步骤:从下载安装.客户端证书安装.把下载的证书导入到浏览器里. 1.下载安装 2.安装好以后打开,配置Charles证书:选择help--SSL Proxying--install Charles ...

  3. 【工具篇】抓包中的王牌工具—Fiddler (1-环境搭建)

    导言 在现在高速发展的互联网时代,抓包工具被广泛应用在软件开发的项目中,Fiddler可谓是当下主流的抓包工具之一.测试人员用它来抓包.回放测试记录,构造发包测试用例,开发人员用来定位问题,其强大的功 ...

  4. 【抓包教程】- 微信视频号下载教程,使用charles抓包工具,如何设置charles抓包工具,以及具体在某一个视频上如何抓包

    Reference Charles 功能介绍和使用教程 - 掘金 学完这篇Charles抓包教程,我直接把fiddler卸载了 - 知乎 一.下载微信视频号里的视频方法小结 1.1 抓包 例如char ...

  5. Mac下Charles的抓包教程

    Mac电脑上 charles 抓包教程 1.Charles简介 2.Charles安装 3.将Charles设置成系统代理 4.Charles功能介绍 5.过滤网络请求 6. iphone手机抓包-- ...

  6. 最简单的Charles抓包https教程

    这里介绍charles抓包教程,亲测可行 一.背景 对于我司app都是使用的https网络请求,但开发中需要快速定位问题,因而对https请求抓包有非常高的依赖性.如果不对https做别的处理,抓包就 ...

  7. (亲测可行)charles抓包夜神模拟器保姆级教程

    前言 作为it人员,无论是为了测试,还是为了一些研究,抓包必不可免.夜神模拟器配合charles无疑是不错的选择. 下面教程是本人通过网上大量资料进行实践,亲自实验后,完全没问题整理出来的最新教程,基 ...

  8. charles抓包ios抓拍教程

    charles抓包ios抓拍教程_百度搜索 https://www.jianshu.com/p/724ef9d3efb6 https://www.cnblogs.com/junhuawang/p/72 ...

  9. 全网最详细charles抓包工具详细教程,实战教程(细致)

    目录:导读 一.前言 二.在PC端抓https包 三.在PC端抓https包 四.在移动端抓http包 五.在移动端抓https包 一.前言 charles相当于一个插在服务器和客户端之间的" ...

最新文章

  1. 5500以太网模块pcb布局_以太网PCB布局布线
  2. [云炬创业基础笔记]第五章创业机会评估测试13
  3. 关于tomcat Post 数据参数的问题
  4. spring.profiles.active配置了没生效_微服务架构之「 配置中心 」
  5. 【Flink】Flink flink-runtime.version.properties generated correctly. You MUST run mvn generate-source
  6. c++课设实验室管理系统_庆安知名实验室设备管理系统平均价格
  7. Lock锁的简单使用
  8. mysql xtrabackup安装与原理
  9. H-Magic Line_2019 牛客暑期多校训练营(第三场)
  10. 第3章 控制程序流程(1)
  11. phpcms文章点击量统计方法
  12. win8计算机背景黑色,Win8电脑桌面背景突然变黑怎么办?
  13. MapReduce:出租车数据案例
  14. centos7 wget无法解析主机域名的解决办法
  15. 路由器分类2【按功能级别分】
  16. 计算模拟I2C的传输速率
  17. js 按照中文拼音来排序
  18. VR和AR可以怎样干掉智能手机
  19. php中table是什么意思,table标签是什么意思
  20. 修改win7的登录界面背景与关机背景

热门文章

  1. socket编程(一)
  2. matlab中ndims函数,matlab中的size(),length(),ndims()函数的用法
  3. ​asp家教交流平台系统设计网站作品
  4. php注册变量函数,PHP变量函数
  5. groupby java_Java8的groupBy实现集合的分组
  6. Python+OpenCV:Optical Flow(光流)
  7. Python+OpenCV:直方图(Histograms)
  8. totolink服务器未响应,WiFi效果差的罪魁祸首竟然是这个 TOTOLINK为你深度讲解
  9. 【入门篇】Nginx + FastCGI 程序(C/C++) 搭建高性能web service的Demo及部署发布
  10. 使用for循环遍历文件、使用while循环遍历文件