day12 接口测试 ——入门→精通→实战(1)
【没有所谓的运气🍬,只有绝对的努力✊】
目录
1、接口测试分类
1.1 内部接口:
1.2 外部接口:
2、目前接口架构设计
2.1、基于SOAP架构,
2.2、基于RPC架构,
2.3、基于RestFul架构,
2.3.1 请求行、请求头、请求体
2.3.2 响应行、响应头、响应体
3、市面上的接口测试工具
4、Jmeter简介、安装、环境变量的配置
5、Jmeter目录介绍
6、Jmeter常用组件
6.1 jmeter常用组件
6.2 顺序:!!!
6.3 作用域:!!!
7、Jmeter执行接口测试
step1:
step2:编写接口测试用例。
step3:使用接口测试工具执行
step4:
8、Jmeter接口测试——案例1
9、Jmeter接口关联
9.1 使用正则表达式实现接口关联
9.2 使用json提取器表达式实现接口关联
10、Jmeter实现业务闭环
11、Jmeter动态参数处理
12、Jmeter断言(见day11 性能测试(3))
13、Jmeter接口测试调试方案
14、CSV参数化处理
15、必须带请求头的接口
16、没有接口文档录制功能操作
17、BeanShell组件
17.1 Jmeter里面有哪些 BeanShell呢?
17.2 内置变量和语法规则
17.2.1 log打印日志
17.2.2 vars表示:JmeterVariables,操作Jmeter变量
18、Jmeter执行数据库操作(Jmeter直连数据库)
18.1 案例:使用jemter从数据库中获取用户名和密码,放入登录接口里面。!!!!!
19、Jmeter非GUI(界面)方式运行
面1:Git和SVN的区别:
面2:详细分析 请求头、请求行、请求体 里面各个字段的含义和内容。
面3:查看结果树里面,取样器结果的各个参数字段含义。
1、接口测试分类
1.1 内部接口:
测试对被测系统各个子模块之间的接口;或被测试系统提供给内部系统使用的接口。(只需测正例)
1.2 外部接口:
1、被测系统调用外部的接口。(只需测正例)
2、系统对外提供的接口。
接口测试重点:
检查接口参数传递的正确性;
接口功能的正确性;
输出结果的正确性;
以及对各种异常情况的容错处理;
以及权限控制;
分页处理;
调用次数的限制;
2、目前接口架构设计
2.1、基于SOAP架构,
基于XML规范。基WebService协议。特点:接口地址以 ?wsdl结尾
2.2、基于RPC架构,
基于dubbo协议,thrift协议,SpringCloud微服务。
2.3、基于RestFul架构,
基于json规范,基于http协议。
RestFul规则:
- 接口地址:http:/127.0.0.1/user,get(查询用户),post(新增用户)put(修改用户),delete(删除用户)
- json数据格式:只有两种数据类型。键值对{key:value}、数组[arr1,arr2]
2.3.1 请求行、请求头、请求体

cookie :客户端→服务器的。

2.3.2 响应行、响应头、响应体

set-cookie:服务器→客户端的 只在第一次请求。
3、市面上的接口测试工具
主流的两种工具:
(1)方式1:Jmeter+Ant+Git+Jenkins
(2)方式2:Postman+Newman+Git+Jenkins
其他工具:soapui 、apipost、fiddler、charies
4、Jmeter简介、安装、环境变量的配置
基于java语言的压力测试工具,可以做接口测试、也可以做性能测试。
安装:jdk1.8以上、配置环境变量。
Jmeter——接口测试、性能测试;
5、Jmeter目录介绍

backups:脚本的备份目录,格式jmx
bin目录:存放jmeter的启动脚本、配置文件、模版文件。
jmeter.bat 启动jmeter
jmeter.properies :核心的配置文件
docs目录:离线的帮助文档。
extras目录:存放第三方的集成构成文件,集成Ant。Jenkins。
lib目录:存放jar包。
licenses目录:许可证文件。
6、Jmeter常用组件
6.1 jmeter常用组件

(1)测试计划。 起点。所有组件的容器。
(2)线程组。 代表一定数量的用户
(3)取样器。 向服务器发送请求的最小单元
(4)逻辑控制器。 结合取样器实现一些复杂的逻辑。
(5) 前置处理器。 在请求之前的工作。
(6)后置处理器。 在请求之后的工作。
(7) 断言。 用于判断请求是否成功。
(8)定时器。 负责在请求之间的延迟间隔,固定,高斯,随机。
(9)配置元件。 配置信息
(10)监听器。 负责收集结果。
6.2 顺序:!!!
测试计划→线程组→配置元件→前置处理器→定时器→取样器→后置处理器→断言→监听器
6.3 作用域:!!!
必须组件:测试计划、线程组、取样器。
辅助组件:除了必须组件外。
辅助组件作用于父组件,同级组件,以及同级组件下的所有子组件。
7、Jmeter执行接口测试
step1:
拿到api接口文档(Fiddler抓包)、熟悉接口业务、接口地址、鉴权方式、入参、出参、错误码。
step2:编写接口测试用例。
测试思路:
正例:输入正常的入参、查看接口成功返回。
反例:
鉴权:空、错误、鉴权过期、鉴权次数限制.......
参数:空、类型错误、长度错误、错误码的覆盖。
其他:黑名单、分页、
step3:使用接口测试工具执行
step4:
Jmeter + Ant + Git + Jenkins 实现持续集成输出接口测试报告,通过电子邮件发送。
8、Jmeter接口测试——案例1
目前市面上的鉴权码获取方式:
(1)通过接口获取,appid、secret
(2)登陆之后自动生成。username、password
案例:
1、登录接口,获取token
2、创建用户接口,传入token和其他参数










9、Jmeter接口关联
9.1 使用正则表达式实现接口关联

9.2 使用json提取器表达式实现接口关联


10、Jmeter实现业务闭环
增、改、删、查。
11、Jmeter动态参数处理
随机数字:${__Random(10000,99999,)}
随机字符串:${__RandomString(6,abcdefg1234567,)}
上述随机的数值,可以通过函数助手得到。



12、Jmeter断言(见day11 性能测试(3))
更加详细:day11 性能测试(3)——Jmeter 断言+关联-CSDN博客
13、Jmeter接口测试调试方案
1、通过【查看结果树】里面的请求信息和响应信息。
2、使用【调试取样器】。
3、Jmeter 结合Fiddler实现调试。(在没有接口文档,只能通过抓包去获取。)
14、CSV参数化处理
login.csv文件准备

读取csv文件




15、必须带请求头的接口

添加HTTP信息头管理器:




16、没有接口文档录制功能操作
1、如果没有接口文档的情况下,可以使用Jmeter的脚本录制的功能。
2、使用Jmeter自带的http代理服务器实现。(把Jmeter作为代理)
(1)设置端口、设置存放的位置。
(2)设置本机的代理请求。



17、BeanShell组件
BeanShell 是一种完全符合java语法规则的脚本语言。
java包括:javase、javaee、javame。
17.1 Jmeter里面有哪些 BeanShell呢?
(1) 前置处理器:Beanshell 预处理程序。
(2)定时器:BeanShell
(3)采样器BeanShell
(4)后置处理器:BeanShell
(5)断言:BeanShell
(6)监听器:BeanShell
17.2 内置变量和语法规则
17.2.1 log打印日志

17.2.2 vars表示:JmeterVariables,操作Jmeter变量
(1)用户定义的变量
(2)正则表达式提取的变量、JSON提取器提取的变量
【BeanShell里面 获取变量】

【BeanShell里面 设置变量】必须在一个线程组里面使用。





18、Jmeter执行数据库操作(Jmeter直连数据库)
1、准备数据库驱动包:Jmeter直连数据库,jar包下载-CSDN博客
2、放到jmeter里面的 lib/ ext 目录里面
3、新建 JDBC connection (详细见:day11 性能测试(4)——Jmeter使用(黑马的完结,课程不全)直连数据库+逻辑控制器+定时器-CSDN博客)
4、新建 JDBC request
18.1 案例:使用jemter从数据库中获取用户名和密码,放入登录接口里面。!!!!!









19、Jmeter非GUI(界面)方式运行

面试题,下面的面试题,是在视频课里面,老师提到的,说有的面试可能会被问到这些细节。有时间我再整理。
面1:Git和SVN的区别:
主要有以下几个方面:
(1)版本控制方式:
①git是分布式版本控制系统。每个开发者的计算机上都有一个项目的完整副本,包含所有分支和版本历史。开发者可以在本地进行多数操作,如提交、创建分支和合并分支等,不依赖网络连接。
②svn是集中式版本控制系统。所有的历史版本都保存在中央服务器上,开发者需要依赖中央服务器来获取历史版本信息。
(2)数据存储方式:
git存储每个文件的内容和变更记录,优化存储且克隆时通过比较快。它使用SHA-1哈希算法确保代码完整性。
svn按照原始文件存储,体积较大,且所有资源控制在.svn中。
(3)适用场景
git更适合需要高灵活性和快速迭代的项目,尤其是处理大型仓库或大量历史记录时更为高效。
svn适用于小型项目或团队。
面2:详细分析 请求头、请求行、请求体 里面各个字段的含义和内容。
面3:查看结果树里面,取样器结果的各个参数字段含义。
相关文章:
day12 接口测试 ——入门→精通→实战(1)
【没有所谓的运气🍬,只有绝对的努力✊】 目录 1、接口测试分类 1.1 内部接口: 1.2 外部接口: 2、目前接口架构设计 2.1、基于SOAP架构, 2.2、基于RPC架构, 2.3、基于RestFul架构, 2.3.1…...
伏羲0.07(文生图)
为了使0.06代码能够有效运行并输出项目目录及所有文件,我们在代码中添加一些额外的功能。 项目目录结构 项目目录结构如下: text_to_image_project/ │ ├── config.yaml ├── data/ │ ├── train_data.csv │ └── test_data.txt ├── mod…...
scala的泛型特质的应用场景
//泛型特质的应用场景 //作比较找出最大值 //定义一个函数,用来求List元素中的最大值参考代码:object Test4 {def getMax[T](list:List[T])(implicit ev:T > Ordered[T]): T {list.reduce((a:T,b:T)> if(a>b) a else b)}def main(args: Array…...
Win10环境vscode+latex+中文快速配置
安装vscodelatex workshop 配置: {"liveServer.settings.donotVerifyTags": true,"liveServer.settings.donotShowInfoMsg": true,"explorer.confirmDelete": false,"files.autoSave": "afterDelay","exp…...
【vue2】el-select,虚拟滚动(vue-virtual-scroller)
需求背景 vue2+element-ui项目中,当el-select中数据量较大时(超出5000个dom节点),会导致页面加载和渲染卡顿、el-select下拉列表延迟展开。 在现在的el-select的基础上使用分页或者虚拟列表的形式去处理大量的下拉菜单,可以保证页面的正常渲染及el-select的…...
【ETCD】[源码阅读]深度解析 EtcdServer 的 processInternalRaftRequestOnce 方法
在分布式系统中,etcd 的一致性与高效性得益于其强大的 Raft 协议模块。而 processInternalRaftRequestOnce 是 etcd 服务器处理内部 Raft 请求的核心方法之一。本文将从源码角度解析这个方法的逻辑流程,帮助读者更好地理解 etcd 的内部实现。 方法源码 …...
【RabbitMQ】RabbitMQ中核心概念交换机(Exchange)、队列(Queue)和路由键(Routing Key)等详细介绍
博主介绍:✌全网粉丝21W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...
【AI知识】过拟合、欠拟合和正则化
一句话总结: 过拟合和欠拟合是机器学习中的两个相对的概念,正则化是用于解决过拟合的方法。 1. 欠拟合: 指模型在训练数据上表现不佳,不能充分捕捉数据的潜在规律,导致在训练集和测试集上的误差都很高。欠拟合意味着模…...
计算机毕设-基于springboot的航空散货调度系统的设计与实现(附源码+lw+ppt+开题报告)
博主介绍:✌多个项目实战经验、多个大型网购商城开发经验、在某机构指导学员上千名、专注于本行业领域✌ 技术范围:Java实战项目、Python实战项目、微信小程序/安卓实战项目、爬虫大数据实战项目、Nodejs实战项目、PHP实战项目、.NET实战项目、Golang实战…...
视图、转发与重定向、静态资源处理
目录 视图 默认视图 视图机制原理 自定义视图 请求转发与重定向 静态资源处理 视图 每个视图解析器都实现了 Ordered 接口并开放出一个 order 属性 可以通过 order 属性指定解析器的优先顺序,order 越小优先级越高 默认是最低优先级,Integer.MAX_…...
优选算法——分治(快排)
1. 颜色分类 题目链接:75. 颜色分类 - 力扣(LeetCode) 题目展示: 题目分析:本题其实就要将数组最终分成3块儿,这也是后面快排的优化思路,具体大家来看下图。 这里我们上来先定义了3个指针&…...
【Linux系统】文件系统
Windows 和 Linux 的文件系统: windows:NTFS —> NTFS:磁盘大于目录:目录是磁盘的一部分。ubuntu :EXT4 —> EXT4: 目录大于磁盘:磁盘是目录的一部分。 Windows文件系统的特点 基于分区的文件系统: Windows…...
javaweb的基础
文章的简介: 页面的展示(HTML)页面的修改、绑定、弹窗(js的dom、bom等)页面的请求(Ajax) 1、在HTML中用标签和css样式实现了浏览器页面。 2、用JS实现页面内容(图片,复选框、文本颜色内容)的修改和弹框&…...
家里养几条金鱼比较好?
金鱼,作为备受喜爱的家庭水族宠物,其饲养数量一直是众多养鱼爱好者关注的焦点。究竟养几条金鱼最为适宜,实则需要综合考量多方面因素,方能达到美观、健康与和谐的理想养鱼境界。 从风水文化的视角来看,金鱼数量有着诸…...
写作词汇积累:差池、一体两面、切实可行极简理解
差池 【差池】可以是名词,是指意外的事或错误。 【差池】也可以是形容词,是指参差不齐、差劲或不行。 1. 由于操作不当,导致这次实验出现了【差池】,我们需要重新分析原因并调整方案。(名词,表示意外的事…...
移远EC200A-CN的OPENCPU使用GO开发嵌入式程序TBOX
演示地址: http://134.175.123.194:8811 admin admin 演示视频: https://www.bilibili.com/video/BV196q2YQEDP 主要功能 WatchDog 1. 守护进程 2. OTA远程升级 TBOX 1. 数据采集、数据可视化、数据上报(内置Modbus TCP/RTU/ASCII,GPS协…...
LEED绿色建筑认证最新消息
关于LEED绿色建筑认证的最新消息,可以从以下几个方面进行概述: 一、认证体系更新与发展 LEED认证体系不断更新和完善,以更好地适应全球绿色建筑的发展趋势。例如,LEED v4能源更新已通过投票,并于2024年3月1日全面启用…...
SpringBoot中集成常见邮箱中容易出现的问题
本来也没打算想写得。不过也是遇到一些坑,就记录一下吧,也折腾了小半天 1.maven配置 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>2…...
webstorm开发uniapp(从安装到项目运行)
1、下载uniapp插件 下载连接:Uniapp Tool - IntelliJ IDEs Plugin | Marketplace (结合自己的webstorm版本下载,不然解析不了) 将下载到的zip文件防在webstorm安装路径下,本文的地址为: 2、安装uniapp插…...
C# 探险之旅:第七节 - 条件判断(三元判断符):? : 的奇妙冒险
嘿,勇敢的探险家们!欢迎来到 C# 编程世界的奇妙之旅的第七节。今天,我们要探索的是一个神秘而强大的宝藏——三元判断符 ? :。别怕,它听起来复杂,但实际上比找宝藏还简单! 场景设定:宝藏的选择…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...
抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...
Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...
AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机
这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机,因为在使用过程中发现 Airsim 对外部监控相机的描述模糊,而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置,最后在源码示例中找到了,所以感…...
