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

性能测试-jmeter实战4

课程:B站大学
记录软件测试-性能测试学习历程、掌握前端性能测试、后端性能测试、服务端性能测试的你才是一个专业的软件测试工程师

性能测试-jmeter实战4

  • jmeter环境搭建
    • 1. 安装Java环境(必需)
  • JMeter环境搭建完整指南
    • 1. 安装Java(必需)
      • Windows/macOS安装步骤
      • 下载jmeter
  • JMeter环境搭建完整指南
    • 1. 安装Java(必需)
      • Windows/macOS安装步骤
  • Windows用户可直接双击bin/jmeter.bat
  • Linux/macOS
  • Windows
    • jmeter目录作用
    • 2. 核心目录详解
      • 2.1 bin目录(最重要)
      • 语言设置
  • 默认保存路径
      • RMI设置(分布式测试)
      • 安装插件示例
      • docs目录(文档资源)
      • extras目录
      • 生成HTML报告
      • printable_docs目录
      • jmeter.properties中修改
      • JMeter核心配置文件说明
      • 配置详解
      • 1. jmeter.properties


# 性能测试工具 ## ​​LoadRunner ​​LoadRunner​​ 是一款由 ​​Micro Focus​​(原惠普企业软件)开发的性能测试工具,广泛应用于软件、Web应用、移动应用及企业系统的负载测试和性能分析。 **主要组件**​​ ​​VuGen​​:录制和编辑测试脚本。 ​​Controller​​:管理测试场景和调度虚拟用户。 ​​Load Generator​​:生成实际负载的机器。 ​​Analysis​​:分析测试结果并生成报告。 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/d9ac61c2c1334bcdb6061ef08838e21b.png) # Jmeter ​​Apache JMeter​​ 是一款开源的 ​​性能测试​​ 和 ​​负载测试​​ 工具,最初设计用于测试 Web 应用程序,但现已扩展支持多种协议,适用于 API、数据库、FTP、消息队列等多种场景。它基于 Java 开发,支持跨平台运行(Windows、Linux、macOS),广泛应用于性能测试、压力测试和功能测试。 ## 主要组件​​
  • ​​测试计划(Test Plan)​​:测试的顶层结构,包含线程组、采样器、监听器等。 ​​线程组(Thread
    Group)​​:定义并发用户数(线程数)、循环次数、启动时间等。
  • ​​采样器(Samplers)​​:发送请求(如 HTTP 请求、JDBC 请求)。
  • 监听器(Listeners)​​:收集和展示测试结果(如表格、图形、日志)。
  • ​​配置元件(Config Elements)​​:设置请求头、Cookie、数据库连接等。
  • 定时器(Timers)​​:控制请求之间的延迟(如模拟用户思考时间)。
    ​​## 适用场景​​
  • ​​Web 应用 & API 测试​​:模拟高并发 HTTP 请求,测试 REST/SOAP 接口性能。
  • ​​数据库性能测试​​:通过 JDBC 压测 SQL 查询效率。
  • 消息队列测试​​:如 Kafka、RabbitMQ 的吞吐量测试。
  • ​​文件传输测试​​:FTP/SFTP 上传下载性能。
  • ​​微服务 & 云原生测试​​:结合 Docker/Kubernetes 进行动态扩展测试。

jmeter环境搭建

1. 安装Java环境(必需)

JMeter环境搭建完整指南

1. 安装Java(必需)

JMeter基于Java开发,需先安装JDK 8+(推荐JDK 11或17)

Windows/macOS安装步骤

  1. 下载JDK:
    • Oracle JDK官网下载
    • OpenJDK下载
  2. 配置环境变量:
    • 新建系统变量JAVA_HOME,值为JDK安装路径(如C:\Program Files\Java\jdk-17
    • 编辑系统变量PATH,新增%JAVA_HOME%\bin
  3. 验证安装:
   java -version

配置java环境变量即可

下载jmeter

访问Apache JMeter官网
下载Binary版本(如apache-jmeter-5.6.2.zip)
解压到指定目录:
Windows示例:C:\jmeter
Windows配置
新建系统变量JMETER_HOME,值为JMeter解压目录
编辑系统变量PATH,新增%JMETER_HOME%\bin
验证配置:

jmeter -v

命令行模式(压测用)

jmeter -n -t test.jmx -l result.jtl
  1. 安装插件(可选)
    下载Plugins Manager
    将下载的plugins-manager.jar放入lib/ext/目录
    重启JMeter后,通过菜单安装插件:
    路径:Options > Plugins Manager
    推荐插件:
    Custom Thread Groups
    PerfMon(服务器监控)
    WebDriver(浏览器驱动)
  2. 验证安装
    创建测试计划:
    右键Test Plan → Add → Thread Group
    右键Thread Group → Add → Sampler → HTTP Request
    输入测试URL(如https://example.com)
    右键Thread Group → Add → Listener → View Results Tree
    点击运行按钮(绿色三角图标)
    在View Results Tree中查看响应结果
    Master节点配置
    修改bin/jmeter.properties:
remote_hosts=192.168.1.101,192.168.1.102

启动分布式测试:

jmeter -n -t test.jmx -l result.jtl -R 192.168.1.101,192.168.1.102

常见问题解决
问题现象 解决方案
报错"Java not found" 检查JAVA_HOME和PATH配置是否正确
GUI界面卡顿 改用命令行模式执行测试
内存不足错误 修改bin/jmeter中的堆内存参数(如-Xms2g -Xmx4g)
中文乱码 修改bin/jmeter.properties中的language参数、

JMeter环境搭建完整指南

1. 安装Java(必需)

JMeter基于Java开发,需先安装JDK 8+(推荐JDK 11或17)

Windows/macOS安装步骤

  1. 下载JDK:
    • Oracle JDK官网下载
    • 或OpenJDK下载
  2. 配置环境变量:
    • 新建系统变量JAVA_HOME,值为JDK安装路径(如C:\Program Files\Java\jdk-17
    • 编辑系统变量PATH,新增%JAVA_HOME%\bin
  3. 验证安装:
    java -version
    

Linux(Ubuntu/Debian)安装

sudo apt update
sudo apt install openjdk-17-jdk
java -version
  1. 下载JMeter
    访问Apache JMeter官网
    下载Binary版本(如apache-jmeter-5.6.2.zip)
    解压到指定目录:
    Windows示例:C:\jmeter
    Linux示例:/opt/jmeter
  2. 配置环境变量(推荐)
    Windows配置
    新建系统变量JMETER_HOME,值为JMeter解压目录
    编辑系统变量PATH,新增%JMETER_HOME%\bin
    验证配置:
jmeter -v

Linux/macOS配置

export JMETER_HOME=/opt/jmeter/apache-jmeter-5.6.2
export PATH=$JMETER_HOME/bin:$PATH
source ~/.bashrc  # 或~/.zshrc
jmeter -v
  1. 启动JMeter
    GUI模式(测试设计用)
jmeter

Windows用户可直接双击bin/jmeter.bat

https://jmeter.apache.org/images/screenshots/jmeter.png

命令行模式(压测用)

jmeter -n -t test.jmx -l result.jtl
  1. 安装插件(可选)
    下载Plugins Manager
    将下载的plugins-manager.jar放入lib/ext/目录
    重启JMeter后,通过菜单安装插件:
    路径:Options > Plugins Manager
    推荐插件:
    Custom Thread Groups
    PerfMon(服务器监控)
    WebDriver(浏览器驱动)
  2. 验证安装
    创建测试计划:
    右键Test Plan → Add → Thread Group
    右键Thread Group → Add → Sampler → HTTP Request
    输入测试URL(如https://example.com)
    右键Thread Group → Add → Listener → View Results Tree
    点击运行按钮(绿色三角图标)
    在View Results Tree中查看响应结果
  3. 分布式测试配置(可选)
    Slave节点配置

Linux/macOS

jmeter-server

Windows

jmeter-server.bat
Master节点配置
修改bin/jmeter.properties:

remote_hosts=192.168.1.101,192.168.1.102

启动分布式测试:

jmeter -n -t test.jmx -l result.jtl -R 192.168.1.101,192.168.1.102

常见问题解决

问题现象解决方案
报错"Java not found"检查JAVA_HOME和PATH配置是否正确
GUI界面卡顿改用命令行模式执行测试
内存不足错误修改bin/jmeter中的堆内存参数(如-Xms2g -Xmx4g)
中文乱码修改bin/jmeter.properties中的language参数

最佳实践建议
生产环境压测务必使用命令行模式
测试脚本建议版本控制(如Git)
长期运行测试建议添加以下监听器:

Aggregate Report
Response Times Over Time

对于复杂测试场景,建议使用:

CSV Data Set Config(参数化)
Regular Expression Extractor(关联)

jmeter目录作用

apache-jmeter-5.6.2/
├── bin/ # 核心可执行文件
├── docs/ # 官方文档
├── extras/ # 扩展功能
├── lib/ # 依赖库
├── licenses/ # 许可证文件
├── printable_docs/ # 可打印文档
└── LICENSE, NOTICE # 法律声明文件

2. 核心目录详解

2.1 bin目录(最重要)

bin/
├── jmeter.bat # Windows启动脚本
├── jmeter.sh # Linux/macOS启动脚本
├── jmeter.properties # 主配置文件(重点!)
├── jmeter.log # 默认日志文件
├── report-template/ # HTML报告模板
├── shutdown.bat # 强制停止脚本
└── system.properties # JVM系统配置

关键文件说明

  • jmeter.properties:500+个可配置参数,包括:

语言设置

language=zh_CN

默认保存路径

save.saveservice.base_directory=/tmp

RMI设置(分布式测试)

remote_hosts=127.0.0.1
lib/
├── ext/ # 扩展插件目录(重点!)
│ └── JMeterPlugins.jar
├── junit/ # JUnit测试支持
└── log4j2.xml # 日志配置文件
自定义jar包放在lib/ext/下
插件管理:

安装插件示例

cp plugins-manager.jar lib/ext/

docs目录(文档资源)

docs/
├── api/ # JavaDoc文档
└── demos/ # 示例测试计划
├── CompoundTest.jmx
└── websocket.jmx

extras目录

extras/
├── ant-jmeter-1.1.1.jar # Ant集成支持
└── beam2graph.xsl # 报表样式表

生成HTML报告

jmeter -g results.jtl -o report/

printable_docs目录

project/
├── testplans/ # .jmx测试脚本
├── datas/ # 测试数据(CSV等)
├── reports/ # 测试结果
└── lib/ # 项目专用jar包

jmeter.properties中修改

默认搜索路径
search_paths=/path/to/your/lib
CSV文件基准路径
csvread.default.path=datas/

JMeter核心配置文件说明

文件路径作用修改建议
bin/jmeter.properties主配置文件修改前建议备份原文件
bin/system.propertiesJVM参数配置调整内存参数(如-Xms1g -Xmx4g)
lib/log4j2.xml日志系统配置修改日志级别(DEBUG/INFO等)

配置详解

1. jmeter.properties

典型配置项

# 语言设置
language=zh_CN
# 默认端口
server_port=1099
# 分布式测试节点
remote_hosts=127.0.0.1
# jmeter元件作用域
# JMeter元件作用域详解## 主要作用域类型### 1. 父级作用域
- **定义**:元件只对其直接子级Sampler有效  
- **典型元件**:逻辑控制器(如If Controller、Loop Controller)  
- **示例**:在Loop Controller下添加的Sampler会受到循环控制  ### 2. 同级作用域
- **定义**:元件对同一层级的所有Sampler有效  
- **典型元件**:配置元件(如HTTP请求默认值、HTTP Cookie管理器)  
- **示例**:线程组级别的HTTP请求默认值会影响该线程组内所有HTTP请求  ### 3. 全局作用域
- **定义**:元件对整个测试计划中的所有Sampler有效  
- **典型元件**:测试计划级别的配置元件  
- **示例**:在测试计划根节点添加的User Defined Variables会被所有线程组使用  ## 作用域优先级规则
JMeter遵循以下优先级规则(从高到低):  
1. 子级元件配置  
2. 父级元件配置  
3. 线程组级别配置  
4. 测试计划级别配置  ## 常见元件作用域详解### 配置元件
- **作用范围**:取决于放置位置  
- **线程组内**:仅影响该线程组  
- **测试计划根节点**:影响所有线程组  ### 前置处理器/后置处理器
- **作用范围**:仅对同一父级下的Sampler有效  
- **示例**:在某个Sampler前添加的前置处理器只处理该Sampler  ### 断言
- **作用范围**:取决于放置位置  
- **Sampler子级**:仅验证该Sampler响应  
- **父级**:验证所有子Sampler响应  ### 监听器
- **作用范围**:收集其作用域内所有Sampler的数据  
- **线程组级别**:收集该线程组所有Sampler数据  
- **测试计划级别**:收集所有线程组数据  > **最佳实践提示**:  
> 1. 共享配置应放在高层级(如测试计划/线程组级别)  
> 2. 特定配置放在最接近Sampler的位置  
> 3. 使用模块控制器管理复杂作用域关系  
> 4. 避免不必要的全局配置影响
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/d9951e19b86946bd82a72d3e106fd9e9.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/d453ad518646411d8d05d61910cc4053.png)
# 实践是检验这里的唯一标准
http://www.lryc.cn/news/574843.html

相关文章:

  • 集成学习基础:Bagging 原理与应用
  • PyEcharts教程(009):PyEcharts绘制水球图
  • 60天python训练营打卡day41
  • Linux系统---Nginx配置nginx状态统计
  • 鸿蒙 Stack 组件深度解析:层叠布局的核心应用与实战技巧
  • AI时代工具:AIGC导航——AI工具集合
  • 接口自动化测试之pytest 运行方式及前置后置封装
  • 爬取小红书相关数据导入到excel
  • 项目需求评审报告参考模板
  • 图的拓扑排序管理 Go 服务启动时的组件初始化顺序
  • 飞往大厂梦之算法提升-day08
  • sqlserver怎样动态执行存储过程,并且返回报错
  • Java实现简易即时通讯系统
  • day41 打卡
  • 基于元学习的回归预测模型如何设计?
  • MySQL:深入总结锁机制
  • linux操作系统的软件架构分析
  • 战略调整频繁,如何快速重构项目组合
  • 原生策略与功耗方案参考
  • Android 开发问题:Wrong argument type for formatting argument ‘#2‘ in info_message
  • 马克思主义基本原理期末复习下
  • DVWA Brute Force漏洞深度分析与利用指南
  • iwebsec靶场sqli注入(2)
  • Vue3+Spring boot 前后端防抖增强方案
  • 学习记录:DAY33
  • 2025年渗透测试面试题总结-2025年HW(护网面试) 09(题目+回答)
  • HarmonyOS开发基础 --面向鸿蒙的TypeScript基础语法一文入门
  • 大模型本地部署,拥有属于自己的ChatGpt
  • 《仿盒马》app开发技术分享-- 兑换列表展示(68)
  • OSS安全合规实战:金融行业敏感数据加密+KMS自动轮转策略(满足等保2.0三级要求)