当前位置: 首页 > news >正文

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环境&#xff08;推荐&#xff09; 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 支持的浏览器版本映射&#xff1a;从 v20.0.0 到 v23.6.0 自 Puppeteer v20.0.0 起&#xff0c;这个强大的自动化库开始支持与 Chrome 浏览器的无头模式和有头模式共享相同代码路径&#xff0c;为自动化测试带来了更多便利。从 v23.0.0 开始&#xff0c;Puppeteer 进…...

Java方法重写

在Java中&#xff0c;方法重写是指在子类中重新定义父类中已经定义的方法。以下是Java方法重写的基本原则&#xff1a; 子类中的重写方法必须具有相同的方法签名&#xff08;即相同的方法名、参数类型和返回类型&#xff09;。子类中的重写方法不能比父类中的原方法具有更低的…...

vscode通过.vscode/launch.json 内置php服务启动thinkphp 应用后无法加载路由解决方法

我们在使用vscode的 .vscode/launch.json Launch built-in server and debug 启动thinkphp应用后默认是未加载thinkphp的路由文件的&#xff0c; 这个就导致了&#xff0c;某些thinkphp的一些url路由无法访问的情况&#xff0c; 如http://0.0.0.0:8000/api/auth.admin/info这…...

Webserver(2.6)有名管道

目录 有名管道有名管道使用有名管道的注意事项读写特性有名管道实现简单版聊天功能拓展&#xff1a;如何解决聊天过程的阻塞 有名管道 可以用在没有关系的进程之间&#xff0c;进行通信 有名管道使用 通过命令创建有名管道 mkfifo 名字 通过函数创建有名管道 int mkfifo …...

四足机器人实战篇之一:波士顿spot机器人工程实现分析

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言一、机器人发展历史二、硬件系统及电机执行器篇硬件系统电机执行器传感器机处理器电气连接三、感知(视觉点云、局部地图、定位)篇1.深度相机获取…...

TensorFlow 预训练目标检测模型集合

Tensorflow 提供了一系列在不同数据集上预训练的目标检测模型&#xff0c;包括 COCO 数据集、Kitti 数据集、Open Images 数据集、AVA v2.1 数据集、iNaturalist 物种检测数据集 和 Snapshot Serengeti 数据集。这些模型可以直接用于推理&#xff0c;特别是当你对这些数据集中已…...

字符串的区别

C 和 Java 字符串的区别 最近 C 和 Java 在同步学习&#xff0c;都有个字符串类型&#xff0c;但二者不太一样&#xff0c;于是就做了些许研究。 在编程中&#xff0c;字符串作为数据类型广泛应用于不同的场景。虽然 C 和 Java 都允许我们处理字符串&#xff0c;但它们在字符…...

EMR Serverless Spark:一站式全托管湖仓分析利器

本文根据2024云栖大会实录整理而成&#xff0c;演讲信息如下&#xff1a; 演讲人&#xff1a; 李钰&#xff08;绝顶&#xff09; | 阿里云智能集团资深技术专家&#xff0c;阿里云 EMR 团队负责人 活动&#xff1a; 2024 云栖大会 AI - 开源大数据专场 数据平台技术演变 …...

Linux find 匹配文件内容

在Linux中&#xff0c;你可以使用find命令结合-exec或者-execgrep来查找匹配特定内容的文件。以下是一些示例&#xff1a; 查找当前目录及其子目录下所有文件内容中包含"exampleText"的文件&#xff1a; find . -type f -exec grep -l "exampleText" {} \…...

【Redis优化——如何优雅的设计key,优化BigKey,Pipeline批处理Key】

Redis优化——如何优雅的设计key&#xff0c;优化BigKey&#xff0c;Pipeline批处理Key 一、Key的设计1. 命名规范2. 长度限制在44字节以内 二、BigKey优化1. 查找bigkey2. 删除BigKey3. 优化BigKey 三、Pipeline批处理Key1. 单节点的Pipeline2. 集群下的Pipeline 一、Key的设计…...

数据结构与算法分析:你真的理解图算法吗——深度优先搜索(代码详解+万字长文)

一、前言 图是计算机科学中用来表示复杂结构信息的一种基本结构。本章我们会讨论一些通用的围表示法,以及一些频繁使用的图算法。本质上来说,一个图包含一个元素集合(也就是顶点),以及元素两两之间的关系(也就是边),由于应用范围所限,本章我们仅仅讨论简单图,简单围并不会如(a…...

LinkedList 分析

LinkedList 简介 LinkedList 是一个基于双向链表实现的集合类&#xff0c;经常被拿来和 ArrayList 做比较。关于 LinkedList 和ArrayList的详细对比&#xff0c;我们 Java 集合常见面试题总结(上)有详细介绍到。 双向链表 不过&#xff0c;我们在项目中一般是不会使用到 Link…...

【C/C++】模拟实现strlen

学习目标&#xff1a; 使用代码模拟实现strlen。 逻辑&#xff1a; strlen 需要输入一个字符串数组类型的变量&#xff0c;并且返回一个整型类型的数据。strlen 需要计算字符串数组有多少个元素。 代码1&#xff1a;使用计数器 #define _CRT_SECURE_NO_WARNINGS 1 #include&…...

mybatis从浅入深一步步演变分析

mybatis从浅入深一步步演变分析 版本一&#xff1a;不使用代理&#xff08;非spring&#xff09; 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】掌握库的艺术:我的动静态库封装之旅

&#x1f308;个人主页&#xff1a;Yui_ &#x1f308;Linux专栏&#xff1a;Linux &#x1f308;C语言笔记专栏&#xff1a;C语言笔记 &#x1f308;数据结构专栏&#xff1a;数据结构 &#x1f308;C专栏&#xff1a;C 文章目录 1.什么是库1.2 认识动静态库1.2.1 动态库1.2.2…...

UE5动画控制 基础

素材 mixamo先去选择一个character 点击下载 就这个下载下来 然后选几个animation&#xff0c; 记得勾选 把动作下载了 without skin就是只要动作 然后把他们放在一个文件夹里先 UE里导入 找一个文件夹&#xff0c;直接拖拽进来那个character的fbx&#xff0c;默认配置就…...

流畅!HTMLCSS打造网格方块加载动画

效果演示 这个动画的效果是五个方块在网格中上下移动&#xff0c;模拟了一个连续的加载过程。每个方块的动画都是独立的&#xff0c;但是它们的时间间隔和路径被设计为相互协调&#xff0c;以创建出流畅的动画效果。 HTML <div class"loadingspinner"><…...

linux命令之top(Linux Command Top)

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 本人主要分享计算机核心技…...

数据结构-希尔排序(ShellSort)笔记

看动画理解 【数据结构】八大排序(超详解附动图源码)_数据结构排序-CSDN博客 一 基本思想 先选定一个整数gap&#xff0c;把待排序文件中所有记录分成gap个组&#xff0c;所有距离为gap的记录分在同一组内&#xff0c;并对每一组内的元素进行排序。 然后将gap逐渐减小重复上…...

Junit + Mockito保姆级集成测试实践

一、做好单测&#xff0c;慢即是快 对于单元测试的看法&#xff0c;业界同仁理解多有不同&#xff0c;尤其是在业务变化快速的互联网行业&#xff0c;通常的问题主要有&#xff0c;必须要做吗&#xff1f;做到多少合适&#xff1f;现在没做不也挺好的吗&#xff1f;甚至一些大…...

软件项目管理要点

一.项目管理 1.盈亏平衡分析 销售额固定成本可变成本税费利润 当利润为0的时候就是盈亏平衡点。 2.范围管理 范围定义的输入包括&#xff1a;项目章程、项目范围管理计划、组织过程资产、批准的变更申请。 3.时间管理 项目时间管理中的过程包括活动定义、活动排序、活动的资…...

ESP8266 连接 MQTT 服务器EMQX 连接MQTTX

目录 1.先用有一台自己的云服务器 2. 使用FinalShell连接阿里云云服务器ECS 3.安装宝塔 4.在云服务器打开8888端口 5.使用外网面板地址打开宝塔面板 6.安装Docker 7.下载emqx 8.打开emqxWeb 界面 9.下载MQTTX 10.EMQX加一个客户端 11.开始通信 12.加入单片机ESP8266 …...

Python中如何处理异常情况?

1、Python中如何处理异常情况&#xff1f; 在Python中&#xff0c;处理异常情况通常使用try/except语句。try语句块包含可能会引发异常的代码&#xff0c;而except语句块包含处理异常的代码。如果try块中的代码引发了异常&#xff0c;控制流将立即转到相应的except块。 以下是…...

openpnp - 在openpnp中单独测试相机

文章目录 openpnp - 在openpnp中单独测试相机概述笔记END openpnp - 在openpnp中单独测试相机 概述 底部相机的位置不合适, 重新做了零件&#xff0c;准备先确定一下相机和吸嘴的距离是多少才合适。 如果在设备上直接实验&#xff0c;那么拆装调整相机挺麻烦的。 准备直接在电…...

Spark窗口函数

1、 Spark中的窗口函数 窗口就是单纯在行后面加一个列 可以套多个窗口函数&#xff0c;但彼此之间不能相互引用&#xff0c;是独立的 窗口函数会产生shuffle over就是用来划分窗口的 (1) 分组聚合里面的函数&#xff0c;基…...

Idea、VS Code 如何安装Fitten Code插件使用

博主主页:【南鸢1.0】 本文专栏&#xff1a;JAVA 目录 ​编辑 简介 所用工具 1、Idea如何安装插件 1.idea下载插件 2.需要从外部下载然后在安装&#xff0c; 2、VS Code如何安装插件 总结 简介 Fitten Code是由非十大模型驱动的AI编程助手&#xff0c;它可以自动生成代…...