使用charles抓包

一 charles简介

charles 是一个http proxy,是一个中间人,位于客户端Cilent和服务器Server中间。

Client发送给Server的请求会经过charles再转发给Server,同样Server的响应也会先到达charles再转发给Client。

charles 能做什么?

1. 清晰明了地展示请求和响应的内容和格式,如Header,body,可以更清楚地看到请求的频率、包的大小、响应时间、报文的内容和格式
2. 设置断点,rewrite, map修改Request或Response
  • 即所谓的mock,是在测试过程中对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。那么一般情况下,什么时候会用到mock数据测试呢。

    测试接口的时候,模拟接口返回的不同信息,为空,或者不同code

    举个例子:比如有个订单状态接口 orderstate,有已支付、待支付、已关闭等多个状态返回,如果是在没有mock的情况下,我们需要实际造多个状态的订单数据,甚至去修改数据库订单字段状态来看前端订单显示情况。

    但是利用Charles的Mock方法,可以打断点,截取接口返回的response的json数据,进行一些模拟:比如

    订单接口返回不同状态时对应前端的展示

    订单接口返回状态为空时对应前端的展示

    订单数据出现异常时对应前端的展示

    订单接口请求超时对应前端的展示
  • 测试页面展示以及兼容的时候,想知道某一个字段内容长或者短,或者是空白的时候怎么展示,或者一个图片尺寸大了或者小了怎么展示

    拿刚才看到的name“产品协议”文本举例,可以通过断点及模拟返回的数据,进行一些模拟测试

    文本内容为空时对应前端的展示;

    文本内容包含特殊字符时对应前端的展示;

    文本内容较长超出一行时对应前端的展示。
  • 定位前后端问题的时候,更直观

    比如当前端点击跳转没有反映时,可以将链接地址拷贝到浏览器中看看是否打开,看是地址本身的问题,还是前端无法调起手机浏览器的问题
3. 设置流量控制网络延迟,模拟弱网

模拟不同网络环境,如设置56Kbps,3G,4G等带宽

二 下载安装

1.下载

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

现在支持windows,linux , mac,并且需要破解,否则每半小时就要退出。

2.破解

参考: https://www.zzzmode.com/mytools/charles/

替换完重启charles

3.安装运行

linux版是免安装的,下载一个tar.gz,解压后,在bin下运行charles即可打开

三 设置charles代理

1.Proxy->Proxy setting

设置代理的端口,一定要用空闲的端口哦,一般用默认的8888

2.Proxy→SSL Proxy Setting,

只要以下地址才会经过代理,一定要添加2条,否则会看到很多CONNECT类型的请求,都是乱码。

四 手机抓包设置

1.手机连接wifi

跟charles所在机器同一局域网。

修改手机wifi网络--高级选项--代理:手动--服务器主机名:你的机器ip—服务器端口:(默认)8888,第四步的设置可以修改。

2.charles确认连接

手机修改网络成功后,charles会弹出一个弹框,一定要Allow

3.https协议抓包:安装SSL证书到手机设备

点击 Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device 查看操作指引:



打开手机浏览器,输入chls.pro/ssl 下载证书,然后不同手机可能安装证书方式不同。我用华为荣耀9i举例。









4.用charles看捕获的请求

五 断点设置

The Execute button applies any changes that you have made and lets the request or response proceed. The Abort button blocks the request or response and sends an error message to the client.

The Cancel button discards any changes that you have made and lets the request or response proceed as if it wasn't intercepted.

1. 设置断点

选择一个请求,右键--breakpoint,表示添加一个断点,按快捷键ctrl+shift+k,或menu—proxy--breakpoint setting,可以看到添加的所有断点,可以进行添加,删除,修改。

因为拦截时是完全匹配的,所以如果想要拦截一类请求,可以用通配符请求query:

2. 修改请求/响应

客户端触发一个跟设置了breakpoint一样的请求,会弹出一个breakpoint 标签页:

六 远程/本地映射 mapping

1.本地映射 map local

把请求重定向到本地文件。调试时,如在本地修改了服务器的代码,,cs文件等,还没更新到服务器上,想看下效果,可以用本地映射。增加一整个目录的映射或某个特定文件的映射。注意服务器的脚本文件dynamic script不会被执行。要用远程映射才生效。

2.远程映射 map remote

把请求重定向到另外一个网络请求。跟本地映射用法类似。但映射对端必须是一个网络请求。

介绍一下一个在线工具网站,帮助开发者模拟网络请求返回的数据信息。网址是:http://www.mocky.io/

七 throttle的使用

由于我无法截下拉框的图,所以盗用网上的图,版本是4.1.2,跟4.2.8这里的设置没有区别。

注意,如果你本机网速很好,可以模拟更快速度,但是如果本机网速不好,只能模拟更慢网速。

模拟手机上2G/3G/4G的速度;

这个对应工具栏的的小乌龟图标,一般选择多少网速就可以了,下面默认即可;

注意如果你本身网速快;是限速;如果你网速很慢,你选个100Mbps的,其实也到不了的;

charles初级使用的更多相关文章

  1. 测试工具之Charles视频教程(更新中。。。)

    应群里小伙伴学习需求,录制新版 Charles V4 系列教程,后续内容抽空更新,测试工具系列带你上王者...(ノ°ο°)ノ前方高能预警 链接:http://pan.baidu.com/s/1c16P ...

  2. 使用Charles Proxy提升iOS开发效率

    以前做前端开发的时候,使用最多的工具就是 Fiddler ,用来定位问题.模拟特定场景非常方便,极大提升了开发效率.而转做 iOS 开发以后,一大头疼的问题是 Fiddler 没有 Mac 版,幸亏找 ...

  3. windows charles response 乱码解决办法

    使用windows 版本的charles来做代理,发现服务端返回的response会出现中文乱码的情况, 查看软件设置,遗憾的是并没有关于编码的选项. 好在charles windows版本安装目录下 ...

  4. charles工具抓包教程(http跟https)

    1.下载charles 可以去charles官网下载,下载地址:http://www.charlesproxy.com/download/    根据自己的操作系统下载对应的版本,然后进行安装,然后打 ...

  5. 马哥linux运维初级+中级+高级 视频教程 教学视频 全套下载(近50G)

    马哥linux运维初级+中级+高级 视频教程 教学视频 全套下载(近50G)目录详情:18_02_ssl协议.openssl及创建私有CA18_03_OpenSSH服务及其相关应用09_01_磁盘及文 ...

  6. Python 正则表达式入门(初级篇)

    Python 正则表达式入门(初级篇) 本文主要为没有使用正则表达式经验的新手入门所写. 转载请写明出处 引子 首先说 正则表达式是什么? 正则表达式,又称正规表示式.正规表示法.正规表达式.规则表达 ...

  7. mac 抓包工具charles v3.9.3 安装破解步骤

    一.下载 先到它的官网http://www.charlesproxy.com/可下载到最新版本,这个下载有点慢,我已经将它放到网盘中了:http://pan.baidu.com/s/1skTXRIl ...

  8. python 高级之面向对象初级

    python 高级之面向对象初级 本节内容 类的创建 类的构造方法 面向对象之封装 面向对象之继承 面向对象之多态 面向对象之成员 property 1.类的创建 面向对象:对函数进行分类和封装,让开 ...

  9. 谈iOS抓包:Mac下好用的HTTP/HTTPS抓包工具Charles

    在Mac下做开发,用Fiddler抓包由于离不开Windows比较痛苦,还好有Charles,到官网http://www.charlesproxy.com/可下载到最新版本(若不支持rMBP可拖到Re ...

  10. N皇后问题—初级回溯

    N皇后问题,最基础的回溯问题之一,题意简单N*N的正方形格子上放置N个皇后,任意两个皇后不能出现在同一条直线或者斜线上,求不同N对应的解. 提要:N>13时,数量庞大,初级回溯只能保证在N< ...

随机推荐

  1. 关于python实现html转word(docx)

    安装 linux平台 sudo apt install pandoc pip3 install pypandoc 示例代码 import pypandoc output = pypandoc.conv ...

  2. 漫谈计算机网络:网络层 ------ 重点:IP协议与互联网路由选择协议

    面试答不上?计网很枯燥? 听说你学习 计网 每次记了都会忘? 不妨抽时间和我一起多学学它 深入浅出,用你的空闲时间来探索计算机网络的硬核知识! 博主的上篇连载文章<初识图像处理技术> 图像 ...

  3. 【每日一题】【奇偶分别中心扩展/动态规划】2022年2月5日-NC最长回文子串的长度

    描述对于长度为n的一个字符串A(仅包含数字,大小写英文字母),请设计一个高效算法,计算其中最长回文子串的长度. 方法1:奇数偶数分别从中心扩展 import java.util.*; public c ...

  4. Jmeter 之吞吐量控制器

    作用: 吞吐量控制器可用来模拟混合场景的压测业务,即一部分用户执行场景A,一部分用户执行场景B 字段说明: Total Excutions:执行请求总数 Percent Excutions:执行线程数 ...

  5. element-ui中table表格表头和表格内容都水平居中,以及斑马纹背景颜色修改

    <el-table :data="detalData" stripe //斑马纹 border :header-cell-style="{textAlign: 'c ...

  6. 9、IDEA回退Git版本

    转载自 在工作中有时候会要求我们将以前提交的代码新开一个分支,而把之前提交的分支回退到以前某个版本. 1.通过IDEA查看Git历史记录,复制当前版本号. 2.记录当前版本号后,再复制你要回退的版本号 ...

  7. Elasticsearch查询及聚合类DSL语句宝典

    作者:京东科技 纪海雨 前言 随着使用es场景的增多,工作当中避免不了去使用es进行数据的存储,在数据存储到es当中以后就需要使用DSL语句进行数据的查询.聚合等操作,DSL对SE的意义就像SQL对M ...

  8. C++进阶(智能指针)

    智能指针原理 C++程序设计中使用堆内存是非常频繁的操作,堆内存的申请和释放都由程序员自己管理.程序员自己管理堆内存可以提高了程序的效率,但是整体来说堆内存的管理是麻烦的,C++11中引入了智能指针的 ...

  9. [编程基础] Python中的绝对导入与相对导入

    如果您从事的Python项目有多个文件,那么您以前可能不得不使用import语句.即使对于拥有多个项目的Python重度使用者(比如我),import也可能会造成混淆!您可能正在阅读本文,因为您想对P ...

  10. Web初级——数组对象常用api

    js数组常用api 连接函数:join("连接符") var array = [1,2,3,4,5] console.log(array.join("+")) ...