火爆全网,Charles抓包教程-辅助接口测试(二)

news2024/11/15 12:24:47

目录:导读

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


前言

功能图标

D1

从左到右依次是
清除当前会话;
停止记录;
开始限流/停止限流;
开始断点/停止断点;
根据所写内容撰写新请求;
重发选定请求;
工具;
设置;

抓包视图

charles抓包的请求信息可以以两种方式展示,一种是结构化展示,一种是序列化展示

1、结构

D2

结构化展示方式,会以某个网址作为管理根本,然后按照各个请求的路径层级进行分类展示,如上图所示,我们最终要的纯接口

请求实际上是api下的login2

2、序列

D3

序列是按照抓到的请求逐个排列的,一行就是一个,每一列都代表着不同的含义

3、请求信息查看

D4

在请求发起信息中的一些标签含义:
标头:请求header信息
文本:请求参数的文本形式
十六进制:请求参数的十六进制形式
表单:请求参数的表单形式
原始数据:请求发起的所有信息,在这里可以看到请求发起的所有信息

在请求响应信息中的一些标签含义:
标头:服务器响应的header信息
文本:响应内容的文本形式
十六进制:响应内容的十六进制形式
JavaScript:响应内容的js形式
JSON:响应内容的JSON格式形式
JSON文本:响应内容的JSON格式文本形式
原始数据:服务器响应信息的所有内容都在这里

请求过滤

通常情况下我们可能会抓包非常多的请求,那么为了方便我们查找自己的目标请求,可以针对性的设置一些过滤条件

快捷过滤方式

D5

多条件过滤
上方工具栏的代理—记录设置—包括—添加

D6

接口请求调试

1、选中要调试的请求,右键–>撰写

D7

2、修改参数并执行

D8

D9

这种方式也可以理解为篡改请求报文,再次发起请求的方式

断点
断点的意思就是请求发起或者响应时会被暂停,使用者可以根据自己的需求编辑篡改请求报文或者响应报文,以达到不可告人的目的

断点设置
在上方菜单栏代理–>断点设置,点开后添加,添加后当捕获的请求命中设置的各项信息,就会被暂停

D10

执行请求,篡改报文
要么在页面上重新访问,要么再charles里右键请求点击重发,都可以进入编辑报文的界面

D11

D12

接口请求映射

在断点中篡改报文并不是很方便,每次都得改,那么为了一劳永逸的修改某个接口的响应信息,可以通过接口映射的方式,将指定接口的响应信息指向我期望的本地文件或者远程接口

本地映射

本地映射的意思就是将某个接口的响应内容指向本地文件,因此我们先创建一个本地文件,针对码同学全栈接口项目的

登录接口做本地映射,创建一个txt文件,写入如下内容,这内容里改了响应信息中的code是500:

{"code":"500","message":"success","data":"04cec0658e9a4e55906bdd37416e2841"}

设置本地映射:在上方菜单栏工具–>本地映射

D13

然后重发(回放)目标接口,查看响应

D14

远程映射
先来看一个场景

“app在线上出现了问题,你想测下在测试环境是否有问题,其实就是你想用线上的包发请求时不要发线上,发到测试环境。或者 有个app需要测试,测试环境已经测试完成,需要到灰度环境测试。但是,现在没有灰度环境对应的app,那怎么办”

有两种方法能解决:
一种是让开发给你重新打包,把里面请求线上的地址换成测试的地址;
另一种是在charles里做域名映射 如果开发忙没有时间给你打包,那我们就可以直接在charles里域名映射

域名映射
设置远程映射:在上方菜单栏工具–>远程映射

D15

访问原域名都会去访问目标域名了

重写

重写功能适合对某一类网络请求进行一些正则替换,以达到修改结果的目的。
可以重写接口所有元素的内容:header、host、url、path、query param、response status、body.

比如我要模拟响应状态码的异常情况:在上方菜单栏工具–>重写
添加一个规则

D16

添加匹配请求

D17

添加重写规则

D18

确定以后,在页面访问,登录接口响应状态码会被改成500

D19

除了针对响应状态码,其他接口的信息也可以被重写,可以在重写规则那里进行选择

D20

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

人生犹如航行深海,勇敢迎接每一次风浪挑战。蓬勃拼搏的力量将助你驶向辉煌彼岸。厚积薄发,坚守初心,不屈不挠,绽放梦想之光。相信自己,奋斗无畏。

拥抱梦想,放飞心灵,在追求中绽放。奋斗是燃烧的火焰,努力是前行的动力。不畏困难,勇往直前,执着追求自己的价值与意义,成就不凡的未来之路。

每个黎明都是新的起点,每次尝试都是成长的契机。披荆斩棘,不忘初心,打破束缚,勇往直前。坚信自己,释放潜能,只有拼搏奋斗,方能绽放出人生最璀璨的光芒,创造属于自己的辉煌!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mysql综合练习语法总结

mysql综合练习 用于 小白练手的主要用于以后语法忘了回来看 题目 # 1、创建数据库test01_library # 2、创建表 books,表结构如下:# 3、向books表中插入记录 # 1)不指定字段名称,插入第一条记录 # 2)指定所有字段名…

经典的数组和指针结合的OJ题

一、合并两个有序数组 leetcode链接 题目描述: 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递…

seata组件使用期间,获取全局事务状态

GlobalStatus枚举类展示全局事务状态 官网链接:http://seata.io/zh-cn/docs/user/appendix/global-transaction-status.html 获得全局事务状态 // 开启全局事务地方获取全局事务xid String xid RootContext.getXID(); // 通过全局事务xid获得GlobalStatus枚举类 …

Transformer 论文学习笔记

重新学习了一下,整理了一下笔记 论文:《Attention Is All You Need》 代码:http://nlp.seas.harvard.edu/annotated-transformer/ 地址:https://arxiv.org/abs/1706.03762v5 翻译:Transformer论文翻译 特点&#xff1…

【Qt】利用Tool Button控件创建下拉菜单按钮

功能描述 利用qt进行界面设计和开发,创建下拉按钮。 详细实现 1、在qt侧工具栏利用设计打开.ui文件 2、创建按钮 创建一个Tool Button按钮,并在属性窗口中的QToolButton栏中选中MenuButtonPopup属性。 3、创建action 在Action编辑器创建对应的ac…

Dual pyramid GAN for semantic image synthesis

为了解决在图像合成时候小物体容易消失,大物体经常作为块的拼接来生成的。本文提出DP-GAN在所有尺度下共同学习空间自适应归一化模块的条件。这样尺度信息就会被双向使用,他统一了不同尺度的监督。(重点看图和代码) SPADE模块解释 GAN在生成包含许多不同…

JavaScript学习 -- 对称加密算法DES

在现代的互联网时代,数据安全性备受关注。为了保护敏感数据的机密性,对称加密算法是一种常用的方法。在JavaScript中,DES(Data Encryption Standard)是一种常用的对称加密算法。本篇博客将为您展示如何在JavaScript中使…

npm i 报错项目启动不了解决方法

1.场景 在另一台电脑低版本node环境跑的react项目,换到另一台电脑node18环境执行npm i时候报错 2.解决方法 脚本前加上set NODE_OPTIONS--openssl-legacy-provider

使用稀疏性(微球)进行色谱图基线估计和去噪(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

okvis

论文 Keyframe-Based Visual-Inertial SLAM Using Nonlinear Optimization 摘要 由于两种感知模式的互补性,视觉和惯性线索的融合在机器人中变得很流行。虽然迄今为止大多数融合策略都依赖于过滤方案,但视觉机器人界最近转向了非线性优化方法&#x…

Kafka的零拷贝

传统的IO模型 如果要把磁盘中的某个文件发送到远程服务器需要经历以下几个步骤 (1) 从磁盘中读取文件的内容,然后拷贝到内核缓冲区 (2) CPU把内核缓冲区的数据赋值到用户空间的缓冲区 (3) 在用户程序中调用write方法,把用户缓冲区的数据拷贝到内核下面…

树莓派上安装cmake

前言 记录一下在树莓派上安装cmake,因为之间安装出了点问题,但是后面解决了,于是记录一下。 直接安装报大红,看的我心里一颤 废话不多说,接下来上操作步骤 网上有的教程让wget下载压缩包,但是咱们就是不知道为啥我这样操作就是也报错,但是我感觉原理上是🆗的,并且…

Qt状态栏

QStatusBar QStatusBar* stBar statusBar();QLabel* lb1 new QLabel("标签1"); //lb1->setAlignment(Qt::AlignLeft); //左对齐QLabel* lb2 new QLabel("标签2");QLineEdit* edit new QLineEdit("edit");QPushButton* btnOpe…

Java程序逻辑控制(三种基本结构(顺序、分支、循环)、输入输出、循环输入)

目录 一、顺序结构 二、分支结构 1、 if 语句 2、switch 语句 与C语言不同,不能作为switch参数的类型:float double long boolean 三、循环结构 1.while循环 2.for循环 四、输入输出 1.输出 - 将结果显示打印到屏幕上 2.输入 3.输入输出综合…

用友畅捷通T+服务器数据库中了locked勒索病毒怎么办,如何处理解决

计算机技术的发展,也为网络安全埋下隐患,其中勒索病毒攻击已经成为企业和组织面临的严重威胁之一。作为一款被广泛使用的企业资源管理软件,用友畅捷通T系统也成为黑客攻击的目标之一。近期,我们收到很多企业的求助,公司…

Shell脚本实现分库分表操作

目录 一,分库备份 二,分库操作 三,分库分表备份 四,备份还原 一,分库备份 #!/bin/bash mysql_cmd-uroot -pzly666666 bak_path/backup/db [ -d ${bak_path} ] || mkdir -p ${bak_path}mysql ${mysql_cmd} -e show…

【CNN-BiLSTM-attention】基于高斯混合模型聚类的风电场短期功率预测方法(Pythonmatlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

FFmpeg 音视频开发工具

目录 FFmpeg 下载与安装 ffmpeg 使用快速入门 ffplay 使用快速入门 FFmpeg 全套下载与安装 1、FFmpeg 是处理音频、视频、字幕和相关元数据等多媒体内容的库和工具的集合。一个完整的跨平台解决方案,用于录制、转换和流式传输音频和视频。 官网:http…

Informer 论文学习笔记

论文:《Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting》 代码:https://github.com/zhouhaoyi/Informer2020 地址:https://arxiv.org/abs/2012.07436v3 特点: 实现时间与空间复杂度为 O ( …

LaTex4【下载模板、引入文献】

下载latex模板:(模板官网一般都有,去找) 我这随便找了一个: 下载得到一个压缩包,然后用overleaf打开👇: (然后改里面的内容就好啦) 另外,有很多在线的数学公式编辑器&am…