jmeter压测工具环境搭建(Linux、Mac)
目录
java环境安装
1、anaconda安装java环境(推荐)
2、直接在本地环境安装java环境
yum方式安装jdk
二进制方式安装jdk
jmeter环境安装
1、jmeter单机安装
启动jmeter
配置环境变量
jmeter配置中文
2、jmeter集群搭建
多台机器部署jmeter集群
单台机器部署jmeter集群
jmeter运行命令
1、常用命令解析
2、更多命令参数
java环境安装
java官网:https://www.java.com/zh-CN/
anaconda官网:Anaconda | The Operating System for AI
jmeter官网:Apache JMeter - Apache JMeter™
1、anaconda安装java环境(推荐)
使用conda安装python环境,有诸多优势 1、不同环境底层SSL库相互隔离,python环境也相互隔离 2、可以快速在一个环境内,切换不同python版本 3、创建/删除环境速度快
tips:如果需要在公司使用anaconda,需要使用公司商业版授权码激活
1、Linux安装anaconda(在线安装)
从官网下载安装包
更多版本可以参考官网文档:Anaconda官网
我这里下载是最新版2023.08
wget https://repo.anaconda.com/archive/Anaconda3-2023.07-2-Linux-x86_64.sh
默认安装路径/root/anaconda3,如果需要指定路径加,-p 安装路径
正常安装一直回车确认,然后一路回车就行
bash Anaconda3-2023.07-2-Linux-x86_64.sh |
然后重新登陆shell
查看版本号,正确返回版本号,说明conda安装成功
conda -V |
2、从conda安装java环境
推荐安装java 8以上版本,我使用的jmeter是5.4版本,低于java 8无法正常运行
使用conda安装的环境,每个环境对应的java版本都是独立的
# 使用conda创建一个名称为jmeter的环境,并且下载java 11版本 conda create -n jmeter openjdk=11 # 查看创建环境是否成功 conda env list # 查看java版本号 conda run -n jmeter java -version |
2、直接在本地环境安装java环境
yum方式安装jdk
在CentOS上安装JDK(Java Development Kit),你可以按照以下步骤进行操作。以下示例将基于OpenJDK进行安装,这是一个常见的开源JDK:
1,更新软件包索引: 打开终端,以root或拥有sudo权限的用户身份执行以下命令来更新软件包索引:
sudo yum update -y
2,安装OpenJDK: 使用以下命令来安装OpenJDK 11(你也可以选择其他版本,如OpenJDK 8或OpenJDK 16):
sudo yum install java-11-openjdk-devel -y
3,验证安装: 安装完成后,可以通过运行以下命令来验证Java的版本:
java -version
如果一切顺利,你应该能够看到安装的Java版本信息。
请注意,如果你有特定需求或对JDK的厂商有要求,你也可以选择安装Oracle JDK或其他JDK版本。安装过程可能会因Linux发行版的不同而有所变化,但基本步骤是相似的。在安装时,请确保你使用了适合你CentOS版本的命令。
二进制方式安装jdk
首先下载java二进制包
oracle jdk下载地址:Java Downloads | Oracle
open jdk下载地址:Archived OpenJDK GA Releases
下载解压
# 下载oracle jdk 22版本压缩包 wget https://download.oracle.com/java/22/latest/jdk-22_linux-x64_bin.tar.gz # 解压文件 tar -zxvf jdk-22_linux-x64_bin.tar.gz # 测试java文件是否可以正常使用,返回版本号说明可以正常使用 jdk-22.0.1/bin/java -version |
添加环境变量
# 编写环境变量文件 vim /etc/profile # 在文件末尾添加这行 # set path for JAVA_HOME export JAVA_HOME=your_java_path/jdk-22.0.1 export PATH=$PATH:$JAVA_HOME/bin |
验证添加的环境变量是否生效
echo $JAVA_HOME
java -version
jmeter环境安装
1、jmeter单机安装
安装jmeter
1、首先需要安装jmeter对应的jdk,5.4版本需要对应jdk8以上
2,安装jmeter,去官网下载最新版的jmeter,我这里下载的是5.4版本的,地址,https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-5.4.2.tgz
直接用wget命令下载
wget https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-5.4.2.tgz
3,然后解压下载多安装包
tar -zxvf apache-jmeter-5.4.2/
启动jmeter
1,进入jmeter的bin目录,运行当前文件夹下的jmeter
运行命令,返回版本号,说明环境没有问题
apache-jmeter-5.4.2/bin/jmeter -v
配置环境变量
1,编辑/etc/profile文件
vim /etc/profile
2、在末尾加上jmeter的安装路径
export PATH=/root/data/apache-jmeter-5.4.2/bin:$PATH
3、刷新环境变量
source /etc/profile
4,验证环境变量
在任意地方输入,返回版本号说明环境变量生效
jmeter -v
jmeter配置中文
1、在jmeter面板上选择
Options --> Choose Language --> Chinese
2、打开jmeter/bin/jmeter.properties,修改字段
language=zh_CN
2、jmeter集群搭建
多台机器部署jmeter集群
1,首先在master跟slave都安装版本一致的jdk跟jmeter
2,master修改文件JMeter.properties文件,修改如下字段
remote_hosts=slave—ip:端口号(默认1099)
3,slave修改文件JMeter.properties文件,修改如下字段
server.rmi.ssl.disable=true
4,在slave上启动jmeter-server,使用命令
nohup .meter-server & ps -ef | grep jmeter-server
5,slave启动成功后,在主节点使用telnet 命令查看端口1888是否开放
telnet slaveip:1888
6,检测端口是否通,不通的话要去防火墙或者云服务器开一下端口
7,主节点使用命令进行压测
jmeter -n -t jmx脚本名称 -R slaveip:1888
单台机器部署jmeter集群
1,jmeter修改文件JMeter.properties
remote_hosts=localhost:1099
2,启动从节点
nohup ./jmeter-server & ps -ef | grep jmeter-server
3,启动时提示时回环地址的,需要在jmeter-server修改Djava.rmi.server.hostname成你的ip地址
#RMI_HOST_DEF=-Djava.rmi.server.hostname=xxx.xxx.xxx.xxx
4,启动压测任务
jmeter -n -t ./perf.jmx -R localhost:1099
5,能够正常请求成功,正常结束就是没有问题的
jmeter运行命令
1、常用命令解析
nohup jmeter -n -t test.jmx -Jthreads=100 -Jramp=10 -Jloop=3000 &
| 命令参数 | 参数解析 | 备注 |
|---|---|---|
| -n | 以非图形用户界面模式(non-GUI mode)运行 JMeter | |
| -t | 指定要运行的 JMeter 测试计划文件(.jmx格式) | |
| -o | 输出测试报告到指定路径,路径必须为一个不存在的文件夹 | 测试结果可以导出到本地网页中查看 |
| -l | 输出测试结果到指定文件,路径必须为一个不存在的文件(.jtl格式) | jtl文件可以导出到聚合报告中查看 |
| -Jthreads | 传递一个用户定义的属性,这里对应jmeter中的线程组 | 通过命令行带上 -J 参数来传递用户属性 |
| -Jramp | 传递一个用户定义的属性,这里对应jmeter中启动时间 | 通过命令行带上 -J 参数来传递用户属性 |
| -Jloop | 传递一个用户定义的属性,这里对应jmeter中的持续时间 | 通过命令行带上 -J 参数来传递用户属性 |
| ${__P(threads,1)} | 定义一个用户定义的属性,这里对应jmeter中的线程组 | 这里定义的默认值是1 |
| ${__P(ramp,1)} | 传递一个用户定义的属性,这里对应jmeter中启动时间 | 这里定义的默认值是1 |
| ${__P(loop,1)} | 传递一个用户定义的属性,这里对应jmeter中的持续时间 | 这里定义的默认值是1 |
jmx脚本中定义用户属性如下

2、更多命令参数
-v, --version打印版本信息并退出-p, --propfile <参数>要使用的 jmeter 属性文件-q, --addprop <参数>附加的 JMeter 属性文件-t, --testfile <参数>要运行的 jmeter 测试(.jmx)文件-l, --logfile <参数>要记录样本的文件-i, --jmeterlogconf <参数> jmeter 日志配置文件(log4j2.xml)-j, --jmeterlogfile <参数> jmeter 运行日志文件(jmeter.log)-n, --nongui以非 gui 模式运行 JMeter -s, --server运行 JMeter 服务器-H, --proxyHost <参数>为 JMeter 设置要使用的代理服务器-P, --proxyPort <参数>为 JMeter 设置要使用的代理服务器端口-N, --nonProxyHosts <参数>设置非代理主机列表(例如*.apache.org|localhost) -u, --username <参数>设置 JMeter 要使用的代理服务器的用户名-a, --password <参数>设置 JMeter 要使用的代理服务器的密码-J, --jmeterproperty <参数>=<值>定义其他 JMeter 属性-G, --globalproperty <参数>=<值>定义全局属性(发送到服务器),例如 -Gport=123或 -Gglobal.properties -D, --systemproperty <参数>=<值>定义其他系统属性-S, --systemPropertyFile <参数>其他系统属性文件-f, --forceDeleteResultFile在开始测试前强制删除现有结果文件和 Web 报告文件夹(如果存在) -L, --loglevel <参数>=<值> [category=]level 例如 jorphan=INFO、jmeter.util=DEBUG 或 com.example.foo=WARN -r, --runremote Start远程服务器(如 remote_hosts 中所定义)-R, --remotestart <参数>启动这些远程服务器(覆盖 remote_hosts)-d, --homedir <参数>要使用的 jmeter 主目录-X, --remoteexit在测试结束时退出远程服务器(CLI 模式)-g,--reportonly <参数>仅从测试结果文件生成报告仪表板-e, --reportatendofloadtests在负载测试后生成报告仪表板-o, --reportoutputfolder <参数>报告仪表板的输出文件夹 |
相关文章:
jmeter压测工具环境搭建(Linux、Mac)
目录 java环境安装 1、anaconda安装java环境(推荐) 2、直接在本地环境安装java环境 yum方式安装jdk 二进制方式安装jdk jmeter环境安装 1、jmeter单机安装 启动jmeter 配置环境变量 jmeter配置中文 2、jmeter集群搭建 多台机器部署jmeter集群…...
docker设置加速
sudo tee /etc/docker/daemon.json <<-‘EOF’ { “registry-mirrors”: [ “https://register.liberx.info”, “https://dockerpull.com”, “https://docker.anyhub.us.kg”, “https://dockerhub.jobcher.com”, “https://dockerhub.icu”, “https://docker.awsl95…...
使用requestAnimationFrame写防抖和节流
debounce.ts 防抖工具函数: function Animate() {this.timer null; }Animate.prototype.start function (fn) {if (!fn) {throw new Error(需要执行函数);}if (this.timer) {this.stop();}this.timer requestAnimationFrame(fn); }Animate.prototype.stop function () {i…...
Puppeteer 与浏览器版本兼容性:自动化测试的最佳实践
Puppeteer 支持的浏览器版本映射:从 v20.0.0 到 v23.6.0 自 Puppeteer v20.0.0 起,这个强大的自动化库开始支持与 Chrome 浏览器的无头模式和有头模式共享相同代码路径,为自动化测试带来了更多便利。从 v23.0.0 开始,Puppeteer 进…...
Java方法重写
在Java中,方法重写是指在子类中重新定义父类中已经定义的方法。以下是Java方法重写的基本原则: 子类中的重写方法必须具有相同的方法签名(即相同的方法名、参数类型和返回类型)。子类中的重写方法不能比父类中的原方法具有更低的…...
vscode通过.vscode/launch.json 内置php服务启动thinkphp 应用后无法加载路由解决方法
我们在使用vscode的 .vscode/launch.json Launch built-in server and debug 启动thinkphp应用后默认是未加载thinkphp的路由文件的, 这个就导致了,某些thinkphp的一些url路由无法访问的情况, 如http://0.0.0.0:8000/api/auth.admin/info这…...
Webserver(2.6)有名管道
目录 有名管道有名管道使用有名管道的注意事项读写特性有名管道实现简单版聊天功能拓展:如何解决聊天过程的阻塞 有名管道 可以用在没有关系的进程之间,进行通信 有名管道使用 通过命令创建有名管道 mkfifo 名字 通过函数创建有名管道 int mkfifo …...
四足机器人实战篇之一:波士顿spot机器人工程实现分析
系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言一、机器人发展历史二、硬件系统及电机执行器篇硬件系统电机执行器传感器机处理器电气连接三、感知(视觉点云、局部地图、定位)篇1.深度相机获取…...
TensorFlow 预训练目标检测模型集合
Tensorflow 提供了一系列在不同数据集上预训练的目标检测模型,包括 COCO 数据集、Kitti 数据集、Open Images 数据集、AVA v2.1 数据集、iNaturalist 物种检测数据集 和 Snapshot Serengeti 数据集。这些模型可以直接用于推理,特别是当你对这些数据集中已…...
字符串的区别
C 和 Java 字符串的区别 最近 C 和 Java 在同步学习,都有个字符串类型,但二者不太一样,于是就做了些许研究。 在编程中,字符串作为数据类型广泛应用于不同的场景。虽然 C 和 Java 都允许我们处理字符串,但它们在字符…...
EMR Serverless Spark:一站式全托管湖仓分析利器
本文根据2024云栖大会实录整理而成,演讲信息如下: 演讲人: 李钰(绝顶) | 阿里云智能集团资深技术专家,阿里云 EMR 团队负责人 活动: 2024 云栖大会 AI - 开源大数据专场 数据平台技术演变 …...
Linux find 匹配文件内容
在Linux中,你可以使用find命令结合-exec或者-execgrep来查找匹配特定内容的文件。以下是一些示例: 查找当前目录及其子目录下所有文件内容中包含"exampleText"的文件: find . -type f -exec grep -l "exampleText" {} \…...
【Redis优化——如何优雅的设计key,优化BigKey,Pipeline批处理Key】
Redis优化——如何优雅的设计key,优化BigKey,Pipeline批处理Key 一、Key的设计1. 命名规范2. 长度限制在44字节以内 二、BigKey优化1. 查找bigkey2. 删除BigKey3. 优化BigKey 三、Pipeline批处理Key1. 单节点的Pipeline2. 集群下的Pipeline 一、Key的设计…...
数据结构与算法分析:你真的理解图算法吗——深度优先搜索(代码详解+万字长文)
一、前言 图是计算机科学中用来表示复杂结构信息的一种基本结构。本章我们会讨论一些通用的围表示法,以及一些频繁使用的图算法。本质上来说,一个图包含一个元素集合(也就是顶点),以及元素两两之间的关系(也就是边),由于应用范围所限,本章我们仅仅讨论简单图,简单围并不会如(a…...
LinkedList 分析
LinkedList 简介 LinkedList 是一个基于双向链表实现的集合类,经常被拿来和 ArrayList 做比较。关于 LinkedList 和ArrayList的详细对比,我们 Java 集合常见面试题总结(上)有详细介绍到。 双向链表 不过,我们在项目中一般是不会使用到 Link…...
【C/C++】模拟实现strlen
学习目标: 使用代码模拟实现strlen。 逻辑: strlen 需要输入一个字符串数组类型的变量,并且返回一个整型类型的数据。strlen 需要计算字符串数组有多少个元素。 代码1:使用计数器 #define _CRT_SECURE_NO_WARNINGS 1 #include&…...
mybatis从浅入深一步步演变分析
mybatis从浅入深一步步演变分析 版本一:不使用代理(非spring) package com.yimeng.domain;public class User {private int id;private String username;private String password;public int getId() {return id;}public void setId(int id…...
Java阶段三02
第3章-第2节 一、知识点 面向接口编程、什么是spring、什么是IOC、IOC的使用、依赖注入 二、目标 了解什么是spring 理解IOC的思想和使用 了解IOC的bean的生命周期 理解什么是依赖注入 三、内容分析 重点 了解什么是spring 理解IOC的思想 掌握IOC的使用 难点 理解IO…...
【Linux】掌握库的艺术:我的动静态库封装之旅
🌈个人主页:Yui_ 🌈Linux专栏:Linux 🌈C语言笔记专栏:C语言笔记 🌈数据结构专栏:数据结构 🌈C专栏:C 文章目录 1.什么是库1.2 认识动静态库1.2.1 动态库1.2.2…...
UE5动画控制 基础
素材 mixamo先去选择一个character 点击下载 就这个下载下来 然后选几个animation, 记得勾选 把动作下载了 without skin就是只要动作 然后把他们放在一个文件夹里先 UE里导入 找一个文件夹,直接拖拽进来那个character的fbx,默认配置就…...
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...
《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
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. 查看链接器参数(如果没有勾选上面…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...
JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
WebRTC调研
WebRTC是什么,为什么,如何使用 WebRTC有什么优势 WebRTC Architecture Amazon KVS WebRTC 其它厂商WebRTC 海康门禁WebRTC 海康门禁其他界面整理 威视通WebRTC 局域网 Google浏览器 Microsoft Edge 公网 RTSP RTMP NVR ONVIF SIP SRT WebRTC协…...
