背景:Charles工具常用功能使用
前提条件:使用抓包功能确保手机和电脑处于同一个局域网
http抓包:
忽略(和抓取https步骤重复,忽略..)
https协议抓包(操作以Charles 4.5.6示例)
背景:https抓包设置也有很多文章写了,但有些写得不是很全,同事教我常用的一些功能就先记录下来了,
备注:需要抓取https协议,电脑端与手机端都需要安装证书,如果未安装,抓包时,请求接口会显示unknow,操作如下:
电脑端设置
安装证书(win10示例)
- 打开charles工具,charles,help-> ssl proxying-> install charles root certifica
- 跟着向导指引一步步安装即可,最后一步提示“导入成功”
Charles工具设置
- Charles工具切换到Proxy→SSL Proxying Settings→SSL Proxying→Include选项点击“Add”,
- Host及 Port都添加:*→ok→勾选”Enable SSL Proxying”,使其生效(都配置*代表匹配所有接口与端口)
Ios端设置(iPhone X 12示例)
设置代理
- 手机端进入系统设置页面→WiFi,选择和电脑端同一局域网的网络进行设置
2. 配置代理:选择手动方式
服务器地址:windows电脑打开cmd窗口输入ipconfig可以获取
端口:默认8888,端口没有被占用的情况下,就用默认的端口即可。
若端口被占用,也可以修改端口,修改方法:Chroxies工具→Proxy Settings→HTTP Proxy,选项,输入要修改的端口后,点击ok报错
设置完毕,点击页面的存储键退出
切记:若修改了默认端口,手机代理端口也同步用修改后的端口!!
下载并安装证书
打开手机浏览器输入:chls.pro/ssl,前往下载后并安装
启用证书
手机系统设置→通用→关于本机→证书信任设置→证书开关开启→“根证书警告”点击继续,输入密码完成
电脑端Charlse工具弹出是否允许调试窗口,这时候点击Allow(允许)选项即可。
Android端设置(以realme手机示例)
设置代理(同ios端)
1. 手机端进入系统设置页面→WiFi,选择和电脑端同一局域网的网络进行设置,代理与端口设置同ios一样,设置后退出保存
下载并安装证书
备注:android
打开手机浏览器输入:chls.pro/ssl,前往下载后并安装
下载完成后,打开手机,系统设置→密码与安全→系统安全→凭证存储→从存储设备安装证书→ CA证书→仍然安装→选择下载好的证书点击并安装
Ios手机删除证书
系统设置→通用→VPN与设备管理页面→选择对应的描述文件→移除描述文件
备注:有些手机在通用页面的VPN下即可看到描述文件名称→点击进去→移除描述文件
android删除证书
系统设置→密码与安全→系统安全→凭证存储→从存储设备安装证书→ 删除所有用户证书
接口显示Unkunow解决办法
1. 测试过程中,可能会发现之前可以正常抓包的设备,突然显示unknow有可能是因为SSL Proxying Settings的开关给关闭了,这时候重新开启下即可。
2. 有时候可能是因为证书过期了或有异常,把证书删除后重新安装再设置下代理即可。
Charles打断点功能
打断点可以验证一些测试场景,功能是否满足
如下操作示例:该接口headers头的deviceuuid不满足*位会触发另一个接口,这里打断点修改headers头的deviceuuid不满足条件(uuid只有1位,2位,3位…..)是否触发对应的接口
开启方法:
1、抓包后,选择对应的接口右键执行Breakpoints(再次点击会取消打断点)
2.触发该接口,修改接口请求头的deviceuuid→点击执行Executes,即可验证是否有触发另外另一个接口
同一个报文,可以重新去请求,选择要重新请求的报文,执行工具栏的Repeat selected requests,即重新请求
Charles拦截接口
测试场景可能会有用到拦截**接口会触发什么样的效果,或其他的场景,如下示例,该接口被拦截后触发3次重试机制,
开启方法:
- 选择要连接的接口右键执行Block list, (or 选择接口后点击工具栏Tools→Block list)
- 触发该接口后,选择中止abort按钮,再检查是否达到预期效果
Charles设置弱网功能
我们的测试场景可能涉及到一些接口超时*s后会重新请求,或有的接口弱网下若请求失败,某些数据上报为空等场景,就需要设置弱网功能
开启方法:
- 工具栏选择Proxy→Throttle Settings,打开网络设置页面
2、勾选Enable Throttling,在Throttling preset中选择工具自身提供的一些默认网络配置
指定域名限制弱网
如果只想单独对某些域名限制网络,勾选Only for selected hosts,点击Add添加,填写对应域名及选择协议类型(或黏贴对应的接口URL过来),添加完成后,在对应的域名上勾选
如上,点击OK后,只对勾选的域名产生弱网效果,触发对应的接口后,即可看到设置的弱网效果,面板右侧切换到Chart可看到接口请求的响应时间
常设置的是Bandwidth(kbps)带宽,Utilisation(%)带宽可用率,
弱网参考文章:https://blog.csdn.net/qq_15283475/article/details/127760790