前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Charles基本使用

Charles基本使用

作者头像
测试加
发布于 2022-03-24 07:49:37
发布于 2022-03-24 07:49:37
9360
举报

简介

Charles是一个HTTP代理/ HTTP监视器/反向代理,使开发人员能够查看其机器和Internet之间的所有HTTP和SSL / HTTPS流量. 这包括请求,响应和HTTP标头(包含cookie和缓存信息).

安装

下载地址: https://www.charlesproxy.com/download/

mac下载的dmg格式,正常安装即可.

Charles安装后默认是试用版本,有效期30天,需要注册激活码.

工具视图

  • 在顶部导航是基本设置、代理设置、工具、帮助等.
  • 中间位置是请求的接口名字、请求内容、响应内容等.
  • 通常查看请求会使用"Structure"视图和"Sequence"视图.
  • Structure是按照接口结构来归档汇总.
  • Sequence是按照接口请求顺序来汇总.

安装https证书

  • 现在大多数接口都是https协议,如果不安装https证书,则不能抓包.
  • 使用手机浏览器输入 http://charlesproxy.com/getssl 或者 chls.pro/ssl
  • 需要在手机上设置密码才能安装
  • Android个别rom上,通过手机浏览器下载后不让安装,需要通过电脑先下载https证书导入到设备上安装
  • adb push charles-proxy-ssl-proxying-certificate.pem /sdcard
  • 小米手机:设置---更多设置---系统安全---从存储设备安装--SDCard安装
  • iOS大于等于10系统上,下载安装https后,证书默认是未开启的.
  • 手动开启路径:设置->通用->关于本地->证书信任设置->勾选证书
  • charles设置443端口,proxy->ssl proxy setting

基本使用

查看请求

使用本地数据(Map Local)

  • 这个功能主要是拦截服务端数据,做本地修改.
  • 复制响应结果中json到存储到本地文件中
  • 在本地文件中修改内容
  • 点击接口,选择Map Local
  • Map To选择刚才修改过的json文件
  • 不需要Map Local的时候,在Tools-Map Local中把这个接口关闭.
  • Map Local最合适做客户端接口容错测试,本地json按照一定的修复规则,测试客户端不应该崩溃或者测试文案超长等情况

接口重定向(Map Rmote)

  • 这个功能主要是把接口代理到其他环境上
  • 在Map Rmote中写上要代理接口

实例

  • 把详情页接口线上环境重定向到测试环境
  • 其中body中有个参数是bid=3152,但是测试环境没有这个bid,所以接口查询不到数据

重写(Rewrite)

  • 重写功能可以删除、修改、增加,head、body、url、response等参数
  • 位置在Tools->Rewrite下,需要增加一个接口地址,增加一个重写规则
  • 接着上实例,把bid=3152替换成1937,此时完成了一次body数据重写

断点

  • 断点功能主要修改request和response内容,这个时候接口是在Charles代理层被拦截,还没有实际到手机设备上.
  • 选择接口-勾选BreakPoints-再次请求接口
  • 修改request中body参数-点击Execute-发送请求
  • 修改response中status code参数-点击Execute
  • 这个功能比较适合模拟接口500、超时,客户端接收response是有超时时间的,如果修改数据的时间太久,客户端会展示错误页面,那么做断点调试就没有意义了.

模拟发送请求

  • 选择接口右键选择Compose
  • 修改数据,点击Execute按钮发送请求

重发请求 (Repeat)

  • 接口右键选择-Repeat,表示重新发送一次请求
  • 接口右键选择-Repeat Advanced,填写发送的次数,循环发送多次请求
  • Iterations表示次数
  • Concurrency表示并发线程数

模式弱网

  • Proxy-Throttle Settings
  • 勾选Enable Throttling
  • Only for selected表示仅选择的域名做弱网
  • Throttle preset表示要模拟的网速,可以改上行和下行带宽,还有丢包率

Android 7.0 https抓包实现

在实际工作中可能会遇到明明安装了https证书,但是抓https证书的包还是提示unkown.

具体原因是Android在高版本的sdk中安全信任机制,不会信任代理工具的证书,只会信任系统根证书.

具体解决办法,需要开发同学配合,修改代码中配置文件或者在网络库修改代码.

Android官方文档:https://developer.android.com/training/articles/security-config.html

结语

Charles功能很强大,熟悉掌握常用技巧,在工作中很方便mock数据、制造异常场景.

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-05-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试加 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档