51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1208|回复: 0
打印 上一主题 下一主题

从0-1Charles抓包工具精品教程

[复制链接]
  • TA的每日心情
    擦汗
    昨天 09:05
  • 签到天数: 1024 天

    连续签到: 3 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2022-11-24 11:11:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    Charles简介
      在移动互联网时代,作为测试工程师,绝对必须要掌握必要测试工具,今天主要来了解Charles。
      Charles是一个HTTP代理服务器、HTTP监视器、反转代理服务器,当浏览器连接Charles的代理访问互联网时,Charles可以监控浏览器发送和接收的所有数据。
      它允许一个开发者查看所有连接互联网的HTTP通信,这些包括request、response和HTTP headers(包含cookies与caching信息)。
      Charles主要功能
      支持SSL代理,可以截取分析SSL的请求。
      支持流量控制,可以模拟慢速网络以及等待时间(latency)较长的请求。
      支持AJAX调试,可以自动将json或xml数据格式化,方便查看。
      支持AMF调试,可以将Flash Remoting或Flex Remoting信息格式化,方便查看。
      支持重发网络请求,方便后端调试。
      支持修改网络请求参数。
      支持网络请求的截获并动态修改。
      检查HTML、CSS和RSS内容是否符合W3C标准。
      Charles安装
      官方地址:https://www.charlesproxy.com/

     安装
      由于安装过程是比较简单,这里就不再过多贴图了,直接上一张安装后进入首页的,让我们一起来看一下Charles的庐山面目。

    抓包
      Web抓包
      Charles Web抓包非常简单,启动Charles会自动与浏览器设置成代理,不需要进行过多的设置,接下来我就就是通过浏览器发送网络请求,Charles就会直接抓取到这些信息和响应信息。

     Web抓取HTTPS协议
      虽然现在Charles能够直接抓包了,但是https协议的报我们是抓取不了的,需要安装SSL证书才可以。
      Charles下配置
      点击顶部菜单栏【Help】–>选择【SSL Proxying】,点击【install Charles Root Certificate 】安装Charles根证书即可。
      这里由于用的笔记本截图快捷键问题,没发截取,这里截取证书安装,证书安装一直下一步就可以。


    点击【Proxy】–>【SSL Proxying Settings…】。
      在弹出选项卡中,勾选【Enable SSL Proxying】点击【add】,在Host输入【*】表示接收任何主机,在Prot输入【443】最后点击【ok】保存。


    App抓包
      Charles抓包不仅仅可以抓取来在电脑端的HTTP请求,也能够抓取来自App发出的HTTP请求,但是手机抓包需要在电脑端配置下,并且同时需要手机和电脑在同一网络下。
      电脑端配置
      启动安装好的Charles抓包工具,点击【Help】–>【local IP Address】获取下ip地址,也可以直接通过电脑自带的CMD命令来获取电脑IP【ipconfig】,根据自己的习惯这里的ip是取我虚拟机的。


    点击【Proxy】–>【Proxy Settings】我们在设置下端口号“9999”。

    手机端设置
      打开手机的设置页面,选择【无线局域网】,IOS点击连接的WIFI后面的感叹号,安卓应该是长按连接的WIFI(注:这里主要以IOS为例)。
      点击【配置代理】–>【手动】,输入本机【IP地址(192.168.1.75)】以及端口号【9999】,这是我本机的,根据自己情况合理配置,点击【存储】。




    接下里验证下手机请求,当我们看到Charles里能抓到这个连接,就说明配置没问题,看到unknown,这个不要紧,那是我们没有安装针对手机端的证书,下面继续我们手机端HTTPS证书安装。

    抓取手机HTTPS协议
      通过上面的设置,虽然来自我们手机端的Http协议请求可以抓取到,但是HTTPS协议的包是不能抓取的,需要安装配置证书才可以,现在手机上大多数都已经切到https很少由http协议的了。
      Charles配置
      点击顶部菜单栏【Help】–>选择【SSL Proxying】,点击【install Charles Root Certificate】安装Charles根证书即可。
      点击安装【Install Charles Root Certificate On a Mobile Device or Remote Browser】在移动设备上或远程浏览器安装证书即可(这里和上面安装一样)。



    Charles过滤
      通常情况下,我们需要对网络请求进行过滤,只监控向指定目录服务器上发送的请求,对于这种需求,以下几种办法。
      方法一
      在主界面的中部的Filter栏中填入需要过滤出来的关键字。
      例如我们的服务器的地址是http://ceshi.com, 那么只需要在 Filter 栏中填入ceshi即可。
      方法二
      在Charles的菜单栏选择 “Proxy”->”Recording Settings”,然后选择Include栏,选择添加一个项目,然后填入需要监控的协议、主机地址、端口号,这样就可以只截取目标网站的封包了。如下图所示:

    其它功能
      弱网测试
      Charles配置弱网设置
      点击【Proxy】–>【Throttle Setting】,勾选上【Enable Throttle】,也可以勾选【only for selected host 】 设置一个指定注解访问进行网络限制,不影响其他软件。
      在【Throttle preset】选择常见预设的网络情况,也可以在【Bandwidth】自己设置网络的上传和下载速率。


    打断点篡改数据
      在我们的测试场景中,可能需求修改请求参数或者返回参数进行测试,比如支付方面的接口,涉及用户登陆权限的接口参数,这里就不再举例了。
      修改请求数据
      选择请求会话右键勾选【Breakpoints】这是我们会发现工具栏有个六边形按钮已经变为红色。
      设置断点,点击菜单栏【proxy】勾选【Breakoint Setting …】这是会弹出断点设置弹窗。在弹出的断点设置弹窗,双击想打断点的接口,进行断点编辑。
      编辑断点,如果修改Request数据,就将Request勾选,如果修改Response数据,就将Response勾选,当然你也可以都勾选。在手机上重新进行请求,Charles 会自动进行拦截并跳转到请求数据修改页面。

    这时,服务端给我们返回的数据就是有关JMeter的数据了。
      重复发送请求
      在我们的测试工作中,可能你会发现一个bug,开发会让你再操作一遍,他要查看日志再选定位分析,这时候,在客户端上进行操作一遍就会麻烦。
      这时候直接用Charles 发送一遍重复的请求就可以了,并且,重新发送请求也可以帮助我们进行功能测试。选择需要重新发送请求的会话上,直接点击工具栏【重新按钮】。
      Compose编辑接口
      在我们的测试工作中,可能需要发送不同的参数进行请求,选择需要修改的请求,右键选择【Compose】这时多出一个别的请求。
      服务器压力测试
      Charles还有一个比较有意思的功能,它能够简单的给服务器进行压力测试。
      在进行压力测试的请求会话上右击,选择【Repeat Advanced】。

    在弹出框中,输入并发线程数以及压力次数点击进行测试。
      映射
      本地映射
      映射的意思就是指将一个请求重定向到另外一个请求,本地映射的含义就是通过修改已有数据来映射指定的接口,使接口数据使用本地设置的数据来做调试。
      可以在请求会话上右键选择【Save Reponse…】将返回信息保存到本地。
      远程映射
      远程映射的含义就是将你本地的请求地址,映射到另外一个远程地址上,相当于你的请求地址修改了,在菜单栏点击【Tools】选择【Remote】就可以进行远程映射设置。













    本帖子中包含更多资源

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

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-9-26 01:24 , Processed in 0.078862 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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