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 <参数>
        报告仪表板的输出文件夹

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ai翻唱部分步骤

模型部署 我是用的RVC进行的训练&#xff0c;也可以使用so-vits-svc。 通过百度网盘分享的文件&#xff1a;RVC-beta 链接&#xff1a;https://pan.baidu.com/s/1c99jR2fLChoqUFqf9gLUzg 提取码&#xff1a;4090 以Nvida显卡为例&#xff0c;分别下载“RVC1006Nvidia”和…

算法笔记-Day09(字符篇)

151. 反转字符串中的单词 class Solution {public String reverseWords(String s) {int lens.length(),count0;StringBuffer tempnew StringBuffer();StringBuffer ansnew StringBuffer();for(int i0;i<len;i){if(s.charAt(i)! &&(i0 || s.charAt(i-1) )){while(i&l…

安科瑞电能质量治理产品在光伏电站的应用有效解决了光伏电站面临的功率因数过低和谐波问题-安科瑞黄安南

1. 概述 随着全球对可再生能源需求的增加&#xff0c;分布式光伏电站的建设和发展迅速。然而&#xff0c;分布式光伏电站的运行过程中面临着一系列问题&#xff0c;比如导致企业关口计量点功率因数过低、谐波污染等。这些问题不仅影响光伏电站自身的运行效率&#xff0c;还会对…

Leetcode137只出现一次的数字|| 及其拓展

简述&#xff1a; 虽然标题是这么描述的&#xff0c;但是我们不是一上来就解这道题&#xff0c;先看一下他的子题和扩展 子题&#xff1a;136. 只出现一次的数字 - 力扣&#xff08;LeetCode&#xff09; 扩展题&#xff1a; 所以我们由易到难&#xff0c;先来看第一道&#x…

leetcode 382.链表随机结点

1.题目要求: 2.题目代码: /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) : val(x)…

GaussDB Ustore存储引擎解读

目录 一、数据库存储引擎 二、GaussDB Ustore存储引擎 总结 本文将介绍GaussDB中的Ustore存储引擎&#xff0c;包括Ustore的设计背景、特点介绍和适用业务场景等。 一、数据库存储引擎 数据库的存储引擎负责在内存和磁盘上存储、检索和管理数据&#xff0c;确保每个节点的…

使用 Sortable.js 库 实现 Vue3 elementPlus 的 el-table 拖拽排序

文章目录 实现效果Sortable.js介绍下载依赖添加类名导入sortablejs初始化拖拽实例拖拽完成后的处理总结 在开发过程中&#xff0c;我们经常需要处理表格数据&#xff0c;并为用户提供便捷的排序方式。特别是在需要管理长列表、分类数据或动态内容时&#xff0c;拖拽排序功能显得…

机器学习是什么?AIGC又是什么?机器学习与AIGC未来科技的双引擎

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…

.net core 接口,动态接收各类型请求的参数

[HttpPost] public async Task<IActionResult> testpost([FromForm] object info) { //Postman工具测试结果&#xff1a; //FromBody,Postman的body只有rawjson时才进的来 //参数为空时&#xff0c;Body(form-data、x-www-form-urlencoded)解析到的数据也有所…

探索Unity:从游戏引擎到元宇宙体验,聚焦内容创作

unity是实时3D互动内容创作和运营平台&#xff0c;包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者&#xff0c;借助Unity将创意变成现实。提供一整套完善的软件解决方案&#xff0c;可用于创作、运营和变现任何实时互动的2D和3D内容&#xff0c;支持平台包括手机、…

构造有向(无向)加权图

邻接表的一般构造 #include<bits/stdc.h> #define N 1e4 using namespace std; typedef struct BP{ int P;//边所指的顶点位置 struct BP *nextB;//指向下一条边的指针 int Q;//储存边的信息 }BP; typedef struct DP{ int date;//顶点信息 BP *FirstB;//指向第一条连接…

RabbitMQ交换机类型

RabbitMQ交换机类型 1、RabbitMQ工作模型2、RabbitMQ交换机类型2.1、Fanout Exchange&#xff08;扇形&#xff09;2.1.1、介绍2.1.2、示例2.1.2.1、生产者2.1.2.2、消费者2.1.2.3、测试 2.2、Direct Exchange&#xff08;直连&#xff09;2.2.1、介绍2.2.2、示例2.2.2.1、生产…

字符串算法

字符串 1.kmp匹配算法Anya and 1100 1.kmp匹配算法 模板题链接 不懂可以看这个~详细的思路 #include <string> #include <iostream>using namespace std; const int N 1000010;string s,p;// s[]是长文本&#xff0c;p[]是模式串&#xff0c;n是s的长度&#xff…

WSL开发--利用Git连接远程仓库(详细步骤)

这篇文章主要介绍了如何将本地项目推送到 GitLab 上&#xff0c;并且避免每次提交都需要输入用户名和密码。文中分步讲解了配置 GitLab SSH 密钥以及配置 Git 远程仓库地址的方法。以下是文章的优化和简洁版&#xff1a; 将本地项目推送到 GitLab 并配置 SSH 免密登录 为了方便…

操作系统(10) (并发(2)------基于软件/硬件/操作系统层面解决两个进程之间的临界区问题/抢占式/非抢占式内核)

目录 1. 基于软件层面(Petersons Solution) Petersons Solution 满足三个要求: 好处: 缺点 2. 基于硬件层面 1. Disabling Interrupts (禁用中断) 概念解释&#xff1a; 代码框架&#xff1a; 要求&#xff1a; 禁用中断的好处与问题&#xff1a; 2. Test and Set Lock (…

基于 JAVASSM 框架沙县小吃点餐系统

基于 JAVASSM 框架&#xff08;即 Java Spring Spring MVC MyBatis&#xff09;开发一个沙县小吃点餐系统。 步骤一&#xff1a;需求分析 明确系统需要实现的功能&#xff0c;比如&#xff1a; 用户注册和登录浏览菜单添加菜品到购物车下单并支付订单管理后台管理&#…

零基础Java第十三期:继承与多态(一)

目录 一、继承 1.1. 继承的目的 1.2. 继承的概念 1.3. 继承的语法 1.4. 父类的访问 1.5. 继承中的重载与重写 1.6. 子类的构造方法 1.7. 再谈初始化 一、继承 1.1. 继承的目的 我们来定义一个Dog和Cat的类&#xff1a; public class Dog {public int age;public Strin…

论文翻译 | Evaluating the Robustness of Discrete Prompts

摘要 离散提示已被用于调整预训练语言模型&#xff0c;以适应不同的NLP任务。特别是&#xff0c;从一小组训练实例中生成离散提示的自动方法已经报告了优越的性能。然而&#xff0c;仔细观察习得的提示会发现&#xff0c;它们包含嘈杂和反直觉的词汇结构&#xff0c;而这些在手…

SQL,力扣题目1549,每件商品的最新订单【窗口函数】

一、力扣链接 LeetCode_1549 二、题目描述 表: Customers ------------------------ | Column Name | Type | ------------------------ | customer_id | int | | name | varchar | ------------------------ customer_id 是该表主键. 该表包含消费者的…

mysql查表相关练习

作业要求&#xff1a; 单表练习&#xff1a; 1 . 查询出部门编号为 D2019060011 的所有员工 2 . 所有财务总监的姓名、编号和部门编号。 3 . 找出奖金高于工资的员工。 4 . 找出奖金高于工资 40% 的员工。 5 找出部门编号为 D2019090011 中所有财务总监&#xff0c;和…