抓包分析与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 ...
随机推荐
- android 基于dex的插件化开发
安卓里边可以用DexClassLoader实现动态加载dex文件,通过访问dex文件访问dex中封装的方法,如果dex文件本身还调用了native方法,也就间接实现了runtime调用native方法 ...
- java 数据类型String 【正则表达式】匹配工具 Pattern和Matcher
Pattern和Matcher的介绍: Pattern对象是正则表达式编译后在内存中的表示形式,因此正则表达式宇符串必须先被编译为Pattern对象,然后再用该Pattern对象创建对应的Matche ...
- jQuery Validate表单验证判断是否验证通过
只判断某个字段是否验证通过,可以参考:https://www.cnblogs.com/pxblog/p/13801171.html <form action="" metho ...
- Linux执行脚本报错:-bash: ./xx.sh: /bin/bash^M: bad interpreter: No such file or directory
1.用vim打开文本 输入 : set ff 这里要先按":"号 显示文件为dos格式 2.强制装换格式为unix 先按冒号":" set ff=unix 然后 ...
- MySQL设置表中字段的数据唯一性
mysql设置数据库表里的某个字段的数据是唯一的 ALTER TABLE 表名 ADD unique(`表中的字段`)
- ARTS Week 18
Algorithm 本周的 LeetCode 题目为 55. 跳跃游戏 给定一个非负整数数组 nums, 你最初位于数组的 第一个下标 .数组中的每个元素代表你在该位置可以跳跃的最大长度.判断你是否能 ...
- 【LeetCode】1162. 地图分析 As Far from Land as Possible(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 这个题想考察什么? 剩下的任务就是套模板! 日期 题目 ...
- 【LeetCode】794. Valid Tic-Tac-Toe State 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址: https://leetcode.com/problems/valid-ti ...
- 1067 - Combinations
1067 - Combinations PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB Giv ...
- vue create 初步解析以及定制化修改
版本说明 $ vue --version @vue/cli 4.5.9 $ node --version v14.0.0 $ npm --version 7.6.1 源码位置-mac /usr/loc ...