【P1】Jmeter 准备工作
文章目录
- 一、Jmeter 介绍
- 1.1、Jmeter 有什么样功能
- 1.2、Jmeter 与 LoadRunner 比较
- 1.3、常用性能测试工具
- 1.4、性能测试工具如何选型
- 1.5、学习 Jmeter 对 Java 编程的要求
- 二、Jmeter 软件安装
- 2.1、官网介绍
- 2.2、JDK 安装及环境配置
- 2.3、Jmeter 三种模式
- 2.4、主要配置介绍
- 2.4.1、setenv 配置
- 2.4.2、jmeter.properties
- 2.4.3、user.properties
- 2.4.4、常用命令介绍
- 2.5、Jmeter 图形端安装
- 2.5.1、前置条件
- 2.5.2、参数修改
- 2.5.3、启动/检测
- 2.6、Jmeter 服务端安装
- 2.6.1、前置条件
- 2.6.2、参数修改
- 2.6.3、启动&检测
- 2.6.4、图形端修改
- 2.7、安装小结
- 三、Jmeter 常规配置
- 3.1、设置中文
- 3.1.1、临时设置中文
- 3.1.2、永久设置中文
- 3.2、设置外观(白色)
一、Jmeter 介绍
1.1、Jmeter 有什么样功能
Apache JMeter 是一个开源、纯 Java、优秀的性能测试工具
能够测试许多不同的应用程序/服务器/协议类型:
-
HTTP、HTTPS
-
REST、SOAP
-
JDBC
-
FTP
-
LDAP
-
JMS 消息类
-
邮件类(SMTP、POP3、和IMAP)
-
命令或 shell 脚本
-
TCP
-
Java 请求扩展
主要特性:
-
可视化设计、功能齐全 (可视化)
-
快速设计测试计划、简单构建和调试程序 (简易性)
-
内置八大组件,功能强大,高度灵活设计 (高灵活)
-
完全、快速的可移植性和 100% Java 纯度 (跨平台)
-
核心功能高度可扩展,可以快速进行二次开发(高扩展)
1.2、Jmeter 与 LoadRunner 比较
比较点 | Jmeter 5.x | Loadrunner 2021 |
---|---|---|
协议 | 开源协议 | 商业版、社区版(用户数有限制) |
安装 | 体积小、易安装 | 体积庞大、安装时间长 |
跨平台性 | Java 编写,支持多种操作系统和跨平台操作 | 界面仅支持 windows,压力机支持 Linux |
功能性方面 | 比较强大,常用协议使用时与 LR 相差不大 | 非常强大,协议多 |
界面体验 | 稍弱 | 好 |
脚本录制 | 比较方便 | 非常方便,种类大 |
测试计划 | 稍弱 | 强大 |
指标分析 | 界面稍弱 | 界面友好,功能强大 |
学习成本 | 入门快,学至后面需要掌握 Java 语言 | 入门较快,学至后面需要 C 语言 |
软件性能 | 中等 | 高 |
总结:
-
在目前市场来讲,Jmeter 为必备技能、LoadRunner 为加强技能(个人技能)
-
Jmeter 为一款轻量级、跨平台、功能强大的性能测试工具,目前热度已然超过 LoadRunner
1.3、常用性能测试工具
目前市场上性能测试工具多达几十种,笔者选取了几种比较实在的测试工具,供大家参考
性能测试工具 | 使用协议 | 支持协议 | 支持场景化 | 主要用途 | 说明 |
---|---|---|---|---|---|
Jmeter | 开源 | 多协议 | 是 | http 测试,其它测试 | JMeter 是 Apache 开源基金会提供的完全开源的性能测试工具,旨在加载测试功能行为和衡量性能。它最初是为测试 Web 应用程序而设计的,但此后已扩展到其他测试功能 |
LoadRunner | 商业 | 多协议 | 是 | http 测试,其它测试 | LoadRunner 是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试 |
Kylinpetl/kylinTOP | 国产商业 | 多协议 | 是 | http 测试,其它测试 | 奇林性能测试软件(简称:kylinPET,performance emulation tool)是一款功能强大的性能测试工具;界面友好、操作方便,资源占用率低;与 LoadRunner 非常类似 |
ApacheBench | 开源 | http | 否 | 简易性 http | ApacheBench 是一个轻量级工具。主要用于 HTTP 协议的性能测试。非常简单快捷,不支持场景化测试 |
Webbench | 开源 | http | 否 | 简易性 http | Webbench 是知名的网站压力测试工具,非常简单快捷,不支持场景化测试 |
Sysbench | 开源 | 多协议 | # | 数据库基准测试 | sysbench 是一款开源的多线程性能测试工具,可以执行 CPU/内存/线程/IO/数据库等方面的性能测试 |
Locust | 开源 | http | 是 | http 测试 | Locust 是易于使用的分布式用户负载测试工具。它旨在对网站进行负载测试,并确定系统可以处理多少个并发用户。非常易用。很方便地基于 Python 进行脚本扩展和业务请求实现 |
1.4、性能测试工具如何选型
- ab(ApacheBench)、Webbench 使用场景:简单接口测试,无场景化,无参数化处理,命令行工具
- Jmter 使用场景:免费+复杂场景化
- LoadRunner 使用场景:商业+复杂场景化
- Kylinpet/kylinTOP 使用场景:与 LoadRunner 类似,部分功能更为强大
- Locust 使用场景:对 Python 熟悉度高,无 UI 设计界面,使用轻量级协程,高并发
工具只是一种形式,无论是性能测试还是功能自动化测试,在学至后面,本质是一种测试编程,工具只是简化了一些功能,但并不能完全替代;Jmeter、LoadRunner 任意掌握一种,就算以后有需要学习其它的,也会变得简单很多
1.5、学习 Jmeter 对 Java 编程的要求
-
Jmeter 中的脚本编程本质上是 Java 的编程,要求对 Java 有一定的掌握
-
编写 Jmeter 脚本,熟悉 Java 的基本编程即可,如变量定义、数据类型、条件、循环、Map 及 List 的结构……
-
Jmter 的二次开发,对 Java 要求上关注较高,要求熟悉使用 Java 和第三方协议的使用,如 Kafaka,Redis 等
二、Jmeter 软件安装
2.1、官网介绍
官网地址: https://jmeter.apache.org/
下载地址: https://jmeter.apachc.org/download_jmeter.cgi
2.2、JDK 安装及环境配置
-
JDK 版本要求为 1.8
-
Linux 系统下面环境变量设置
export JAVA_HOME=/home/xiangsl/softwares/jdk1.8.0_161
PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
- windows下面环境变量设置
JAVA_HOME=D:\Program Files\Java\jdk1.8.0_261;
PATH=%JAVA_HOME%\bin;.......
CLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;
2.3、Jmeter 三种模式
Jmeter 模式 | 设计测试计划 | 性能压测 | 角色说明 | 说明 |
---|---|---|---|---|
GUI 模式 | √ | √ | 图形端与压力机在本机 | 设计测试计划,同时可以作轻量级性能测试 |
客户端模式 | √ | 命令行模式 | 命令行模式来进行性能压测,使用上快捷方便,跨平台 | |
远程模式 | √ | 图形端与压力机分开 | 远程模式下可以水平扩容,一般配合图形界面使用 |
2.4、主要配置介绍
2.4.1、setenv 配置
win 下面以 setenv.bat 存在,linux 下面以 setenv.sh 存在,默认不存在,需要手工创建主要是用于配置一些系统环境变量,如 JVM 启动参数,默认语言等
配置详情见官网(1.4 Running JMeter):https://jmeter.apache.org/uscrmanual/get-started.htmI#frunning
2.4.2、jmeter.properties
几乎所有的配置都可以通过该文件进行修改,比较常用的有:19.7 Remote hosts and RMl configuration
配置详情见官网:https://jmeter.apache.org/usermanual/properties_reference.html
2.4.3、user.properties
用户自定义参数,一般用于测试计划;在这里,我们可以定义任何自己需要的参数
2.4.4、常用命令介绍
windows 命令,一般用于图形界面,主要命令如下:
启动命令 | 作用 |
---|---|
jmeter.bat | 图形模式下启动界面(有 cmd 命令框),如果有控制台消息的时候建议使用 |
jmeterw.cmd | 图形模式下启动界面(没有 cmd 命令框) |
jmeter-server.bat | 以服务端模式启动 |
mirror-server.cmd | 启动一个镜像服务器 |
linux 命令,一般用于服务端,主要命令如下:
启动命令 | 作用 |
---|---|
jmeter | 图形模式下启动界面(有终端命令框),如果有控制台消息的时候建议使用 |
jmeter.sh | 图形模式下启动界面(没有终端命令框) |
jmeter-server | 以服务端模式启动 |
mirror-server.sh | 启动一个镜像服务器 |
2.5、Jmeter 图形端安装
2.5.1、前置条件
操作系统: 不限,一般是win系统居多
JDK: 1.8+
下载后解压至某一文件夹
2.5.2、参数修改
(1)、在 bin 目录下面增加 setenv.bat 文件
rem This is the content of bin\setenv.bat,rem it will be called by bin\jmeter.bat
set JVM_ARGS=-Xms2g -Xmx2g -Dpropname=longge这里根据自行调整内存大小,默认为1024m,做大型测试时起步4G
其它参考选项,详见官网(1.4 Running JMeter)
https://jmeter.apache.org/usermanual/get-started.html#running
(2)、修改 jmeter.properties 配置文件
server.rmi.ssl.disable=true
sampleresult.default.encoding=UTF-8 // 未设置的话,采样器结果有可能乱码
2.5.3、启动/检测
(1)、运行 jmeter.bat 或者 jmeterw.cmd 启动
(2)、启动后,打开 cmd,采用如下命令,检测进程详细,如下表示进程存在且参数配置生效
wmic process where caption="java.exe" get processid,caption,commandline /value
wmic process where caption="javaw.exe" get processid,caption,commandline /value
2.6、Jmeter 服务端安装
2.6.1、前置条件
操作系统: 不限,一般为 Linux 系统居多
JDK: 1.8+
下载后解压至某一文件夹
2.6.2、参数修改
(1)、在 bin 目录下面增加 setenv.sh 文件
#This is the content of bin\setenv.sh,
#it will be called by bin\jmeter.sh
export JVM_ARGS="-Xms2g -Xmx2g -Dpropname=longge"这里根据自行调整内存大小,默认为 1024m,做大型测试时起步 4G
其它参考选项,详见官网(1.4 Running JMeter)
https://jmeter.apache.org/usermanual/get-started.html#running
(2)、修改 jmeter.properties 配置文件
server.rmi.ssl.disable=true
sampleresult.default.encoding=UTF-8
(3)、修改 jmeter-server 文件
RMI_HOST_DEF=-Djava.rmi.server.hostname=192.168.128.166这里根据主机地址修改
2.6.3、启动&检测
(1)、运行 sh jmeter-server 启动
(2)、启动后,采用如下命令,检测进程详细,如下表示进程存在且参数配置生效
ps -ef|grep longge
缺图
2.6.4、图形端修改
修改 jmeter.properties 文件,多个主机用逗号隔开remote_hosts=192.168.128.166:1099,192.168.128.167:1099,192.168.128.168:1099图形端启动后,在 Run/Remote Start 里面能够看到相关主机表示安装成功
2.7、安装小结
(1)、大部分配置采用纯手工修改,一定要细小,注意空格,中英文,端口的影响
(2)、理解 Jmeter 的三种模式的应用场景,对我们后续有比较好的指导意义
三、Jmeter 常规配置
3.1、设置中文
3.1.1、临时设置中文
依次点击 Options <<< Choose Languse <<< Chinese(Simplified)
3.1.2、永久设置中文
- 进入 jmeter 安装路径的 bin 目录下,找到 jmeter.properties 文件
- 打开 jmeter.properties 文件,找到 #language=en,修改成language=zh_CN,并将前面的 “#” 号去掉,最后保存文件
- 最后重新打开 jmeter ,就变成中文了
3.2、设置外观(白色)
依次点击 选项 <<< 外观 <<< Windows
相关文章:

【P1】Jmeter 准备工作
文章目录 一、Jmeter 介绍1.1、Jmeter 有什么样功能1.2、Jmeter 与 LoadRunner 比较1.3、常用性能测试工具1.4、性能测试工具如何选型1.5、学习 Jmeter 对 Java 编程的要求 二、Jmeter 软件安装2.1、官网介绍2.2、JDK 安装及环境配置2.3、Jmeter 三种模式2.4、主要配置介绍2.4.…...

字节的面试,你能扛住几道?
C , Python 哪一个更快? 读者答:这个我不知道从哪方面说,就是 C 的话,它其实能够提供开发者非常多的权限,就是说它能涉及到一些操作系统级别的一些操作,速度应该挺快。然后 Python 实现功能还…...

NOPI用法之自定义单元格背景色(3)
NPOI针对office2003使用HSSFWorkbook,对于offce2007及以上使用XSSFWorkbook;今天我以HSSFWorkbook自定义颜色为例说明,Office2007的未研究呢 在NPOI中默认的颜色类是HSSFColor,它内置的颜色有几十种供我们选择,如果不…...

数据分析中常见标准的参考文献
做数据分析过程中,有些分析法方法的标准随便一搜就能找到,不管是口口相传还是默认,大家都按那样的标准做了。日常分析不细究出处还可以,但是正式的学术论文你需要为你写下的每一句话负责,每一个判断标准都应该有参考文…...

辨析 变更请求、批准的变更请求、实施批准的变更请求
变更请求、批准的变更请求、实施批准的变更请求辨析 辨析各种变更请求,不服来辨。 变更请求 定义:对正规受控的文件或计划(范围、进度、成本、政策、过程、计划或程序)等的变更,以反映修改或增加的意见或内容 根据变更请求的工作内容可将变…...
leetcode 561. 数组拆分
题目描述解题思路执行结果 leetcode 561. 数组拆分 题目描述 数组拆分 给定长度为 2n 的整数数组 nums ,你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), ..., (an, bn) ,使得从 1 到 n 的 min(ai, bi) 总和最大。 返回该 最大总和 。 示例 1&am…...
AviatorScript
AviatorScript 是一门高性能、轻量级寄宿于 JVM (包括 Android 平台)之上的脚本语言 特性介绍 支持数字、字符串、正则表达式、布尔值、正则表达式等基本类型,完整支持所有 Java 运算符及优先级等。函数是一等公民,支持闭包和函…...

Oracle跨服务器取数——DBlink 初级使用
前言 一句话解释DBlink是干啥用的 实现跨库访问的可能性. 通过DBlink我们可以在A数据库访问到B数据库中的所有信息,例如我们在加工FDS层表时需要访问ODS层的表,这是就需要跨库访问 一、DBlink的分类 private:用户级别,只有创建该dblink的用户才可以使…...

200人 500人 园区网设计
实验要求: ① 设置合理的STP优先级、边缘端口、Eth-trunk ② 企业内网划分多个vlan ,减少广播域大小,提高网络稳定性 ③ 所有设备,在任何位置都可以telnet远程管理 ④ 出口配置NAT ⑤ 所有用户均为自动获取ip地址 ⑥ 在企业…...

netstat命令解析
一、linux系统中netstat命令的帮助信息 └──╼ $netstat -h usage: netstat [-vWeenNcCF] [<Af>] -r netstat {-V|--version|-h|--help}netstat [-vWnNcaeol] [<Socket> ...]netstat { [-vWeenNac] -i | [-cnNe] -M | -s [-6tuw] }-r, --route …...

API接口的自我阐述
API(Application Programming Interface),翻译为应用程序接口,是一套定义程序之间如何通讯的接口。API可以实现软件的可重用性、可维护性和互操作性,同时也可以提升软件的性能和安全性。API接口是一个软件系统中的重要…...
Day32内部类
内部类 内部类就是在一个类中定义一个类,(在A类中定义一个B类,B类就被称为内部类) 格式:public class 类名{ 修饰符 class 类名{} } 如:public class Outer{ public class Inner {} } //内部类可以访问外部…...

用户画像系列——HBase 在画像标签过期策略中的应用
一、背景 前面系列文章介绍了用户画像的概念、用户画像的标签加工、用户画像的应用。本篇文章主要介绍一些画像的技术细节,让大家更加详细的了解画像数据存储和处理的逻辑 举个现实中的例子: 例子1:因为疫情原因,上线一个平台(…...

时下热门话题:ChatGPT能否取代人类?
时下热门话题:ChatGPT能否取代人类? 2022年11月底,人工智能对话聊天机器人ChatGPT推出,迅速在社交媒体上走红,短短5天,注册用户数就超过100万。2023年1月末,ChatGPT的月活用户已突破1亿&#x…...
每日刷题记录(十七)
目录 第一题:求12...n解题思路:代码实现: 第二题:两两交换链表中的节点解题思路:代码实现: 第三题:只出现一次的数字 II解题思路:代码实现: 第四题:根据字符串…...

开放原子训练营(第三季)RT-Thread Nano学习营一探究竟
前言 不知道从什么时候起,智能设备开始普及到了我们日常生活的方方面面。下班还未到家,热水器就可以调到合适的温度;上班刚进公司,忘关空调也不再是什么烦恼;诸如夜晚的灯光变换,白昼的窗帘适应等更给我们…...

数据库系统概论(二)关系数据库,SQL概述和数据库安全性
作者的话 前言:总结下知识点,自己偶尔看一看。 目录 一、关系模型概述 1.1关系数据结构及形式化定义 1.1.1域(Domain) 1.1.2笛卡尔积(Cartesian Product) 1.1.3关系(Relation) …...

【VM服务管家】VM4.x算子SDK开发_3.1 环境配置类
目录 3.1.1 环境配置:CSharp算子SDK开发环境配置方法3.1.2 算子封装:使用C封装算子SDK的方法3.1.3 异常中断:算子SDK软件运行报错“托管调试助手”中断的解决方法3.1.4 深度学习:GPU运行深度学习算子引发StackOverFlow异常的方法 …...
Java核心书籍1
1.《Java核心技术》是一本深入浅出的Java编程指南,适合初学者和有一定Java编程基础的读者。这本书的主要作者是Cay S. Horstmann和Gary Cornell,他们都是Java领域的知名专家。这本书的最新版本是第10版,其中涵盖了Java SE 9、10和11的新特性&…...
crontab详细用法 定时任务
使用crontab可以在指定时间执行一个shell脚本或者一系列Linux命令 crontab的使用方法 方法1.使用crontab命令 例如添加一个新的或者编辑已有的,使用: crontab -e就可以进入配置文件.此时配置crontab的执行者是当前登入用户,如果当前有用户是root,需要为其他用户配置,可以使用…...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...

【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度
文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...
return this;返回的是谁
一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请,不同级别的经理有不同的审批权限: // 抽象处理者:审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行
项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...