课程目标
(1)能够用Charles来分析前后端的问题
(2)能够用Charles模拟弱网测试环境(能够模拟各种网络环境)
(3)能够使用Charles的断点构建异常的测试场景(针对一些特殊的场景测试需要修改请求的参数或者返回的结果数据,使用Charles的断点来构造特殊的场景测试)
课程介绍
1.Charles简介
2.Charles安装与配置
3.Charles实战
一:Charles简介
1.Charles是什么
基于HTTP协议的代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的。
特点:跨平台(windows、linux、ios操作系统)、半免费
2.Charles工作原理
正在上传…重新上传取消
运行Charles的电脑
前置步骤:
1.需要(在电脑上)运行Charles并配置代理——>完成后才能成为“代理服务器”
2.在客户端上面需要配置代理(代理服务器和客户端的代理端口、IP地址要相同)
原理的实现步骤:(!!!!!)
1.由客户端发送请求
2.Charles接收再发送给服务器
3.服务器(处理完成后)返回请求结果给Charles
4.由Charles转发给客户端
3.Charles能做什么(!!!!!!)
主要功能:
1.支持HTTP和HTTPS代理 (清楚HTTP和HTTPS的区别!!!!!!!)
2.支持流量控制(弱网环境的测试)
3.支持接口并发请求(简单的性能测试或压力测试,可以执行多个请求)
4.支持重发网络请求(接口测试)
5.支持断点调试功能(在发送或者接收请求的过程中,可以利用断点修改请求数据等,因此可以使我们在测试的过程中构建异常的测试场景)
4.Charles的优点(相对于Fiddler)
1.Charles能够支持linux、MacOs
2.Charles支持按域口和按接口查看报文,简洁明了
3.支持反向代理
4.Charles网络限速可选择网络类型(3G\4G\10M)Fildder需要手动调节
5.可以解析AMF协议(Fidder不支持此协议)
5.Charles的介绍总结
1.概念原理
代理服务器
跨平台
半免费
工作原理
2.主要功能
支持代理(HTTP、HTTPS)
流量控制(弱网环境测试)
请求重发
断点调试
3.优点
支持多系统
页面简洁
反向代理
网络类型可选择
二:Charles安装与配置
1.Charles安装
官网安装
2.Charles组件介绍
1:
正在上传…重新上传取消
2:
正在上传…重新上传取消
红色开启断点 检验返回的请求(校验返回的html是否符合WWW格式标准) 工具设置(接口测试)
3:
正在上传…重新上传取消
4:
正在上传…重新上传取消
overview:接口的相关信息(协议、状态码、请求的时间等)
3.Charles代理设置
正在上传…重新上传取消
4.Charles访问控制
正在上传…重新上传取消
在输入框输入的“IP地址”,对应的“IP地址”默认情况下可以直接通过Charles访问网络和服务器,而且Charles可以直接抓取客户端的相关报文。
不在列表里的“IP地址”通过Charles来访问网络,需要手动确认是否可以访问(勾选的情况下),如果不勾选默认不可以通过Charles访问!!!!)
结束,此时访问配置及配置完成!
5.客户端-Windows代理设置
正在上传…重新上传取消
正在上传…重新上传取消
客户端与Charles代理不是同一台电脑需要手动设置,如果是同一台电脑则系统会自动设置代理。
6.客户端-IOS手机代理设置
正在上传…重新上传取消
客户端与Charl
7.客户端-Android手机代理设置
正在上传…重新上传取消
8.Charles安装配置总结
正在上传…重新上传取消
把代理的“IP地址”改成运行Charles电脑对应的IP地址、代理端口
三:Charles实战
正在上传…重新上传取消
1.Charles抓包分析问题(实例——步骤!!!)
(1)当客户端请求服务端的时候,获取到请求的http包,可能会出现问题?这两个问题可能是前端的问题也有可能是后端的问题!!
出现问题后需要分析是前端还是后的的问题
例子:
正在上传…重新上传取消
正在上传…重新上传取消
(2)实施步骤!!!!!
正在上传…重新上传取消
客户端操作:
正在上传…重新上传取消
这是后台响应回来的错误信息,说明是后台的原因;但是后台只响应了一条信息,而前端页面却显示两条错误信息,说明前端页面处理异常的时候逻辑有问题;所以说前后端都有问题!!
1."系统繁忙"问题是由后台返回的,因此问题出现在后端!!
2.网页显示两次提示信息,但响应只响应了一次,这个响应两次是前端的问题!!!
正在上传…重新上传取消
2.https抓包(安装SSL证书)
在Web系统中可以通过http或https的协议来进行数据的交互
HTTPS是在HTTP的基础上,对HTTP的报文加了密。
使用charles抓取Https请求报文的时候,报文会出现乱码,解决办法是需要安装SSL证书
正在上传…重新上传取消
需要在不同的客户端上安装SSL证书
1.Windows证书安装
对客户端(Windows)安装证书!!!
正在上传…重新上传取消
2.Charles Https代理配置(出现乱码)
正在上传…重新上传取消
配置好之后就不会出现乱码了
正在上传…重新上传取消
3.IOS证书配置
正在上传…重新上传取消
正在上传…重新上传取消
3.Charles流量配置
可以用来模拟不同的网络环境,可以用来做弱网测试。
正在上传…重新上传取消
正在上传…重新上传取消
Bandwidth(宽带)
Reliability(配置可靠性)丢包
Stability(稳定性,比如网络隔几秒种会断掉,用来模拟这种情况)断网
1.弱网测试实例
正在上传…重新上传取消
流量配置之前:
正在上传…重新上传取消
流量配置之后:
正在上传…重新上传取消
正在上传…重新上传取消
结果分析:
正在上传…重新上传取消
4.Charles断点配置
用来构造一些异常的测试场景
正在上传…重新上传取消
第三步:此时Charles未发送请求给服务器
正在上传…重新上传取消
1.断点调试实例
正在上传…重新上传取消
场景一:测试针对一些异常的测试参数(正常情况下,在前端设置角色名称时不可以为空,前端会有一些限制!这个时候就可以使用断点调试功能,把这个请求发送到Charles里,在Charles里面修改角色名称,把参数设为空,看后台的处理情况。)
场景二:测试针对后台返回的一些异常的数据,前端在处理异常数据的时候是什么情况
正在上传…重新上传取消
第一步:开启断点调试
正在上传…重新上传取消
第二步:
正在上传…重新上传取消
第三步:
正在上传…重新上传取消
返回给页面空字符串
正在上传…重新上传取消
第四步:
正在上传…重新上传取消
5.Charles抓包实战总结
正在上传…重新上传取消
课程总结
正在上传…重新上传取消