51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 1789|回复: 1

移动应用抓包调试利器Charles

[复制链接]
  • TA的每日心情
    无聊
    昨天 09:12
  • 签到天数: 918 天

    连续签到: 3 天

    [LV.10]测试总司令

    发表于 2020-9-14 09:52:45 | 显示全部楼层 |阅读模式
    一、Charles是什么?
    Charles是在 Mac或Windows下常用的http协议网络包截取工具,是一款屌的不行的抓包工具,在平常的测试与调式过程中,掌握此工具就基本可以不用其他抓包工具了。

    二、为什么是Charles?
    为什么要用抓包工具?大家在平常移动App调试测试中是如何进行抓包的?
    在我们做开发与测试的过程中,总免不了碰到网络问题,特别是重后台的产品,这个时候我们往往的处理方法是抓个网络包,看看到底应用发送和接收了些什么鬼.....这个时候Charles上场了;Charles是一款屌的不行的截包工具,好用到没朋友。
    那么Charles屌在哪里呢???主要特点如下:
    1.支持SSL代理,可以截取分析SSL的请求

    2.支持流量控制。可以模拟慢速网络(2G,3G),以及等待时间较长的请求。
    3.支持AJAX调试。可以自动把JSON或者XML数据格式化,方便查看。
    4.支持重发网络请求,方便后端调试。
    5.支持修改网络请求参数。
    6.支持网络请求的截取和动态修改。
    7.最重要的一个优点就是有不同平台的版本(Mac,Windows、Linux)即学一个打遍天下。
    三、Charles基本工作原理
    charles是通过网络代理来进行抓包的,下面先了解一下http代理的原理:
    1.普通http请求过程


    2.加入了Charles的HTTP代理的请求与响应过程

    四、Charles的下载与安装过程
    1.官网下载地址:
    1. http://www.charlesproxy.com/download/
    复制代码
    2.Mac下安装:
    是一个安装包是一个dmg后缀的文件。打开后将Charles拖到Application目录下即完成安装。
    在Mac下你打开Launchpad即可看到一个像花瓶一样的Charles程序图标
    3.Windows下安装:
    下载后直接双击根据安装向导一步一步安装即可
    五、Http抓包操作步骤
    Step 1:开启Charleshttp代理;
    Step 2:手机端Wifi添加代理;
    Step 3:开启Charles录制功能;
    Step 4:启动应用开始抓包;
    Step 5:分析抓取的数据包。
    Step 1: 开启Charleshttp代理   a.设置Charles代理

    第一次启动默认会开启本机的系统代理,因为我们只是监控移动端的所以将此选去除(去掉选项前面的小钩)
    a.激活http代理功能


    Step 2: 手机端Wifi添加代理
    a. Android手机:1.在手机端打开你的Wifi设置然后长按已经连接的Wifi在弹出来的菜单中选择【修改网络】

    2.沟上[显示高级]选项--【手动】
    3.输入代理服务器的IP与端口,IP即安装了Charles的电脑IP地址,端口就是前面一步设置Charles时所设置的端口。


    注意:手机所连接Wifi要与电脑在同一个LAN(局域网)。
    b. iOS手机:

    1.点击你所连接的wifi
    2.输入代理服务器的IP与端口,
    IP即安装了Charles的电脑IP地址,端口就是前面一步设置Charles时所设置的端口。

    Step 3:开启Charles录制功能

    1.当手机连接上代理后Charles会弹出相应的提示框,点击Allow即可。2.点击工具栏上的开始录制按钮,即启动了Charles的抓包功能了。

    Step 4:启动应用开始抓包

    1.在手机上操作相应的App进行抓包。2.在Charles的主界面上就可看到相应的请求内容。

    Step 5:分析抓取的数据包

    1.Charles 主要提供两种查看封包的视图,分别名为 “Structure”和 “Sequence”:
        a.Structure 视图将网络请求按访问的域名分类;
        b.Sequence 视图将网络请求按访问的时间排序。
    2.大家可以根据具体的需要在这两种视图之前来回切换。请求多了有些时候会看不过来,Charles提供了一个简单的Filter功能,可以输入关键字来快速筛选出URL 中带指定关键字的网络请求。
    3.对于某一个具体的网络请求,你可以查看其详细的请求内容和响应内容。如果请求内容是POST 的表单,Charles 会自动帮你将表单进行分项显示。如果响应内容是 JSON 格式的,那么 Charles可以自动帮你将JSON 内容格式化,方便你查看。如果响应内容是图片,那么 Charles可以显示出图片的预览。
    六、Https抓包操作步骤
    Step 1:了解一下https的基本原理;

    Step 2:在手机端安装SSL证书;

    Step 3:激活Charles的SSL代理;

    Step 4:将指定的URL请求开启SSL代理功能

    Step 5:其他步骤与Http抓包相同

    Step 1:了解一下https的基本原理;

    HTTPS其实是有两部分组成:HTTP+ SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。具体是如何进行加密,解密,验证的,且看图,下面这个图的解说
    Step 2:在手机端安装SSL证书
            1.将证书文件从Charles导出
            2.然后通过adb或者其他工具将其复制到手机的SD卡中。
    从Charles导出证书文件

       3.将证书文件导入Android手机

    4.将证书文件导入iOS手机


    Step 3:激活Charles的SSL代理

    1.选择【Proxy】--->【SSL Proxying Settings..】设置。2.在弹出来的对话框中沟选【Enable SSL Proxying】。

    Step 4:将指定的URL请求开启SSL代理功能

    1.选择抓取的https链接,然后右键选择【Enable SSL Proxying】。2.如果不激活SSL代理,所以https请求都是乱码无法查看。


    再次请求这个Https时,其请求内容已经一目了然了。
    七、Charles进阶---修改请求也响应的内容

    Step 1:设置Charless断点。
    Step 2:对指定的URL开启断点功能。
    Step 3:编辑请求与响应的内容。
    Step 1:设置Charless断点

    选择【Breakpoint Settings…】--->勾选【Enable Breakpoints】来激活断点功能
    Step 2:对指定的URL开启断点功能。

    1.选择一个URL链接-à右键开启菜单---》选择【Breakpoints】即可开启此请求的断点。2.这样Charles会遇到此请求时会弹出中断对话框。

    Step 3:编辑请求与响应的内容。
    a.编辑请求内容

    在中断对话框中,用户可以点击Edit Request来编辑请求的内容,编辑完成后然后点击【Execute】发出去这个请求给服务端
    b.编辑服务器响应的内容

    在【Edit Request】对话中点击【Execute】发出请求后,服务端返回来数据后,用户点击【Edit Response】可对响应内容进行编辑完成后然后点击【Execute】发出去这个数据给客户端。
    八、Charles进阶---弱网模拟
    1.菜单中选择【Proxy】--->【Throttle Settings..】-à激活【Enable Throttling】。

    2.在Throttle Configuration设置弱网的参数。
    3.以下是各种网制式的速率参考文档:


    弱网模拟设置


    作者:luckydaxian
    链接:https://www.jianshu.com/p/68684780c1b0


    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2021-6-9 14:08
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    发表于 2020-9-20 17:30:21 | 显示全部楼层
    最大优点还是在mac系统下可以安装和使用
    回复 支持 1 反对 0

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-3-28 22:24 , Processed in 0.067073 second(s), 25 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表