高颜值抓包工具Charles,实现Mac和IOS端抓取https请求

Hi,大家好。在进行测试的过程中,不可避免的会有程序报错,为了能更快修复掉Bug,我们作为测试人员需要给开发人员提供更准确的报错信息或者接口地址,这个时候就需要用到我们的抓包工具。

常见的抓包工具有Fiddler、Charles,在此之前介绍过Fiddler抓包:Fiddler抓包详解,今天我们介绍Mac端以及IOS端如何使用Charles抓取https。

一、Charles介绍

1、Charles简介

Charles中文名又叫青花瓷,是一款很实用,界面很友好,功能强大的抓包神器,因为它是基于 Java 开发的,所以跨平台,Mac、Linux、Windows下都是可以使用的,并且在Android和iOS设备上通用。

2、Charles原理

当程序连接Charles的代理访问互联网时,Charles可以监控这个程序发送和接收的所有数据。它允许一个开发者查看所有连接互联网的HTTP通信,这些包括request、response和HTTP headers,通过成为电脑或者移动设备的代理截取请求和请求结果达到分析抓包的目的。

3、Charles作用

  • 截取 Http 和 Https 网络封包。
  • 支持重发网络请求,方便后端调试。
  • 支持修改网络请求参数。
  • 支持网络请求的截获并动态修改。
  • 支持模拟慢速网络。

二、Charles下载及安装

1、Charles下载

Charles 是收费软件,可以免费试用 30 天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过 30 分钟,并且启动时将会有 10 秒种的延时。因此,该付费方案对广大用户还是相当友好的,即使你长期不付费,也能使用完整的软件功能。

下载地址:

官网:https://www.charlesproxy.com/

绿色版下载(网上有很多相关下载地址)

For Windows:https://www.7down.com/soft/133829.html

For Mac:http://www.xue51.com/mac/2527.html

注意:安装完后,替换”安装路径->Charles\lib”文件夹下的charles.jar文件成破解版jar文件,如果再次启动未弹出30天试用的提示,说明成功。

2、Charles安装

(1) Mac端安装

进入Charles官网,选择macOS下载:

下载后安装:

(2) PC端安装

进入Charles官网,选择windows下载:

下载后自行安装即可,此处不再详细介绍。

三、Charles界面视图介绍

1、Charles界面视图

Charles在Mac端的界面:

1)在顶部导航是基本设置、代理设置、工具、帮助等;

2)中间位置是请求的接口名字、请求内容、响应内容等;

3)通常常查看请求会使用"Structure"视图和"Sequence"视图;

  • Structure:按照接口结构来归档汇总;
  • Sequence:按照接口请求顺序来汇总;
    请求栏介绍:


请求数据介绍:

2、Charles界面说明

Charles在Mac端的快捷工具:

快捷工具介绍:

四、Charles抓取HTTPS

1、Mac端配置
(1) Charles代理设置

点击导航栏 Proxy -> Proxy Setting ,端口一般设置8888,按照下图设置即可。

系统偏好设置->网络->高级->代理,端口号默认是8888,与Proxy

-> Proxying Settings 中的HTTP代理端口号相同。

(2) Charles证书安装

在Charles的 Help选项,选择 SSL Proxyings选项->选择 Install Charles Root Certificate。

设置允许信任:

(3) 配置SSL代理

在Charles的 Proxy选项->选择SSL Proxy Settings->点击add添加需要监视的域名,支持 * 号通配符,端口一般都是443。

(4) 抓取Web端https请求

设置完电脑端配置,就可以正式开始抓取请求了。抓取数据分为三步。首先清空所有的数据,然后点击开始按钮,并分析抓取结果。

①要抓取哪个页面的数据,就先访问哪个界面 。比如抓取微信公众平台数据接口:

②当我们操作的时候,每加载一次数据,都会被我们的抓包工具Charles截获到,显示出来。左下角过滤框输入想抓的地址,其他所有的接口会被过滤掉,查看更方便:

2、IOS端配置

首先确保手机与电脑在同一局域网内,在手机无线中配置手动代理,输入安装Charles的电脑的网络地址,端口填8888,IOS端配置步骤总结如下:

(3) IOS端证书安装

网络代理设置好后,打开safari浏览器(推荐使用safari,其他浏览器可能存在兼容性问题),在地址栏输入chls.pro/ssl。配置描述文件,选择“允许“。

安装完成后,在iphone设置 ->通用 ->描述文件与设备管理,查看已安装的证书。如果所有步骤完成,结果仍然无法进行抓包,检查信任证书是否完全开启,ios10.3之后加入新的特性,需要在IOS设备中,通用->关于本机->证书信任设置,针对CA根证书开启完全信任。

 

作为一个软件测试的过来人,我想尽自己最大的努力,帮助每一个伙伴都能顺利找到工作。所以我整理了下面这份资源,现在免费分享给大家,有需要的小伙伴可以关注【公众号:开心螺蛳粉】自提!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。在这里插入图片描述

在这里插入图片描述

行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群:1150305204,里面有各种测试开发资料和技术可以一起交流哦。


http://www.niftyadmin.cn/n/5423472.html

相关文章

阿里巴巴国际获得商品详情 API 返回值说明

item_get-获得商品详情 [查看演示] alibaba.item_get 公共参数 名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,item_get,it…

Mybatis操作sql报错ibatis.binding.BindingException: Parameter ‘empId‘ not found.

你们好,我是金金金。 场景 在使用Mybatis操作sql语句过程当中,更新操作,报错信息如下:Caused by: org.apache.ibatis.binding.BindingException: Parameter ‘empId’ not found. Available parameters are [arg1, arg0, param1, …

升级ChatGPT4.0失败的解决方案

ChatGPT 4.0科普 ChatGPT 4.0是一款具有多项出众功能的新一代AI语言模型。以下是关于ChatGPT 4.0的一些关键特点和科普内容: 多模态:ChatGPT 4.0具备处理不同类型输入和输出的能力。这意味着它不仅可以接收文字信息,还能处理图片、视频等多…

植物病害识别:YOLO水稻病害识别/分类数据集(2000多张,2个类别,yolo标注)

YOLO水稻病害识别/分类数据集,包含疾病和正常2类,共2000多张图像,yolo标注完整,可直接训练。 适用于CV项目,毕设,科研,实验等 需要此数据集或其他任何数据集请私信

CentOS本地部署Tale博客并结合内网穿透实现公网访问本地网站

文章目录 前言1. Tale网站搭建1.1 检查本地环境1.2 部署Tale个人博客系统1.3 启动Tale服务1.4 访问博客地址 2. Linux安装Cpolar内网穿透3. 创建Tale博客公网地址4. 使用公网地址访问Tale 前言 今天给大家带来一款基于 Java 语言的轻量级博客开源项目——Tale,Tale…

APP自动化测试-Appium Inspector入门操作指南

上一篇博客APP自动化测试-入门示例-CSDN博客介绍了APP自动化测试的入门示例,下面详细介绍下Appium 实现的页面元素查看器工具:Appium Inspector的使用方法。 Appium Inspector简介 Appium Inspector 是 Appium 测试框架中的一个工具,用于可视化和调试移动应用程序的 UI 结…

深入理解MySQL中的MVCC(多版本并发控制)

在MySQL中,MVCC是一种用于提供并发控制的技术,它允许数据库系统在事务并发执行的情况下保持数据的一致性,同时提高了数据库的并发性能。MVCC背后的理念是允许每个事务可以看到一个一致性的快照,从而避免了读取操作被写入操作所阻塞…

Qt使用Q_DECLARE_INTERFACE Q_INTERFACES宏实现接口类使用qobject_cast进行类型转换

在写抽象类或者接口的时候&#xff0c;肯定是不能继承QObject的 但是又想使用qobject_cast进行类型转换&#xff0c;使用以下办法就能实现 #ifndef FACTORYINTERFACE_H__ #define FACTORYINTERFACE_H__ #include <QObject> class FactoryInterface{ public:FactoryInterf…