charles在测试工作中常用的一些操作
一、证书安装
安卓系统
注意:在安卓系统7之后的高级版本,对代理证书添加系统信任过于麻烦需要root权限,所以在部分场景是不能实现抓包
先确认charles和手机处于同一wifi网络下,然后开启代理,下载charles证书,如果下载下来的证书是不是.crt格式,手机无法识别改格式的证书,需要修改后缀名为crt格式后点击可自动安装到用户证书目录下(信任的凭据-用户)
ios系统
对比安卓抓包难度更低,开启代理后,在设置-通用-关于-证书信任设置,直接开启信任就可以抓到包了
二、charles测试常用操作以及原理
charles作为一个抓包工具,在日常使用的时候有比较清晰的目录层级结构,能做一些常用http、https请求的抓包,弱网测试,app抓包,也还支持一些其他功能。
1、breakpoint断点
打断点可以修改请求和响应,一般用来修改前端页面的响应返回,常见用在兼容性测试中,自定义后端返回参数给前端,测试前端的处理逻辑
举例:在简书中修改推荐作者的数量和作者的name等等参数返回自己使用,测试的一些关于长度的兼容性,或者数量触发前端逻辑的数据。
2、rewrite重写
rewrite可以修改请求请求和响应的hearder,路径,参数等等信息,一般可以用来解决请求跨域,修改返回参数,删除http请求的某些参数
举例:通过rewrite重写添加请求hearder,通过本地映射把接口响应替换成自己的期待值,然后开启重写修改请求头解决跨域等等问题,修改返回时修改本地txt文件里面的json数据即可
access-control-allow-origin:*
access-control-allow-credentials:true
3、map local本地映射
map from指定接口路径域名的接口,map to映射为本地返回文件的结果
举例:通过本地映射修改接口返回的json文件,设置txt文件为一下内容后替换到实际返回的数据
{
"code":100000,
"data":{"captcha_id":"8"},
"msg":"success"
}
4、block list屏蔽请求
block list可以直接把当前接口请求拉黑,当某些请求会自动轮询出结果,并且实时更新数据时,获取完首次信息,或者通过断点获得首次信息之后,通过block list屏蔽该请求,让返回数据始终在期望之内
举例:游戏sdk心跳验证未成年用户无法再指定时间段内登录游戏,通过断点修改验证的信息,第一次先通过了校验之后(不弹窗),block list该接口就可以一直保持在游戏内的状态。
反向代理
端口转发
评论区