测试第四课---------性能测试工具
作者前言
🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂
🎂 作者介绍: 🎂🎂
🎂 🎉🎉🎉🎉🎉🎉🎉 🎂
🎂作者id:老秦包你会, 🎂
简单介绍:🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂
喜欢学习C语言、C++和python等编程语言,是一位爱分享的博主,有兴趣的小可爱可以来互讨 🎂🎂🎂🎂🎂🎂🎂🎂
🎂个人主页::小小页面🎂
🎂gitee页面:秦大大🎂
🎂🎂🎂🎂🎂🎂🎂🎂
🎂 一个爱分享的小博主 欢迎小可爱们前来借鉴🎂
性能测试工具
- **作者前言**
- jmeter
- jmeter基础配置
- jmeter的使用
- jmeter线程组界面
- HTTP请求默认值
- HTTP信息头管理器
- json提取器
- 用户定义的变量
- Json断言
- 同步定时器
- 事务控制器
- CSV数据⽂件设设置
- jmeter插件
- 梯度压测线程组Stepping Thread Group
- 性能测试报告
jmeter
这是一个性能测试工具,具体的安装过程可以网上寻找,这里就不过多介绍了
jmeter基础配置
第一步找到如下文件

然后点击修改里面的内容,如图

可以永远使用jmeter的中文版
jmeter的使用
第一步打开软件

进入软件后。会看见如下界面:

第二步右键如下:

创建一个线程组,然后右键线程组。在“线程组”下添加“HTTP”取样器,如下:

然后看到如下界面:

下面我们进行测试一下接口,前面我们写过个人博客测试报告。我们就使用这个登入接口,首先找到对


下面我们借助一些postman软件来进行测试,
首先我们输入账号密码区访问这个接口,看看这个接口返回的数据是啥如下:


上面的操作,是在输入错误的密码返回的数据,下面我们借助postman来进行:
如下:

可以看到返回的数据,下面我们使用jmeter来进行操作一下:

运行之后,会提示我们保存,
在postman 中,我们发送请求就会看到结果,而在jmeter需要我们添加结果树,如下:

我们点击运行,然后查看对应的结果树 结果如下:

以上就是jmeter的大致使用
jmeter线程组界面

HTTP请求默认值
创建:

在请求页面的时候,会发现协议+ip+端口号是不变的,在我们创建多个线程访问该页面时,就需要重新配置,很麻烦,所以我们可以进行修改http请求默认值来减少我们配置信息,
如图:

这就是配置出来的一个http请求默认值,
HTTP信息头管理器
这个主要就是lmeter的一个配置元件, 里面可以添加对应的请求头的数据。
如图:

json提取器
在发送请求的时候,往往是需要请求头的,有些请求头的数据是上一个接口返回的数据,而这些数据是改变的,这就需要我们进行提取。

下面我们进行练习一下:
首先我们需要对选择如下:
然后进行点击对应的登入,查看对应的json数据,可以看出

然后输入对应的表达式,如图进行查找出对应的数据

流程:
首先创建出json提取器,分别写入变量名和提取的数据(json表达式)

这里的提取会在同级目录下的所有返回的json数据去寻找,不单单是只找一部分,但是一些情况就是多个请求返回的数据有相同的,就会把最新的数据覆盖旧的,所以说,我们要提取哪个请求的数据,就把该json提取器放入对应要提取的目录下:如图:

然后在需要使用的地方引入变量名,写法:
${变量名}
如图:

用户定义的变量
添加⽅式:线程组—配置元件—⽤⼾定义的变量

当我们访问到博客列表的时候,会有许多的文章,每个文章对应有各自的id,如果需要访问对应的文章,只需修改id就行,可是如果手动的一个个的修改,很不现实,所以我们可以创建id变量,然后使用就行,
注意:json提取定义的变量不能和用户定义的变量名相同,也不能更改json定义的变量(修改不了)
如图:

Json断言
接⼝发送请求成功,响应码为200并不能完全代表接⼝请求成功,我们更多需要关注接⼝响应数据是否
符合预期

配置:

同步定时器
为了达到并发的效果,需要添加同步定时器

在没有添加同步定时器时,线程时谁准备好谁开始的,并不是并发,如图:

当我们设置同步定时器,就有如下:

注意**,如果设置的等待线程数量大于实际的线程的数量或者实际线程数量不是等待线程数量的整数倍,就会一直等待**
还有一种情况就是准备好的线程数量大于需要等待的线程数量,准备好的线程数量就会全部发出,这种清空也会导致最后一次等待过程,线程数量小于需要等待的线程数量,导致一直等待,
需要我们把循环执行点击上永远,只需循环到最后能执行完为止.
事务控制器
JMeter事务控制器的作⽤主要⽤于测试执⾏嵌套测试元素所花费的总时间。这相当于模拟⽤⼾进⾏⼀系列操作的测试

注意:若不添加事务控制器,则⼀个接⼝即⼀个事务。
添加了事务控制器后,可以将多个接⼝统⼀放到⼀个事务控制器下作为⼀个事务
使用:

可以看到把详情页2和博客详情页放在了同一个事务控制器下,变成了一个事务.
然后我们点击聚合报告,
如下:

一个事务的完成时需要详情页2和博客详情页都完成一次,
CSV数据⽂件设设置
添加⽅式:线程组⸺配置元件⸺CSV数据⽂件设置

操作:

读取方式,是一行行读取的,然后我们在登入接口的请求参数设置如下:

我们创建的csv文件的编码格式一定要和设置的一样,否则是访问不到的
jmeter插件
下载Jmeter插件功能:
https://jmeter-plugins.org/install/Install/



然后重启jmeter,下面点击下载两个插件

下载这两个插件

梯度压测线程组Stepping Thread Group
在真实企业压测场景中,我们通常为⼀点⼀点的逐步增加线程数,因此需要安装新的插件来⽀持线程
数的配置


This group will start:启动多少个线程,同线程组中的线程数
First, wait for:等待多少秒才开始压测,⼀般默认为0
Then start:⼀开始有多少个线程数,⼀般默认为0
Next,add:下⼀次增加多少个线程数
threads every:当前运⾏多⻓时间后再次启动线程,即每⼀次线程启动完成之后的的持续时间;
using ramp-up:启动线程的时间;若设置为5秒,表⽰每次启动线程都持续5秒
如图:

thenhold loadfor:线程全部启动完之后持续运⾏多⻓时间
finally,stop/threadsevery:多⻓时间释放多少个线程;若设置为5个和1秒,表⽰持续负载结束之后
每1秒钟释放5个线程
图像意思:

性能测试报告
JMeter测试报告是⼀个全⾯⽽详细的⽂档,它提供了关于测试执⾏结果的详细信息,帮助⽤⼾全⾯评
估系统的性能并进⾏性能优化
Jmeter -n -t 脚本⽂件 -l ⽇志⽂件 -e -o ⽬录
-n : ⽆图形化运⾏
-t : 被运⾏的脚本
-l : 将运⾏信息写⼊⽇志⽂件,后缀为jtl的⽇志⽂件
-e : ⽣成测试报告
-o : 指定报告输出⽬录
相关文章:
测试第四课---------性能测试工具
作者前言 🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂 🎂 作者介绍: 🎂🎂 🎂 🎉🎉🎉…...
frp远程穿透配置
文章目录 准备工作服务端配置(toml)客户端配置(toml)访问内网服务使用ini文件配置 frp是一个高性能的反向代理应用,用于将位于内网的服务通过代理暴露到公网。以下是其基本使用步骤: 准备工作 拥有一台具有公网IP的服务器,作为frp的服务端。…...
【C++】新手入门指南(下)
文章目录 前言 一、引用 1.引用的概念和定义 2.引用的特性 3.引用的使用 4.const引用 5.指针和引用的关系 二、内联函数 三、nullptr 总结 前言 这篇续上篇的内容新手入门指南(上),继续带大家学习新知识。如果你感兴趣欢迎订购本专栏。 一、…...
Linux系统编程 day9 SIGCHLD and 线程
SIGCHLD信号 只要子进程信号发生改变,就会产生SIGCHLD信号。 借助SIGCHLD信号回收子进程 回收子进程只跟父进程有关。如果不使用循环回收多个子进程,会产生多个僵尸进程,原因是因为这个信号不会循环等待。 #include<stdio.h> #incl…...
前后端分离项目在未部署条件下如何跨设备通信
其实我此前也不知道这个问题怎么解决,也没有想过—因为做的项目大部分都是前后端分离的,前端直接用后端的部署好的环境就行了。最近也是有点心高气傲开始独立开发,一个人又写前端又写后端也是蛮累的,即使有强有力的cursor也很累很…...
基于Python的多光谱遥感数据处理与分类技术实践—以农作物分类与NDVI评估为例
多光谱遥感数据包含可见光至红外波段的光谱信息,Python凭借其丰富的科学计算库(如rasterio、scikit-learn、GDAL),已成为处理此类数据的核心工具。本文以Landsat-8数据为例,演示辐射校正→特征提取→监督分类→精度评…...
vscode python 代码无法函数跳转的问题
TL; DR; python.languageServer 配置成了 None 导致 vscode python 代码无法函数跳转 详细信息 mac 环境下 vscode 正常 command 鼠标左键 可以跳转到定义或者使用位置,但是我的为何不知道失效了 我一开始以为是热键冲突,结果发现 mac 好像没办法定…...
SAS宏核心知识与实战应用
1. SAS宏基础 1.1 核心概念 1.1.1 宏处理器 宏处理器在SAS程序运行前执行,用于生成动态代码,可实现代码的灵活定制。 通过宏处理器,可基于输入参数动态生成不同的SAS代码,提高代码复用性。 1.1.2 宏变量 宏变量是存储文本值的容器,用&符号引用,如&var,用于存储…...
Unity 脚本使用(二)——UnityEngine.AI——NavMesh
描述 Singleton class 用于访问被烘培好的 NavMesh. 使用NavMesh类可以执行空间查询(spatial queries),例如路径查找和可步行性测试。此类还允许您设置特定区域类型的寻路成本,并调整寻路和避免的全局行为。 静态属性࿰…...
从项目真实场景中理解二分算法的细节(附图解和模板)
遇到一个真实场景里使用二分算法的问题,本以为可以放心交给小师弟去做,结果出现了各种问题,在此梳理下二分算法的核心思想和使用细节。 文章目录 1.场景描述2.场景分析3.二分算法的精髓3.1 核心模板3.2 二分过程图解3.3 各种区间写法3.3.1 闭…...
金融图QCPFinancial
QCPFinancial 是 QCustomPlot 中用于绘制金融图表(如蜡烛图/K线图)的核心类。以下是其关键特性的详细说明: 一、主要属性 属性类型说明dataQSharedPointer<QCPFinancialDataContainer>存储金融数据的数据容器chartStyleQCPFinancial:…...
Jetson Orin NX 16G 配置GO1强化学习运行环境
这一次收到了Jrtson Orin NX, 可以进行部署了。上一次在nano上的失败经验 Jetson nano配置Docker和torch运行环境_jetson docker-CSDN博客 本次的目的是配置cuda-torch-python38环境离机运行策略。 Jetson Orin NX SUPER 1. 烧录镜像 参考链接在ubuntu系统中安装sdk manag…...
文档管理 Document Management
以下是关于项目管理中 文档管理 的深度解析,结合高项(如软考高级信息系统项目管理师)教材内容,系统阐述文档管理的理论框架、核心流程及实战应用: 一、文档管理的基本概念 1. 定义 文档管理是对项目全生命周期中产生的各类文档进行规范化管理的过程,包括创建、存储、版…...
【Pandas】pandas DataFrame truediv
Pandas2.2 DataFrame Binary operator functions 方法描述DataFrame.add(other)用于执行 DataFrame 与另一个对象(如 DataFrame、Series 或标量)的逐元素加法操作DataFrame.add(other[, axis, level, fill_value])用于执行 DataFrame 与另一个对象&…...
Linux 内核中 cgroup 子系统 cpuset 是什么?
cpuset 是 Linux 内核中 cgroup(控制组) 的一个子系统,用于将一组进程(或任务)绑定到特定的 CPU 核心和 内存节点(NUMA 节点)上运行。它通过限制进程的 CPU 和内存资源的使用范围,优…...
Windows 同步-互锁变量访问
互锁变量访问 应用程序必须同步对多个线程共享的变量的访问。 应用程序还必须确保对这些变量的作以原子方式执行(完全或根本不执行)。 对正确对齐的 32 位变量的简单读取和写入是原子作。 换句话说,你最终不会只更新变量的一部分;所有位都以…...
深度学习3.5 图像分类数据集
%matplotlib inline import torch import torchvision from torch.utils import data from torchvision import transforms from d2l import torch as d2l代码执行流程图 #mermaid-svg-WWhBmQvijswiICpI {font-family:"trebuchet ms",verdana,arial,sans-serif;font-…...
js原型链prototype解释
function Person(){} var personnew Person() console.log(啊啊,Person instanceof Function);//true console.log(,Person.__proto__Function.prototype);//true console.log(,Person.prototype.__proto__ Object.prototype);//true console.log(,Function.prototype.__prot…...
从M个元素中查找最小的N个元素时,使用大顶堆的效率比使用小顶堆更高,为什么?
我们有一个长度为 M 的数组,现在我们想从中找出 最小的 N 个元素。例如: int a[10] {12, 3, 5, 7, 19, 0, 8, 2, 4, 10};从中找出 最小的 4 个元素。 正确方法:使用大小为 N 的「大顶堆」 原因分析: 我们想保留最小的 4 个元素…...
【知识】性能优化和内存优化的主要方向
转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ 前言 现在有很多论文,乍一看很高级,实际上一搜全是现有技术的堆砌,但是这种裁缝式的论文依然能发表在很好的会议和期…...
VS Code + GitHub:高效开发工作流指南
目录 一、安装 & 基本配置 1.下载 VS Code 2.安装推荐插件(打开侧边栏 Extensions) 3.设置中文界面(可选) 二、使用 VS Code 操作 Git/GitHub 1.基本 Git 操作(不输命令行!) 2.连接 GitHub(第一次使用) 三、克隆远程仓库到 VS Code 方法一(推荐): 方…...
软件测试之接口测试常见面试
一、什么是(软件)接口测试? 接口测试:是测试系统组件间接口的一种测试方法 接口测试的重点:检查数据的交换,数据传递的正确性,以及接口间的逻辑依赖关系 接口测试的意义:在较早期开展,在软件开发的同时…...
发送百度地图的定位
在vuephp写的聊天软件项目中,增加一个发送百度地图的定位功能 在 Vue PHP 的聊天软件中增加发送百度地图定位功能,需要从前端定位获取、地图API集成、后端存储到消息展示全流程实现。以下是详细步骤: 一、前端实现(Vue/Uni-app…...
11、Refs:直接操控元素——React 19 DOM操作秘籍
一、元素操控的魔法本质 "Refs是巫师与麻瓜世界的连接通道,让开发者能像操控魔杖般精准控制DOM元素!"魔杖工坊的奥利凡德先生轻抚着魔杖,React/Vue的refs能量在杖尖跃动。 ——以神秘事务司的量子纠缠理论为基,揭示DOM…...
uniapp-商城-33-shop 布局搜索页面以及u-search
shop页面上有一个搜索,可以进行商品搜索,这里我们先做一个页面布局,后面再来进行数据i联动。 1、shop页面的搜索 2、搜索的页面代码 <navigator class"searchView" url"/pagesub/pageshop/search/search"> …...
npm的基本使用安装所有包,安装删除指定版本的包,配置命名别名
npm的基本使用安装所有包,安装删除指定版本的包,配置命名别名 安装所有依赖指定版本安装/删除包给 npm 脚本配置“命令别名(自定义命令)” ✅ 一、安装所有包(恢复依赖) 如果项目中已经存在 package.json…...
【dataframe显示不全问题】打开一个行列超多的excel转成df之后行列显示不全
出现问题如下图: 解决方案~ display.width解决列显示不全 pd.set_option(display.max_columns,1000) pd.set_option(display.width, 1000) pd.set_option(display.max_colwidth,1000) pd.set_option(display.max_rows,1000)...
Windows下Golang与Nuxt项目宝塔部署指南
在Windows下将Golang后端和Nuxt前端项目打包,并使用宝塔面板部署的步骤如下 一、Golang后端打包 交叉编译为Linux可执行文件 在Windows PowerShell中执行: powershell复制下载 $env:GOOS "linux" $env:GOARCH "amd64" go build…...
真实趋势策略思路
该交易策略通过一系列技术指标的计算与逻辑判断,旨在捕捉市场趋势的反转与延续点,以实现盈利。其主要交易逻辑思路可以概括如下: 1. 趋势与动量分析 策略首先利用动量函数计算收盘价的短期(3周期)变化,通过…...
江奇霖惊喜亮相泡泡岛音乐节,新歌首唱+合作舞台燃动现场
2025年4月20日,江奇霖受邀参加2025泡泡岛音乐与艺术节东南站。现场献唱三首歌曲,超5万名观众现场一同感受音乐的魅力。 在泡泡岛SPECIAL SET特别企划舞台中,江奇霖带来新歌的首唱,温暖的旋律如低语倾诉,观众们也纷纷喊…...
