加载第三方插件
JMeter 第三⽅插件加载
简介
JMeter第三方插件加载是一个扩展JMeter功能的重要过程,它允许用户添加额外的测试元素、监听器、断言等,以满足更复杂的测试需求。由于JMeter本身不具备直接安装第三方插件的能力,因此需要使用第三方插件管理工具,如JMeter Plugins Manager。
jmeter Plugin Manager
- Plugins Manager下载地址: https://jmeter-plugins.org/install/Install/
- 操作步骤:
- 下载plugin Manager的jar包
- 将jar包放在jmeter的
lib/ext
目录下 - 重启 JMeter 选择 "Options" 菜单即可看到Plugin Manager
常见第三⽅插件
3 Basic Graph
- 简介:jMeter的
3 Basic Graph
(三个基本图形)插件是一组非常实用的性能测试工具,这些插件在性能测试过程中提供了关键的监控和数据分析功能。 - Response Times Over Time(TRT):TRT插件用于监控和展示事务的响应时间。在测试过程中,它可以实时显示响应时间的平均值以及整体响应时间走向。这对于分析系统性能瓶颈、优化系统响应速度具有重要意义。当需要了解系统在不同负载下的响应时间表现时,TRT插件能够提供详细的数据支持。
- Active Threads Over Time:该插件用于监控和展示每秒活动的线程总数。在性能测试过程中,了解活动线程数的变化有助于评估系统的并发处理能力和负载情况。当需要分析系统在高并发场景下的表现时,Active Threads Over Time插件能够提供关键的数据支持。
- Transactions per Second(TPS):TPS插件用于监控和展示每秒事务数。在测试脚本执行过程中,它可以实时显示服务器的TPS表现,包括整体趋势、实时平均值走向以及稳定性等。TPS是衡量服务器处理能力的综合体现,是性能测试中最重要的指标之一。当需要评估服务器在单位时间内能够处理的事务数量时,TPS插件能够提供直观的数据支持。
Concurrency Thread Group(并发线程组):
- 简介:并发线程组是JMeter中一个用于配置多个线程计划的简化方法,旨在保持特定的并发水平。
- 参数详解
Target Concurrency
:目标并发(线程数)。这是您希望达到的并发线程数,但请注意,这只是一个期望值,实际并发数可能受电脑性能、网络、内存、CPU等因素影响而无法完全达到。Ramp Up Time
:启动时间。在这段时间内,JMeter将尝试启动足够的线程以达到Target Concurrency。Ramp-Up Steps Count
:阶梯次数。如果设置了此参数,JMeter将在Ramp Up Time内分多次(即阶梯次数)启动线程,每次启动的线程数为目标线程数除以阶梯次数。Hold Target Rate Time
:持续负载运行时间。在达到Target Concurrency后,所有线程将保持运行此段时间。Time Unit
:时间单位。可以是分钟或秒,用于Ramp Up Time和Hold Target Rate Time的时间单位。
- 示例:
- 10个线程,60 s 时间达到最⼤线程
- 其中有 3 次阶梯平均增长
- 并在最⼤线程持续 60s
Ultimate Thread Group(终极线程组、阶梯线程组)
- 简介:阶梯线程组是JMeter中一个非常强大且灵活的线程组插件,它允许用户设置多条线程的任务,以实现复杂的测试场景。
- 参数详解
Start Threads Count
:当前行启动的线程总数,即该任务需要启动的线程数量。Initial Delay, sec
:延时启动当前行的线程,单位为秒。这是从测试开始到启动当前行线程之间的等待时间。Startup Time, sec
:启动当前行所有线程达峰值所需时间,单位为秒。在这段时间内,线程将逐渐增加到Start Threads Count指定的数量。Hold Load For, sec
:当前行线程达到峰值后的稳定加载时间,单位为秒。在这段时间内,线程将保持峰值数量进行稳定加载。Shutdown Time, sec
:停止当前行所有线程所需时间,单位为秒。在这段时间内,线程将逐渐停止。
- 示例:
- 10个线程
- 60 s 时间达到最⼤线程
- 其中有 3 次阶梯增长
- 最后⼀次阶梯增长 5 个线程
- 并在最⼤线程持续 60s
Arrivals Thread Group(抵达线程组)
- 简介:Arrivals Thread Group是JMeter中的一个高级插件,由BlazeMeter提供,用于在性能测试中模拟用户流量的到达情况。这个线程组通过控制“到达率”(arrivals per time unit)来模拟用户流量,更加精准地匹配真实世界的用户行为模式。
- 主要参数:
Target Rate (arrivals/second/minute)
:指定每秒/每分钟期望的到达次数(即TPS目标)。这是设置线程组目标吞吐量的核心参数。Ramp-up Time (sec/min)
:加载时间,指从测试开始到达到最大TPS所需的时间。这有助于模拟用户逐渐增加的场景。Ramp-Up Steps Count
:可以理解为每秒/每分钟启动用户数,用于控制到达目标请求数的阶梯数。Hold Target Rate Time (seconds/minutes)
:达到目标TPS后维持该速率的时间。此设置对于稳定负载测试尤其重要。
- 示例
- 10 QPS
- 60 s 时间达到最⼤ QPS
- 其中有 3 次阶梯增长
- 最后⼀次阶梯增长 5 QPS
- 并在最⼤ QPS 持续 60s
Variables From CSV File
- 简介:Variables From CSV File 是JMeter中的一个插件(或称为配置元件),它允许用户从CSV(逗号分隔值)文件中读取变量,并在测试过程中使用这些变量。这种方式非常适合于性能测试中的参数化需求,特别是在需要频繁更改测试参数而不想修改脚本本身时。
- 使用方法:
- 准备CSV文件:首先,需要准备一个CSV文件,其中包含了需要参数化的变量和对应的值。CSV文件的格式通常很简单,就是一行代表一个数据记录,列之间用逗号分隔。
- 添加配置元件:在JMeter中,需要在线程组下添加一个配置元件,即jp@gc - Variables From CSV File(注意,这个插件可能需要单独下载并安装到JMeter中)。
- 配置CSV文件路径:在配置元件中,需要指定CSV文件的路径(可以是相对路径或绝对路径)。
- 设置变量前缀和分隔符:根据需要,可以设置变量前缀(在引用变量时需要加上这个前缀)和分隔符(CSV文件中变量名和值之间的分隔符,默认为逗号,但可以根据实际情况进行修改)。
- 引用变量:在测试脚本中,可以通过${变量名}(如果设置了前缀,则为${前缀_变量名})的形式来引用CSV文件中的变量。
jp@gc - Redis Data Set
- 简介:
jp@gc - Redis Data Set
是一个用于 Apache JMeter 的插件,它允许测试人员在性能测试中直接从 Redis 数据库读取数据。 - 操作步骤
- docker run -d --name redis -p 6379:6379 redis
- 编写
.py
文件:vi redis.py
示例代码# _*_ coding: utf-8 _*_ import redis Key = 'Jmeter' redis_info = { 'host': '127.0.0.1', 'port': 6379 } def conncet_redis(): pool = redis.ConnectionPool(**redis_info) try: r = redis.Redis(connection_pool=pool) except Exception as err: raise err return r r = conncet_redis() for i in range (0,100): r.lpush(key, i)
- 运行文件:
python redis.py
- redis-cli
- keys *
- lrang Jmeter 0 10
- 在jmeter中配置jp@gc - Redis Data Set
Autostop Listener
- 简介:主要用于在性能测试过程中自动停止测试。当测试达到某些预设的阈值时,该监听器会自动触发停止操作,从而帮助测试人员及时终止不必要的测试过程,节省时间和资源。
- 触发条件:
- 平均响应时间(Average Response Time):例如,可以设置当连续10秒的平均响应时间大于10000毫秒时停止测试。
- 平均等待时间(Average Latency):连接10秒的平均等待时间大于5000毫秒时停止测试。
- 错误率(Error Rate):10秒内错误率一直高于50%时停止测试。
Response Times Distribution(响应时间分布)
- 简介:Response Times Distribution指的是在性能测试过程中,对系统或应用程序响应时间的分布情况进行分析和展示。它通常以图形化的方式(如柱状图、直方图等)呈现,展示了不同响应时间区间内请求的数量或比例。
- 详解
- X轴:通常表示响应时间,即请求从发送到接收响应所经过的时间。这个时间可以根据需要被划分为不同的区间,例如0-100ms、100-200ms等。
- Y轴:表示在相应时间区间内的请求数量或比例。通过Y轴的数据,可以直观地看到哪些时间区间内的请求数量较多,哪些时间区间内的请求数量较少。
总结
- 简介
- jmeter Plugin Manager
- 常见第三方插件