【web/app】charles抓包https/模拟弱网/设置断点/修改接口请求值或返回值/压测

摘要:
)3.设置断点,修改数据,然后单击要操作的界面。右键单击断点以再次从客户端请求接口。Charles将自动跳转到新会话并单击EditRequest。在“表单”视图中,可以更改客户端的传输参数。修改后,单击“执行”执行。您只能看到传输参数并第一次更改,然后单击执行以查看响应。此时,您可以更改返回参数并再次单击执行以看到更改的参数4。接下来是第三点,如果我想一直存储修改后的接口数据,而不是每次都经过断点,该怎么办?
charles几个常用功能
charles本质一是一个代理服务器,可以抓移动端也可以抓web端,都需要安装证书
 
1,抓包https网页:(如未配置,会显示unknown)
第一步:安装证书
if 移动端,首先:给手机安装SSL证书
  • 手机和电脑在同一wifi下,手机wifi配置http代理,ip是电脑ip,端口一般默认8888
  • 安装SSL证书到手机,Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device
  • 在手机上输入弹窗提示网址后,浏览器会自动弹出下载或者安装弹窗,安装证书
  • 注意最后步骤必须保证第一步完成,即此时手机已配置了电脑的IP代理,否则的话可能不会自动下载
case1:如果是安卓机,下载成功后没有安装弹窗,点击下载的pem文件无法打开,此时
小米,设置-更多设置-系统安全-加密与凭据-从储存设备安装,点击对应文件,安装即可
华为,设置-高级设置-安全-从SD卡安装证书,点击对应文件,安装即可
 
case2:如果是iphone,且ios 10以上,需要到通用-关于手机-证书信任设置,勾选一下,即可
 
if web端,比如我想抓本机谷歌浏览器的接口返回
Help -> SSL Proxying -> Install Charles Root Certificate 安装即可
 
第二步:在charles SSL Proxying 增加你想要抓的网址
  • charles,Proxy -> SSL Proxying Settings
  • 点击add: host(写你要抓的网址url);端口443
 
两步做完之后手机再次发起请求,charles已经能看到https网页的接口数据了,在这个过程中charles有可能会问询能否连接,直接点击allow即可
如果完成以上步骤还是不能抓包,可以尝试重启charles,重新连接
还不行的话,再次确认下当前PC的ip地址是否正确,注意wifi不同,当前pc的IP地址会变化,如果IP地址变化的话,就算是同一手机也要针对新的IP重新完成以上操作,才能抓包
 
2,模拟弱网
Proxy--->Throttle Settings
勾选Enable Throttling后,在Throttle Configuration设置弱网的参数
如果不对具体的弱网参数有要求,直接点击ok就可以了
面板上的小乌龟图标也可以开启或者关闭 Throtting
(衍生:弱网测试charles配置是一种方法,ios同时自带了弱网测试,开发者选项打开情况下,设置-开发者选项 > Network Link Conditioner 入口,系统已经内置常见网络配置,也可以增加自定义配置。)
 
3,设置断点,修改数据(比如你想要更改某个接口的request或者reponse的某个字段)
点击想要操作的接口,右键勾选 Breakpoints
从客户端再次请求该接口,charles自动跳转到新的session
点击 Edit Request ,Form视图下,可以更改客户端的传参,修改后点击Execute即可执行,第一次只能看到传参并更改,点击执行后可以看到response,此时可以更改返回参数(json模式查看)
更改之后再次点击Execute,就可以看到更改后的参数
 
4,接第三点,如果我想一直存储这个修改后的接口数据,而不是每次都要经过断点呢?——可以用Map Local
Map Local是将指定的网络请求重定向本地文件上
接上,点击更改后返回的request/reponse内容,右键save request/response保存到本地文件夹中
再次点击你要修改的接口,右键点击Map Local,在Map to下的choose里选择刚刚保存的文件
Tools-Map Local- Map Local Seting可以勾选你想选择的选项
之后再在客户端重新请求接口,就可以发现客户端显示的就是刚刚你修改后的内容
那么如果关闭Map local ,恢复正常请求呢,在 Tools-Map Local 里把enable勾选去掉,或者去掉你想要关闭的文件就可以了
 
如果map local了文件之后再次发起请求,数据没有变化,可以查看保存的request/response的json文件,之前做的修改是否有效,可以使用一些线上的json转换文件
可手动更改json文件的内容,重新map local,app再次发起请求,一般来说就可以了
 
5,压测:重复给服务器发起请求,简单测试服务器的并发处理能力
接口右键,repeat Advanced 
iteration 循环次数
concurrency 并发数
 
 
附注:
1,
网络环境
上/下行带宽(kbps)
2G
20/50
3G
330/2000
4G
40000/80000
wifi
33000/40000
2,
throttle [ˈθrɑ:tl] 喉咙;节流阀;
certificate [səˈtɪfɪkət] 证书
proxy [ˈprɑ:ksi] 代理服务器; 代表权;
iteration [ˌɪtəˈreʃən] 循环
concurrency [kən'kʌrənsɪ] 并发
 
3,
根据具体的需求,Charles提供了Map Remote、Map Local、及Rewrite功能,都可以达到修改服务器返回内容的目的,三种的区别分别是:
  1.Map Remote是将指定的网络请求重定向到另一个网址上
  2.Map Local是将指定的网络请求重定向本地文件上
  3.Rewrite是对网络请求进行一下正则替换

免责声明:文章转载自《【web/app】charles抓包https/模拟弱网/设置断点/修改接口请求值或返回值/压测》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇flask 关于 url_for的解析方式input提示字在有焦点消失或输入改变时消失下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

使用sphinx自动提取python中的注释成为接口文档

写好了代码,交付给他人使用的时候,查看代码固然可以了解各类和函数的功能细节,但接口文档能更方便的查找和说明功能。所以,一价与代码同步的接口文档是很有必要的。sphinx可以根据python中的注释,自动的生成接口文档,这样有利于保证文档和代码功能的同步。让我们来了解如何自动生成文档。 1. python代码格式。 class A: '''...

gdb命令调试技巧

gdb命令调试技巧 一、信息显示1、显示gdb版本 (gdb) show version2、显示gdb版权 (gdb) show version or show warranty3、启动时不显示提示信息gdb -q exe 或者.bashrc 添加alias gdb="gdb -q",重启shell4、退出时不显示提示信息(gdb) set confirm...

.Net Core JWT 动态设置接口与权限

通过上一篇.Net Core官方的 JWT 授权验证学习到了JWT的授权。可以发现一个问题,就是如果每个接口可以使用的角色都是写死的,这样如果有所修改会非常麻烦,虽然用policy可以一定程度上缓解,但是还是不能根治。 所以,就需要动态的设置接口与权限,由我们自己来处理。 我们先创建一个类PermissionRequirement 继承接口IAuthori...

(转)仅供个人学习-接口测试工具:jmeter、postman、soapUI的区别

1.  用例组织方式 首先是用例组织方式的不同,不同的目录结构与组织方式代表不同工具的测试思想,学习一个测试工具应该首先了解其组织方式。 SoapUI的组织方式如下图,最上层是WorkSpace,每个窗口只可以打开一个WorkSpace(这是一个xml文件),每个Project也是一个单独的xml文件(为了协同工作,也可以通过设置将其转化为一堆文件集合),...

浅析接口测试

接口测试是一种测试类型,又是一种测试方法,它是很多个领域测试工作的一部分,同时它又可以通过不同方式来执行; 功能测试 功能测试即我们常说的黑盒测试,传统意义上的黑盒测试即验证开发出来的产品是否满足产品提出的产品需求说明书,而接口实际上也是产品需求的一部分;例如:产品需求:客户端输入一个词,点击按钮,即按时间倒叙展示这个词相关的新闻;功能实现:客户端将用户输...

service和serviceImpl的选择

同行中,有些同行公司的代码风格是service层=service接口+serviceImpl实现类; 而有的同行公司的代码风格是service层=service类; 为什么不一样呢? 以前没想过这个问题,今天突然对这个产生了疑惑,通过百度,和github及朋友处以及自己的思考,有了如下结论: 当项目的业务逻辑简单时,可选择service层=service类...