【Linux】一站式教会:Ubuntu(无UI界面)使用apache-jmeter进行压测

在这里插入图片描述

🏡浩泽学编程:个人主页

 🔥 推荐专栏:《深入浅出SpringBoot》《java对AI的调用开发》
              《RabbitMQ》《Spring》《SpringMVC》

🛸学无止境,不骄不躁,知行合一

文章目录

  • 前言
  • 一、Java JDK19安装
  • 二、apache-jmeter安装
  • 三、压测
  • 总结


前言

近期做个SpringBoot项目,打包在电脑的Ubuntu系统上运行,并在Ubuntu内使用Jmeter进行压测,如果大家同样有压测需求可以参考,避坑少走弯路;主要讲诉JDK安装(版本JDK19)、Jmeter(版本5.3)安装使用。


一、Java JDK19安装

无需在意版本,其他版本亦是相同操作,我采用JDK19是因为我打包的SpringBoot项目用的是JDK19,大家在打包运行项目时,如果遇到报错也要注意是不是JDK版本不一致造成的,这里与本篇文章无关,不再赘诉。

前往JDK官网下载需要的JDK版本(注意要linux版本的)
在这里插入图片描述
我的Ubuntu是64位的就下载的是linux版的64位JDK
在这里插入图片描述

下载完毕直接上传到Ubuntu系统上,上传到哪个文件夹无所谓,记住就行。

在这里插入图片描述

可能有些朋友好奇,你这什么软件,怎么能这样操作虚拟机,我使用的是FinallShell软件,给大家看一下界面。随便说一下它是中文的,且支持直接复制粘贴命令,能直接上传下载文件。

在这里插入图片描述
跟JDK压缩包在哪个文件夹下,就在哪个文件夹下执行解压命令:

sudo tar -zxvf jdk-19.0.2-linux-x64.tar.gz

解压完成之后,在/usr/local/目录下创建java文件夹:

sudo mkdir /usr/local/java

将解压出来的文件jdk-19.0.2移动到/usr/local/java目录下:

sudo mv /home/wang/jdk19.0.2/ /usr/local/java/

切换到root用户,打开.bashrc文件配置环境变量,,添加以下代码,保存

切换为root
su打开.bashrc文件
vim .bashrc按i进入编辑模式
i文件最后添加代码
export JAVA_HOME=/usr/local/java/jdk-19.0.2
export JRE_HOME=/usr/local/java/jdk-19.0.2/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin按esc键退出编辑模式,再按输入:
最后输入wq,回车后即为保存退出
:wq

在这里插入图片描述
输入以下命令并回车使其生效:

source .bashrc

测试JDK是否安装成功:

java -version

在这里插入图片描述
安装完毕。

二、apache-jmeter安装

去官网下载apache-jmeter压缩包,上传到Ubuntu系统,如果是.gz压缩包:

压缩包在哪个文件夹下,就在哪个文件夹执行
tar -zxvf 压缩包文件名

压缩包如果是.zip:
在这里插入图片描述

先执行
sudo apt install zip unzip再执行(压缩包在哪个文件夹下,就在哪个文件夹执行)
unzip 压缩包文件名

将加压后文件移到/usr/local文件夹下:

sudo mv /home/wang/apache-jmeter-5.3 /usr/local/

配置环境变量:修改/etc/profile

vim /etc/profile

末尾添加:

export JAVA_HOME=/usr/local/java/jdk-19.0.2
export JRE_HOME=${JAVA_HOME}/jre
export JMETER_HOME=/usr/local/apache-jmeter-5.3
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:${JMETER_HOME}/lib/ext/ApacheJMeter_core.jar:${JMETER_HOME}/lib/jorphan.jar:${JMETER_HOME}/lib/logkit-2.0.jar:$CLASSPATH
export PATH=${JAVA_HOME}/bin:${JMETER_HOME}/bin:$PATH

执行source命令,使修改生效

source /etc/profile

测试Jmeter是否安装成功 :

jmeter --version

在这里插入图片描述

三、压测

没有UI界面如何快速压测呢,这里我是再windows电脑上将配置好的压测保存为first.jmx文件,然后上传到Ubuntu系统上,然后将项目启动后执行。

这里补充一下我启动SpringBoot项目的命令:

java -jar 项目打包文件

压测命令:

 jmeter -n -t /usr/local/apache-jmeter-5.3/bin/first.jmx -l result.jtl
  • -n是指在linux系统上执行压测
  • -t后跟的压测文件路径
  • -l后跟的是保存的压测后的日志文件

成功压测:
在这里插入图片描述
在这里插入图片描述
生成的文件用windows上的jmeter打开就可看到。

要注意这个文件只能在聚合报告打开:
在这里插入图片描述
在这里插入图片描述
然后就可以看到,这里三千次是因我执行了三次压测,每次一千次。
在这里插入图片描述

总结

以上就是Ubuntu(无UI界面)使用apache-jmeter进行压测的全部讲解。

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

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

相关文章

EventStream获得数据流,前端配置获得推送的流

如上图所示,请求一个接口,接口以数据流的方式向客户端推送数据,默认需要消息收集一条,在原来的基础上追加,在create-react-app生成的工程中,如果代理使用了中间件http-proxy-middleware,同时dev…

数据库面试题汇总,助你轻松应对面试!

考虑到最近有些小伙伴准备跳槽,所以更新一些数据库相关的面试题,希望能帮到大家! 一 请写出创建表的基本语法结构? 创建表的基本语法结构如下: CREATE TABLE IF NOT EXISTS 表名(字段名1 字段类型,字段名2 字段类型 …

在springboot中调用openai Api并实现流式响应

之前在《在springboot项目中调用openai API及我遇到的问题》这篇博客中,我实现了在springboot中调用openai接口,但是在这里的返回的信息是一次性全部返回的,如果返回的文字比较多,我们可能需要等很久。 所以需要考虑将请求接口响应…

QT_day4

1.思维导图 2. 输入闹钟时间格式是小时:分钟 widget.cpp #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);id startTimer(1000);flag1;speecher new QTextT…

nginx 配置文件详细介绍

一, nginx 配置文件架构 上一篇 已对 main 全局配置做了详细介绍 本章对剩下的配置文件部分做介绍 二,event 设置 (一)event 相关的配置文件为 配置工作模式以及连接数 (二)具体表现 1&#xff…

c语言经典测试题3

1.题1 int a 248, b 4; int const *c 21; const int *d &a; int *const e &b; int const * const f &a; 请问下列表达式哪些会被编译器禁止? A: *c 32; B: *d 43 C: e&a D: f0x321f 我们来分析一下:const用来修饰变量是想其…

鸿蒙自定义侧滑菜单布局(DrawerLayout)

前言 为了实现安卓中的侧滑菜单布局效果,通过查找鸿蒙的布局控件,发现SideBarContainer控件有点像,但是使用中发现并不是很符合我们的UI交互效果,因此我在鸿蒙中通过自定义布局的方式实现,本文主要介绍该自定义控件如…

kubernetes负载均衡部署

目录 1.新master节点的搭建 对master02进行初始化配置(192.168.88.31) 将master01的配置移植到master02 修改master02配置文件 2.负载均衡的部署 两台负载均衡器配置nginx 部署keepalived服务 所有node节点操作 总结 实验准备: k8s…

Vue3的computed计算属性和watch监视(四)

一、computed计算属性 <template><div class"person">姓:<input type"text" v-model"first_name"><br>名:<input type"text" v-model"last_name"><br><button click"changeFu…

桥模式(Bridge Pattern)

定义 桥模式是一种结构型设计模式&#xff0c;其主要目的是将抽象部分与实现部分分离&#xff0c;使它们可以独立变化。这样可以更灵活地组合不同的抽象部分和实现部分&#xff0c;而不需要修改已有的代码。 桥模式基本结构 桥模式的组成 抽象化&#xff08;Abstraction&am…

rsync工作常用命令总结

文章目录 rsync常用命令总结命令行参数解释两个目录完全一样同步命令怎么知道 rsync 同步了哪些文件工作场景错误总结Rsync进程退出状态: 23 rsync常用命令总结 命令行参数解释 rsync -atcl -pXEogR --delete "/app/static//" "/backup//"这段代码是一…

C++之STL:vetor容器

STL中的序列式容器主要包括 vector 向量容器、list 列表容器以及 deque 双端队列容器。 vector 实现的是一个动态数组。 定义在 <vector> 头文件中。 #include <iostream> #include <vector> using namespace std; int main() {//初始化一个空vectorvecto…

Linux:Jenkins用户权限和管理

1.下载插件 由于Jenkins的默认权限管理并不是很精细所以我们安装一个插件进行权限的一个管理 插件名称为&#xff1a;Role-based Authorization Strategy 安装完插件我们再去配置一下 进入全局安全配置 选择这个Role-Based Strategy策略然后保存 2.创建角色 我们这里主要使…

【C++私房菜】面向对象中的多重继承以及菱形继承

文章目录 一、多重继承1、多重继承概念2、派生类构造函数和析构函数 二、菱形继承和虚继承2、虚继承后的构造函数和析构函数 三、has-a 与 is-a 一、多重继承 1、多重继承概念 **多重继承&#xff08;multiple inheritance&#xff09;**是指从多个直接基类中产生派生类的能力…

C++程序设计学习笔记(二)

系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 例如&#xff1a;第一章 Python 机器学习入门之pandas的使用 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目…

如何基于prompt来构建大模型AI产品?

构建一个基于 prompt 的大型 AI 产品是可能的&#xff0c;尽管 prompt 本身是一个用于基本命令行交互的简单工具。但是&#xff0c;你可以借助它作为用户输入和输出的一种方式&#xff0c;并结合其他技术来实现更复杂的功能。下面是一个基本的步骤指南&#xff1a; 1、确定产品…

MybatisPlus--03--IService、ServiceImpl

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1. IService接口1.1 IService、ServiceImpl 接口的使用第一步&#xff1a;实现basemapper接口第二步&#xff1a;编写service类第三步&#xff1a;编写serviceImpl第…

开发Chrome插件,background.js中log打印未出现在控制台

不同于内容脚本&#xff08;通常命名content.js&#xff09;&#xff0c;在后台脚本&#xff08;通常命名background.js或service-worker.js&#xff09;中console.log并不会在控制台中直接显示。 要查看后台脚本上下文的正确控制台&#xff0c;执行如下步骤&#xff1a; 访问…

蓝桥杯备赛系列——倒计时50天!

蓝桥杯备赛系列 倒计时50天&#xff01; 前缀和和差分 知识点 **前缀和数组&#xff1a;**假设原数组用a[i]表示&#xff0c;前缀和数组用sum[i]表示&#xff0c;那么sum[i]表示的是原数组前i项之和&#xff0c;注意一般用前缀和数组时&#xff0c;原数组a[i]的有效下标是从…

【Python笔记-设计模式】工厂模式

一、说明 (一) 解决问题 提供了一种方式&#xff0c;在不指定具体类将要创建的情况下&#xff0c;将类的实例化操作延迟到子类中完成。可以实现客户端代码与具体类实现之间的解耦&#xff0c;使得系统更加灵活、可扩展和可维护。 (二) 使用场景 希望复用现有对象来节省系统…