抓包分析与mock实战
Charles下载安装
官网下载安装:https://www.charlesproxy.com/
电脑证书配置
如果不配置证书,无法抓取https协议
配置证书:
1 - 打开Charles,在help - SSL Proxying - Install Charles Root Certificate

2 - 设置ssl:

如果勾选以下选项,那么所有经过电脑的网络都会被抓取

为了规避所有经过电脑都抓取数据的杂乱,使用以下方法
- 抓取浏览器的数据
在浏览器使用SwitchyOmega设置charles监听端口,下载地址:https://proxy-switchyomega.com/ (根据教程安装使用)
- 下载安装之后,点击 “选项” - 新建情景模式 - 代理协议选择http - 代理服务器选择 127.0.0.1
代理端口和Charles设置的代理端口一致


移动端代理配置
- 1 - 移动端需要与pc端处于同一网络(wifi)
- 2 - charles

- 3 - 移动端 修改网络(一般是长按已经链接的wifi),以下两个地址必须与charles一致

- 4 - 配置证书(与pc端一样,配置证书才能抓取到https)
打开移动端原生浏览器:chls.pro/ssl
5 - 注意:android6以上的系统 app默认不信任抓包证书,需要开发修改代码,大部分测试app安装包默认打开状态
抓包分析
- 应用场景:
- 解决移动端接口测试
- 解决接口测试过程中检查参数错误问题
接口分析
- 抓包正常请求信息
- 详细分析:(待更新)
- curl 命令发起的请求信息:
- curl --proxy http://127.0.0:8080 -X GET "http://www.baidu.com"
限速模拟(手机端测试app时使用)
- 1 - 开启模拟

2 - 右下角会出现以下标识

3 - 设置网速


mock
优点:
- 不依赖第三方数据
- 节省工作量
- 节省连调
使用场景:
- 1 - 前后端数据交互-前端数据展示
比如:查看数据边界值场景(超出长度或者股票因为数据变化引发的对应的颜色变化是否符合预期)
代理返回给客户端相应信息的时候篡改相应信息,查看客户端是否是我们期望的结果

- 2 - 模拟第三方响应(需开发配合)
因为某些第三方接口(征信系统、短信系统)会收取费用,会造成成本过高,所以在获取付费接口数据的时候需要开发设置走代理端口,征信系统会返回数据给代理,这时代理就可以篡改数据信息,从而提高测试效率

- 3 - 软硬件解耦(需开发配合)
因为公司硬件设备比较昂贵,测试人员不可能人手一台,但又不得不使用的情况,mock原理与模拟第三方基本一致

mock例子 修改响应信息
charles Rewrite:
- 1 -

- 2 -
- 修改规则:
- 内容匹配

- 正则匹配(需要勾选Regex)

- 内容匹配
- 修改规则:
charles另一大神器:MAP LOCAL
Rewrite 只能进行匹配,如果想精确的进行某一个字段进行修改,而这个字段有容易与其他字段冲突,那怎么办?
使用MAP LOCAL
原理:与服务端没有任何交互,直接读取本地数据文件(即,使用本地json文件替代第三方服务)
针对性会更强

- 解决的问题:硬件设备不可用
使用:
- 1 - 首先要拿到正常的响应信息

2 - 保存json文件

- 3 - 打开quote.json文件,修改相关数据

- 4 - 在charles右键响应体文件选择Map Local


- 右下角会有标记

- 1 - 首先要拿到正常的响应信息
|
|
|
|
ps:学习笔记,如有侵权,请联系删除,感谢霍格沃兹测试学院
抓包分析与mock实战的更多相关文章
- 实战录 | 基于openflow协议的抓包分析
<实战录>导语 云端卫士<实战录>栏目定期会向粉丝朋友们分享一些在开发运维中的经验和技巧,希望对于关注我们的朋友有所裨益.本期分享人为云端卫士安全SDN工程师宋飞虎,将带来基于 ...
- Http实战之Wireshark抓包分析
Http实战之Wireshark抓包分析 Http相关的文章网上一搜一大把,所以笔者这一系列的文章不会只陈述一些概念,更多的是通过实战(抓包+代码实现)的方式来跟大家讨论Http协议中的各种细节,帮助 ...
- python爬虫(3)——用户和IP代理池、抓包分析、异步请求数据、腾讯视频评论爬虫
用户代理池 用户代理池就是将不同的用户代理组建成为一个池子,随后随机调用. 作用:每次访问代表使用的浏览器不一样 import urllib.request import re import rand ...
- Wireshark抓包分析/TCP/Http/Https及代理IP的识别
前言 坦白讲,没想好怎样的开头.辗转三年过去了.一切已经变化了许多,一切似乎从没有改变. 前段时间调研了一次代理相关的知识,简单整理一下分享之.如有错误,欢迎指正. 涉及 Proxy IP应用 原理/ ...
- HTTP2特性预览和抓包分析
背景 近年来,http网络请求量日益添加,以下是httparchive统计,从2012-11-01到2016-09-01的请求数量和传输大小的趋势图: 当前大部份客户端&服务端架构的应用程序, ...
- 抓包分析SSL/TLS连接建立过程【总结】
1.前言 最近在倒腾SSL方面的项目,之前只是虽然对SSL了解过,但是不够深入,正好有机会,认真学习一下.开始了解SSL的是从https开始的,自从百度支持https以后,如今全站https的趋势越来 ...
- 在Hdsi2.0 SQL的注入部分抓包分析语句
在Hdsi2.0 SQL的注入部分抓包分析语句 恢复cmd ;insert tb1 exec master..xp_cmdshell''net user ''-- ;exec master.dbo.s ...
- [转] Android实时抓包分析 : 善用adb调试桥
Android实时抓包分析 : 善用adb调试桥 谈到android网络抓包,很多人都能想到牛逼轰轰的神器tcpdump.方法就是在android机器上面安装tcpdump,然后通过-w参数把抓包 ...
- 云计算之路-阿里云上:Wireshark抓包分析一个耗时20秒的请求
这篇博文分享的是我们针对一个耗时20秒的请求,用Wireshark进行抓包分析的过程. 请求的流程是这样的:客户端浏览器 -> SLB(负载均衡) -> ECS(云服务器) -> S ...
随机推荐
- 简单聊聊mysql的脏读、不可重复读
最近,在一次 mysql 死锁的生产事故中,我发现,关于 mysql 的锁.事务等等,我所知道的东西太碎了,所以,我试着用几个例子将它们串起来.具体做法就是通过不断地问问题.回答问题,再加上" ...
- input type 使用
type属性值 hidden: 隐藏. text:文本 search:搜索 tel url email password:密码 date:日期选择器 month:月份选择器 week:周选择器 tim ...
- git提交报错:Error merging: refusing to merge unrelated histories
执行: git pull origin master --allow-unrelated-histories 然后再重新push即可
- 聊一下 TS 中的交叉类型
交叉类型不能完全按照传统编程中的 与 来理解. 交叉类型的定义:将多个类型合并为一个类型,包含了所有类型的特性,而且要同时满足要交叉的所有类型. 后半段话不是很好理解,看一下接口类型和联合类型的交叉类 ...
- 网络编程之UDP(3)丢包总结
读书笔记 from here UDP socket缓冲区满造成的UDP丢包 如果socket缓冲区满了,应用程序没来得及处理在缓冲区中的UDP包,那么后续来的UDP包会被内核丢弃,造成丢包.在sock ...
- 【LeetCode】201. Bitwise AND of Numbers Range 解题报告(Python)
[LeetCode]201. Bitwise AND of Numbers Range 解题报告(Python) 标签: LeetCode 题目地址:https://leetcode.com/prob ...
- 【】二次通告--Apache log4j-2.15.0-rc1版本存在绕过风险,请广大用户尽快更新版本
[转载自360众测] Apache Log4j2是一个基于Java的日志记录工具.该工具重写了Log4j框架,并且引入了大量丰富的特性.我们可以控制日志信息输送的目的地为控制台.文件.GUI组件等,通 ...
- APP打开(四)—Deeplink推广,打开率很低怎么排查
在开始正文之前,先解释一下,这里提到的打开率指的是点击了Deeplink之后正常打开了APP和点击量的比值. 开始正文: 但凡做TOC业务的多多少少都会用到Deeplink,这是一个重要的运营手段.但 ...
- 前端性能和加载体验优化实践(附:PWA、离线包、内存优化、预渲染)
一.背景:页面为何会卡? 1.1 等待时间长(性能) 项目本身包/第三方脚本比较大. JavaScript 执行阻塞页面加载. 图片体积大且多. 特别是对于首屏资源加载中的白屏时间,用户等待的时间就越 ...
- 本地修改配置hosts文件解决Github加载慢问题
本地修改配置hosts文件解决Github加载慢问题 手动方式 hosts 文件在每个系统的位置不一,详情如下: Windows 系统:C:\Windows\System32\drivers\etc\ ...