课程: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.pswp.cn/news/911748.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/911748.shtml
英文地址,请注明出处:http://en.pswp.cn/news/911748.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GPPT(Graph Pre-training and Prompt Tuning)项目复现

GPPT(Graph Pre-training and Prompt Tuning)项目复现 项目概述 GPPT是一种创新的图神经网络预训练与提示调整框架,由MingChen-Sun等人提出。该项目通过将自然语言处理中的提示学习概念引入图领域,解决了图预训练模型在下游任务中的适应性问题。 环境配置 # 创建Python…

anchor 智能合约 IDL 调用

简介:通过 IDL 生成代码 调用 anchor 智能合约。 全网首发 使用 anchor 可以快速开发 solana 上面的智能合约 , 在本案例中我们 先使用 anchor 创建一个只能合约( 多个函数方法)。 部署到 dev 链上。 通过 anchor 的 IDL 生成 代码…

【Clickhouse系列】事务

目录 1. 标准 ACID 支持场景 (MergeTree 引擎家族) 2. 非 ACID 场景 3. 实验性事务功能 (非云环境) 总结 参考文档 事务性 (ACID) 支持 | ClickHouse Docs ClickHouse ACID 支持核心要点 1. 标准 ACID 支持场景 (MergeTree 引擎家族) • 单分区插入 (原子块) • ✅ 原子性…

在cursor中,配置jdk和maven环境,安装拓展插件

目录 1.手动配置jdk和maven 2.安装java拓展插件 1.手动配置jdk和maven 第一步:按ctrl shift p, 搜索“Preferences: Open User Settings (JSON)” 并回车,打开 settings.json 文件 。然后添加或修改以下内容: "java.home": &qu…

(线性代数最小二乘问题)Normal Equation(正规方程)

Normal Equation(正规方程) 是线性代数中的一个重要概念,主要用于解决最小二乘问题(Least Squares Problem)。它通过直接求解一个线性方程组,找到线性回归模型的最优参数(如权重或系数&#xff…

在架构设计中平衡动态语言与静态语言部署差异的策略分析

在软件架构设计过程中,语言的选型不仅仅关乎开发效率,更直接影响系统的部署速度、运行性能与维护成本。动态语言(如 Python、Node.js)部署快、开发灵活;静态语言(如 Go、Java、Rust)性能强、类型…

我的VSCode中那些插件

前言 最近在研究VUE.JS,而VUE官方推荐使用VSCode作为开发工具,因此最近才开始大量使用这个工具。在使用过程中,总会遇到一些视频博主推荐某某插件,于是我都将其安装在我的VSCode上。这里记录一下,仅供参考。 插件列表…

C# 时间格式日期格式使用合集

一、常用整理 C#时间使用整理,DateTime 使用整理_c#时间格式-CSDN博客 C# 本地时间格式,UTC时间格式,GMT时间格式处理 二、 C#如何获取今天零点的时间 C# 获取周一、周日 三、 C#计算两个时间年份月份差 C#时间点字符串转换为日期,当…

Ribbon负载均衡的具体实现原理

Ribbon 是 Netflix 开源的一款客户端负载均衡工具,广泛应用于微服务架构中,用于在客户端选择目标服务实例。 以下是 Ribbon 负载均衡的具体实现原理: 1. 什么是 Ribbon Ribbon 是一个客户端负载均衡器,负责从服务注册中心&#…

iOS APP上架App Store实践:通过自动化流程和辅助工具高效提

在现代开发流程中,持续集成(CI)已经成为必不可少的环节。对于iOS应用的开发与发布,持续集成不仅限于构建过程,还应该涵盖从代码提交到版本发布的整个生命周期。然而,由于iOS平台对开发环境的限制&#xff0…

3443. K 次修改后的最大曼哈顿距离

3443. K 次修改后的最大曼哈顿距离 题目链接:3443. K 次修改后的最大曼哈顿距离 代码如下: class Solution { public:int maxDistance(string s, int k) {int res 0;// 定义一个大小为 X(88)的数组,并初始化为 0int…

【Ubuntu】Windows11安装虚拟机超详细图文教程(VMware17.6.1 + ubuntu-24.04.2)

目录 前言 一、准备工作 1、工具安装包 2、获取方式 3、本人的电脑安装环境介绍 二、虚拟机磁盘分区(可选) 1、分区助手安装 2、为虚拟机准备一个单独的磁盘分区 三、VMware安装 四、ubuntu镜像安装 1、Ubuntu镜像iso文件加载引导 2、Ubuntu…

计算机视觉(Computer Vision, CV)

目录 一、核心任务 二、常见应用场景 三、主流技术框架与工具 四、热门算法简述 五、发展趋势 六、计算机视觉学习路线图(从入门到实战) 1.阶段总览 2.学习路径详解 阶段一:CV入门基础 学习目标: 推荐内容:…

使用Dagster资产工厂模式高效管理重复ETL任务

本文介绍了如何利用Dagster的资产工厂模式来高效管理和自动化重复的ETL(提取、转换、加载)任务。通过Python函数和YAML配置文件的结合,我们可以轻松地创建和管理大量相似的资产,同时提高代码的可维护性和可配置性。文章还探讨了如…

浅谈开源在线客服系统与 APP 集成的技术方案与优劣势

在为移动端 App 接入在线客服系统的过程中,我经历了长时间的技术选型探索。最初,我也曾被一些“技术理想主义”选项所吸引,比如让用户自己研发界面我提供 API 以获得最高自由度,或集成 SDK 以追求原生体验。然而,随着项…

prometheus+grafana+MySQL监控

prometheusgrafanaMySQL监控 环境说明 操作前提: 先去搭建Docker部署prometheusgrafana...这篇文章的系统 Docker部署prometheusgrafana...的参考文章: Docker部署prometheusgrafana…-CSDN博客 在的节点服务器上搭建MySQL数据库(可以采用直…

多模态+类人认知:Embodied AI迈向AGI的三大瓶颈与突破路径

作者:Yequan Wang;Aixin Sun 摘要 AGI常被视为本质上具有具身特性。随着机器人技术和基础人工智能模型的最新进展,我们正站在一个新时代的门槛上——这一时代以日益通用化的具身人工智能系统为标志。本文通过提出一个涵盖五个层级&#xff…

wpf DataTemplate 宽度和控件宽度一样

wpf DataTemplate 宽度和控件宽度一样 在WPF中,如果你想要一个DataTemplate的宽度与它内部控件的宽度一致,你可以使用几种不同的方法来实现这一点。下面是一些常见的方法: 方法1:使用DataTemplate的Width属性 你可以在DataTemplate中直接设置Width属性,使其与内部控件的…

C#上位机实现报警语音播报

我们在开发C#上位机时,有时候会需要将报警信息通过语音进行播报,今天跟大家分享一下具体的实现过程。 一、组件安装 首先我们创建好一个Windows窗体项目,然后添加System.Speech库引用。 点击引用,右击添加引用,在程…

01-StarRocks安装部署FAQ

StarRocks安装部署FAQ 概述 本文档整理了StarRocks安装部署过程中常见的问题和解决方案,涵盖了环境准备、集群部署、配置优化等各个方面,帮助用户快速解决安装部署过程中遇到的问题。 环境准备FAQ Q1: StarRocks对硬件配置有什么要求? A: StarRocks的硬件配置要求如下:…