jmeter -- 静默运行及自动化

本文详细介绍了如何使用JMeter进行静默压测,包括非GUI模式执行、参数解析、测试结果报告生成等。此外,还讲解了运行优先级设置,如按次数循环、按调度器时间或永远循环,并展示了如何通过参数化运行来调整并发数、循环次数和执行时长。最后,通过一个自动化脚本实例展示了如何批量执行不同线程数的压测任务并生成报告。
摘要由CSDN通过智能技术生成

静默压测

  • 静默压测的意义
  • 高并发压测场景中,为了减少压测工具对压测机的影响,一般采用静默(无界面)的压测模式
  • 静默压测时,可以通过对脚本的修改,达到自动化压测的效果
  • jmeter参数解析
 jmeter -n -t *.jmx -l test1.jtl -e -o report1/ -r

 参数解析:
	-n:非GUI模式执行Jmeter   
	-t:执行测试文件所在的位置及文件名   
	-l:指定生成测试结果的保存文件,jtl文件格式 
	-j:指定日志路径,路径不存在则自动创建  
	-e:测试结束后,生成测试报告  
	-o:指定测试报告存放位置,且文件夹下必须为空 
	-g:指定测试结果文件路径,仅用于生成测试报表,参数为csv结果文件 
	-r:启动所有在remote_hosts配置的压测机
	-R:启动在remote_hosts配置了且指定ip的压测器,语法: -R IP1,IP2,IP3
  • 根据测试结果生成测试报告
  • 可以在压测结束后直接生成报告,也可根据压测结果单独生成报告
# 静默运行并生成测试结果
jmeter -n -t demo.jmx -l td01.jtl

# 根据测试结果生成html测试报告
mkdir report1 && jmeter -g td01.jtl -e -o report1

运行优先级

  • jmeter运行有控制循环次数运行和控制持续时间运行2种模式
  • 优先级:按次数循环 > 按照调度器时间 > 永远循环
    • 设置次数后按照循环次数运行,其他设置无效
    • 不设置循环次数时,脚本保存后默认勾选永远,运行时会持续运行
    • 不设置循环次数时,勾选调度器,持续时间必填,运行时按照设置的时间持续运行

在这里插入图片描述

参数化运行

  • 参数化方式
  • 并发数设置为${__P(concurrent_number,1)},默认1个用户并发
  • 循环次数设置为${__P(cycles,1)},默认1个循环
  • 执行时长设置为${__P(duration,60)},默认60s
  • 如果同时设置了循环次数和执行时长,优先循环次数。因此需按照持续时长运行时,需要去掉循环次数设置
  • 参数化运行
 jmeter -n -t demo1.jmx -J concurrent_number=8 -J duration=60 -J cycles=2

自动化运行

  • 线程组脚本

在这里插入图片描述

  • 参数化脚本
#! /bin/bash

# 压测脚本中并发数:thread_num,压测时间应为10秒
export jmx_template="demo"
export suffix=".jmx"
export jmx_template_filename="${jmx_template}${suffix}"
export os_type=`uname`
export wait_time=10

# 需要在系统变量中定义jmeter根目录的位置,如下
export jmeter_path="/Users/whtest/package/apache-jmeter-5.4.3"

echo "自动化压测开始"

# 压测并发数列表
thread_number_array=(10 20 30)
for num in "${thread_number_array[@]}"
do
    echo "============================================================"
    echo "${num}线程压测开始"
    # 生成对应压测线程的jmx文件
    export jmx_filename="${jmx_template}_${num}${suffix}"
    export jtl_filename="test_${num}.jtl"
    export web_report_path_name="web_${num}"

    rm -f ${jmx_filename} ${jtl_filename}
    rm -rf ${web_report_path_name}

    cp ${jmx_template_filename} ${jmx_filename}
    echo "生成jmx压测脚本 ${jmx_filename}"

    if [[ "${os_type}" == "Darwin" ]]; then
        sed -i "" "s/thread_num/${num}/g" ${jmx_filename}
    else
        sed -i "s/thread_num/${num}/g" ${jmx_filename}
    fi

    # JMeter 静默压测
    ${jmeter_path}/bin/jmeter -n -t ${jmx_filename} -l ${jtl_filename}

    # 生成Web压测报告
    ${jmeter_path}/bin/jmeter -g ${jtl_filename} -e -o ${web_report_path_name}

    rm -f ${jmx_filename} ${jtl_filename}

	# 压测结束后进入等待,时间根据具体需求设置
    if [ ${num} -ne 30 ];then
        echo "${num}线程压测结束,等待${wait_time}s"
        sleep ${wait_time}
        echo "============================================================"
    else
        echo "${num}线程压测结束"
        echo "============================================================"
    fi
done
echo "自动化压测全部结束"
JMeter是一个开源的压力测试工具,用于对Web应用、应用程序接口(API)和其他网络服务进行性能测试。JMeter插件系统允许用户扩展JMeter的功能,并提供了一系列的插件来满足不同的测试需求。 `jmeter-plugins-cmn-jmeter-0.7.jar` 这个文件看起来像是 JMeter 的一个插件包,不过其版本信息似乎有些过时(0.7版),通常推荐使用最新的稳定版本以获得最佳功能和兼容性。 ### 下载步骤: 1. **访问官方站点**:首先前往 [Apache JMeter官方网站](https://jmeter.apache.org/) 或者 [Apache JMeter GitHub页面](https://github.com/apache/jmeter),获取关于最新版本的信息以及如何安装插件的相关指导。 2. **查找所需插件**:在网站上搜索 `Common Plugins` 或者直接输入 `jmeter-plugins-cmn` 来查找相关的插件列表。请注意,此插件的名称可能会有所不同,在最新的文档或API页面中,应找到对应的功能描述及下载链接。 3. **确认版本和兼容性**:在选择下载之前,请务必确认该插件是否与您当前使用的 JMeter 版本兼容。如果插件有多个版本供选择,请查阅它们之间的差异说明,选择最适合您的版本。 4. **下载并安装**:点击对应的下载链接,将文件保存到本地计算机上。然后打开JMeter,通过“添加JAR或目录”按钮,在JMeter的配置文件 `lib/ext` 目录下导入插件的 .jar 文件。确保在启动JMeter前已更新配置文件路径以包含新导入的插件。 5. **验证安装**:完成以上步骤后,重启JMeter并检查插件是否成功加载。通常,新插件会出现在JMeter的“取样”、“监听”等组件菜单中,你可以从这里确认插件是否可用。 ### 安全提示: - 确保下载来自可信源的插件。避免从不可信或未经授权的第三方站点下载文件,以防恶意软件感染。 - 使用杀毒软件扫描文件以确保安全性。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值