接口抓包分析与Mock实战

在这里插入图片描述


这里写目录标题

  • 一、知识点梳理
    • 1、接口抓包需要具备的能力
    • 2、接口抓包原理
  • 二、Charles 基础使用
  • 三、charles抓包分析
  • 四、Charles 使用
    • 1、过滤:Filter、Focus
    • 2、重发:Repeat、Repeat Advanced
    • 3、修改请求:Compose
    • 4、弱网:Throttle Settings
  • 五、Web 抓包练习
  • 六、App 抓包练习
  • 七、Mock 测试
    • 1、什么是 Mock 测试
    • 2、Mock 测试的价值与场景
    • 3、使用 Charles 完成 Mock 测试
    • 4、Rewrite练习
    • 5、Map Local练习
      • 1、选择要mock的接口,鼠标右键,save Response,修改响应数据
      • 2、鼠标右键,选择Map Local,进入设置界面,自动填写接口url相关数据,选择目标的本地数据
      • 3、Tools——Map Local,双击规则可以进入修改界面,勾选enable功能生效
      • 4、新的响应页面
    • 6、Map Remote练习
      • 1、选择要mock的接口,鼠标右键,选择Map Remote;
      • 2、进入设置界面,自动填写接口url相关数据,选择目标的本地数据,填写要转发的服务器的url信息
      • 3、Tools——Map Local,双击规则可以进入修改界面,勾选enable功能生效
      • 4、新的响应页面

一、知识点梳理

如何定位 Bug 是前端产生还是后端产生的?
没有接口文档的时候,如何获取接口信息?

1、接口抓包需要具备的能力

代理功能:HTTP/HTTPs、SOCKS5。
请求模拟工具:拼装请求、重放请求,重复请求。
网络环境模拟:限速、超时、返回异常。
Mock:请求修改、响应修改。
Fake:用测试环境替代真实环境。

2、接口抓包原理

在这里插入图片描述

二、Charles 基础使用

工具准备

Charles 安装
电脑端基础配置与证书配置完成
mumu 模拟器抓包配置完成

参考帖子:https://ceshiren.com/t/topic/21956

三、charles抓包分析

抓取接口数据

Overview:接口的大体情况
Content:请求信息和响应信息
上半部分:请求,请求头信息,请求参数,cookie
下半部分:响应,响应头信息,响应体(不同格式)

Summary:响应时间
Chart:图标形式的资源情况展示
Notes:写一些记录
在这里插入图片描述

四、Charles 使用

1、过滤:Filter、Focus

在这里插入图片描述

2、重发:Repeat、Repeat Advanced

在这里插入图片描述

3、修改请求:Compose

在这里插入图片描述

4、弱网:Throttle Settings

在这里插入图片描述

五、Web 抓包练习

抓取雪球搜索接口数据
在这里插入图片描述
当有多个接口时,可以通过ctrl+f查找特定的接口,如下图

在这里插入图片描述

在这里插入图片描述

查看接口响应状态码与使用的协议版本
在这里插入图片描述

查看请求参数与 json 格式的响应内容
在这里插入图片描述

编辑请求参数,把搜索内容替换为自己的名字,重新发送请求,查看响应内容
在这里插入图片描述

快速过滤雪球域名的接口
在这里插入图片描述

六、App 抓包练习

抓取雪球搜索接口数据
在这里插入图片描述

查看请求参数与 json 格式的响应内容
在这里插入图片描述

设置重发 10 次,并发数量为 2,延迟时间为 500ms
在这里插入图片描述
在这里插入图片描述

进行弱网测试,选择弱网模式为 256 kbps

在这里插入图片描述

七、Mock 测试

1、什么是 Mock 测试

在测试活动中,对于某些不容易构造或者不容易获取的比较复杂的数据/场景,用一个虚拟的对象(Mock对象)来创建用于测试的测试方法。
在这里插入图片描述

2、Mock 测试的价值与场景

价值:
不依赖第三方数据。
节省工作量。
节省联调。

场景:
前后端数据交互。
第三方系统数据交互。
硬件设备解耦。
边界值测试。

在这里插入图片描述

3、使用 Charles 完成 Mock 测试

Rewrite:动态修改请求和响应中的数据;适用于全局修改或者修改内容简单的场景
Map Local:对响应体进行复杂修改
Map Remote:修改要访问的服务器地址;App 测试中,可以不用重新打包直接修改测试环境

使用雪球行情自选设置–股价提醒列表的接口。
Rewrite:
把列表中第一个股票名称改为自己的名字。
把列表中第二个股票的代码改为 hogwarts。

4、Rewrite练习

使用雪球设置热股榜列表的接口。
Rewrite:
把列表中第一个热股名称改为自己的名字。
把列表中第二个热股名称改为其他的名字。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
匹配所有以.json结尾的请求,下图所示
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5、Map Local练习

使用雪球设置热门新闻列表的接口。
在这里插入图片描述

Map Local:
把列表中第一个热股名称改为自己的名字。
把列表中第二个热股名称改为其他的名字。

1、选择要mock的接口,鼠标右键,save Response,修改响应数据

2、鼠标右键,选择Map Local,进入设置界面,自动填写接口url相关数据,选择目标的本地数据

在这里插入图片描述

3、Tools——Map Local,双击规则可以进入修改界面,勾选enable功能生效

在这里插入图片描述

4、新的响应页面

在这里插入图片描述

6、Map Remote练习

使用百度搜索接口。
Map Remote:
把接口重定向到搜狗接口上。
百度会展示警告弹窗,注意 Charles 中抓到的接口数据

在这里插入图片描述

1、选择要mock的接口,鼠标右键,选择Map Remote;

2、进入设置界面,自动填写接口url相关数据,选择目标的本地数据,填写要转发的服务器的url信息

在这里插入图片描述

3、Tools——Map Local,双击规则可以进入修改界面,勾选enable功能生效

在这里插入图片描述

4、新的响应页面

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/9702.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

npm包管理器

一、什么是npm Npm(Node Package Manager)是一个用于管理和共享JavaScript代码包的包管理器。它是Node.js的默认包管理工具,也是世界上最大的软件注册表之一。下面从不同的角度来详细介绍Npm包管理器。 1. 功能与用途: 包安装与…

FPGA USB FX2 图片发送试验 驱动CY7C68013A实现 提供2套工程源码和技术支持

目录 1、前言2、我这儿已有的 FPGA USB 通信方案3、CY7C68013A芯片解读和硬件设计FX2 简介SlaveFIFO模式及其配置 4、工程详细设计方案输入测试图片的处理PC上位机发送测试图片图像接收与缓存图像输出显示 5、vivado工程1--LCD输出显示6、vivado工程1--LCD输出显示7、上板调试验…

Labview通过OPC与S1200通信

一、配置PC的IP地址 二、S7-1200的配置 通过博图,在PLC CPU的属 性-常规-保护里勾选“允许从 远程伙伴使用PUT/GET通信 访问 三、新建一个DB1数据块,在DB1里新建一个变量,例如 名称为“ASD”,类型为“Word” 四、右击“DB1”&…

超详细,Pytest自动化测试框架 token全局设置-多套环境使用(实战)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 在做自动化测试时…

MySQL安装部署

目录 1、仓库安装 2、本地安装 3、容器安装 4、源码安装 5、二进制安装 环境:centOS7 1、仓库安装 1、上传安装包 2、解压 mkdir mysql ; tar xf 安装包 -C mysql 3、安装 ls -l mysq1-community* rpm -ivh mysql-community-server-5.7.18-.el7.x86_64.rpm (…

Zookeeper的选举机制

一、概述: Zookeeper的选举机制是它的一项核心功能,用于在分布式系统中选择一个领导者(leader)来处理各种请求和操作。以下是Zookeeper选举机制的一些关键方面: 服务器ID(Server ID)&#xff…

Flutter基础控件

Text:文字 Text("Flutter") Text是最常用也是最基础的,目前学习阶段只用来加载文字数据,更多属性和样式设置请查看源码自己探索。 Button:按钮 ElevatedButton:普通按钮 ElevatedButton(onPressed: () {if (kDebugMode) {print("Elevat…

基于 R 对卫星图像进行无监督 kMeans 分类

一、前言 本文将向您展示如何使用 R 对卫星图像执行非常基本的 kMeans 无监督分类。我们将在 Sentinel-2 图像的一小部分上执行此操作。 Sentinel-2 是由欧洲航天局发射的一颗卫星,其数据可在此处免费访问。 我要使用的图像显示了 Neusiedl 湖的北部(奥地…

matlab用histfit画直方图+拟合曲线

matlab画直方图拟合曲线 成图效果1 数据格式2 绘制步骤3 后话 成图效果 1 数据格式 应该准备一个double的数组,如果是csv或者xlsx直接拖进matlab是table型,这是无法作为绘图参数的 如果是table型,可以使用table2array(data)进行转换 2 绘制…

【MySQL】在Linux下删除和安装MySQL

文章目录 一、前言二、检查、卸载内置环境三、获取mysql官方yum源四、正式安装MySQL服务五、登录MySQL配置my.cnf设置开机启动 一、前言 大家好久不见,今天开始分享关系型数据库Mysql的一些知识。 二、检查、卸载内置环境 2.1 首先使用命令查询当前mysql的运行状…

[Qt 教程之Widgets模块] —— QFontComboBox 字体选择器

Qt系列教程总目录 文章目录 3.2.1 创建 QFontComboBox3.2.2 成员函数1. 书写系统2. 字体过滤器3. 当前字体4. 信号 该控件用于选择字体,在一些软件中经常有类似控件,如下: Microsoft Office: Photoshop: QFontComboB…

聚观早报 | 字节跳动要造机器人;苹果已开发悬空虚拟键盘

今日要闻:字节跳动要造机器人;苹果已开发悬空虚拟键盘;苹果汽车或售价9万美元;全球首例猪心脏移植患者仅存活60天;首款搭载ChatGPT的自行车问世 字节跳动要造机器人 7 月 3 日消息,「机器人」作为未来科技…