【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,需要为其他用户配置,可以使用…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...
苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...
如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...
什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机
这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机,因为在使用过程中发现 Airsim 对外部监控相机的描述模糊,而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置,最后在源码示例中找到了,所以感…...
从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践
作者:吴岐诗,杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言:融合数据湖与数仓的创新之路 在数字金融时代,数据已成为金融机构的核心竞争力。杭银消费金…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
离线语音识别方案分析
随着人工智能技术的不断发展,语音识别技术也得到了广泛的应用,从智能家居到车载系统,语音识别正在改变我们与设备的交互方式。尤其是离线语音识别,由于其在没有网络连接的情况下仍然能提供稳定、准确的语音处理能力,广…...
mac:大模型系列测试
0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何,是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试,是可以跑通文章里面的代码。训练速度也是很快的。 注意…...
