当前位置:网站首页>Day16 charles的基本使用

Day16 charles的基本使用

2022-08-10 02:17:00 lookout99

系列文章目录

Day01 软件测试基础总结

Day02 测试用例知识点总结(上)

Day03 测试用例知识点总结(下)

Day04 禅道-从安装到卸载

Day05 MySql的基础使用

Day06 MySql知识点总结

Day07 MySql知识点再总结与多表查询

Day08 redis的基础知识

Day08 VMware的安装、Linux系统安装和Linux基础命令

Day09 Linux常用命令总结

Day10 Linux环境部署和项目构建

Day11 shell脚本基础知识

Day12 接口和协议

Day13 Postman的使用

Day13 Windows环境下的JDK安装与Tomcat的启动

Day14 jenkins部署

Day15 jenkins的简单使用

Day16 charles的基本使用


文章目录


前言

        Charles 是在 PC 端常用的网络封包截取工具,在做移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。除了在做移动开发中调试端口外,Charles 也可以用于分析第三方应用的通讯协议。配合 Charles 的 SSL 功能,Charles 还可以分析 Https 协议。

        Charles可以截取浏览器发送的请求,也可以截取服务器发送的响应,并进行修改。


一、Charles原理

  1. 客户端向服务器发起HTTPS请求
  2. Charles拦截客户端的请求,伪装成客户端向服务器进行请求
  3. 服务器向“客户端”(实际上是Charles)返回服务器的CA证书
  4. Charles拦截服务器的响应,获取服务器证书公钥,然后自己制作一张证书,将服务器证书替换后发送给客户端。
  5. 客户端接收到“服务器”(实际上是Charles)的证书后,生成一个对称密钥,用Charles的公钥加密,发送给“服务器”(Charles)
  6. Charles拦截客户端的响应,用自己的私钥解密对称密钥(Charles拿到了对称密钥**)**,然后用服务器证书公钥加密,发送给服务器。
  7. 服务器用自己的私钥解密对称密钥,向“客户端”(Charles)发送响应
  8. Charles拦截服务器的响应,替换成自己的证书后发送给客户端
  9. 至此,连接建立,Charles拿到了 服务器证书的公钥 和 客户端与服务器协商的对称密钥,之后就可以解密或者修改加密的报文了。

总结:

HTTPS抓包的原理还是挺简单的,简单来说,

截获真实客户端的HTTPS请求,伪装客户端向真实服务端发送HTTPS请求

接受真实服务器响应,用Charles自己的证书伪装服务端向真实客户端发送数据内容

二、Charles的证书安装

 1.Web安全证书安装

 

 

安装证书的配置

 

 

2.移动端安全证书的安装 

手机为Honor 10X

注意屏蔽web网页的抓包信息,将Windows Proxy勾去掉,以免影响移动端数据

 将手机与电脑处于同一网络下->打开网络设置->长按当前连接的网络->选择修改网络->代理选择手动->将Charles给的数据输入主机名与端口号->保存->打开浏览器地址栏输入 chls.pro/ssl->手机会自动下载安全证书->打开安全证书安装(如果无法打开就继续)->

设置->更多网络设置->安装证书->搜索->输入证书名称

(4条消息) 【Charles】华为手机配置 Charles 的 HTTPS CA 证书_顾三殇的博客-CSDN博客_华为手机安装charles证书

 

 

 

 

 三、断点设置

1.Web端

补充:屏蔽web网页的抓包信息

Web端需要打开Windows Proxy 不然不能截取到接口 

 补充:接口关注

 筛选出需要的接口

 

 

         将上一步复制的URL直接复制在Host中,点击其他空白输入框会自动填充内容,步骤2中加*号是包含的意思,即包含星号中内容的接口都将被筛选出来。

 

1.请求断点

选择接口设置断点,并复制URL

 进行断点设置

 将URL复制在Host中,即步骤3。复制后直接点击其他输入框就会自动填充。注意需要将步骤4的内容全部删除换成*号。(因为可能有随机参数,导致多次访问时会出现参数不同而无法访问的情况)

 断点已经设置成功,接下来是效果。修改参数会访问修改后的页面。

应用场景:用户注册时,如果前端已经设置了限制,如用户名必须10位以上,那么功能测试时就无法在前端页面测试后端能否成功注册用户名为9位的用例,因此可以先在前端使用正确数据注册,使用抓包工具提前拦截请求,再更改数据,以实现上述目的,在前端已经限制条件的情况下,测试后端是否存在bug。

 2.响应断点

断点的设置与请求一致,复制URL设置断点->代理中打开断点设置->增加断点->将URL复制入Host->勾选Response->OK

设置断点的区别只在于勾选

在断点设置成功后,拦截服务器端返回的响应。我们可以修改响应。

 3.本地修改

将响应拦截,更改为自己设置的文件

保存为txt 后,将文件“另存为”编码方式选择utf-8,否则接口可能无法识别汉字导致出现乱码

 或者也可以在Tools打开

 

 

 2.移动端

 

四、弱网测试

1.Web端

 可以直接下拉菜单选择

 

功能打开标志 

 

2.移动端

四、模拟403/404

1.Web端

设置步骤与断点设置相似,需要注意的是步骤3选择403还是404

 2.移动端


总结

        Charles还可以进行压力测试,但是因为信息不够详细,只作为补充功能,压力测试会使用更加专业的软件。

原网站

版权声明
本文为[lookout99]所创,转载请带上原文链接,感谢
https://blog.csdn.net/lookout99/article/details/126229155