首页主机资讯如何在CentOS上使用JMeter进行自动化测试

如何在CentOS上使用JMeter进行自动化测试

时间2025-12-12 17:06:03发布访客分类主机资讯浏览1207
导读:在 CentOS 上使用 JMeter 进行自动化测试 一 环境准备与安装 安装 Java 8+(JMeter 5.x 要求 Java 8 及以上),并配置环境变量: 安装 OpenJDK:sudo yum install -y jav...

在 CentOS 上使用 JMeter 进行自动化测试

一 环境准备与安装

  • 安装 Java 8+(JMeter 5.x 要求 Java 8 及以上),并配置环境变量:
    • 安装 OpenJDK:sudo yum install -y java-1.8.0-openjdk-devel
    • 配置环境变量(示例):/etc/profile 中添加
      • export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
      • export PATH=$PATH:$JAVA_HOME/bin
    • 验证:java -version
  • 安装 Apache JMeter(推荐二进制包方式,便于多版本管理):
    • 下载并解压:wget https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.4.3.tgz & & tar -xzf apache-jmeter-5.4.3.tgz -C /opt/
    • 配置环境变量:/etc/profile 中添加
      • export JMETER_HOME=/opt/apache-jmeter-5.4.3
      • export PATH=$PATH:$JMETER_HOME/bin
    • 验证:jmeter -v
  • 可选:使用 Docker 运行 JMeter(便于环境隔离)
    • 拉取镜像:sudo docker pull jmeter:latest
    • 运行示例:sudo docker run -it --rm -v /path/to/scripts:/scripts jmeter:latest -n -t /scripts/test.jmx -l /scripts/result.jtl -e -o /scripts/report

二 编写可自动化的 JMeter 脚本

  • 在本地 GUI 创建并调试脚本(.jmx),关键要素:
    • 线程组:设置并发用户数(Number of Threads)、Ramp-Up Period、循环次数
    • 取样器:HTTP Request、JDBC Request 等
    • 配置元件:HTTP Request Defaults、HTTP Cookie Manager、HTTP Header Manager
    • 定时器:模拟思考时间(如 Constant Timer)
    • 断言:Response Assertion、Duration Assertion(校验状态码、响应内容、响应时间阈值)
    • 监听器:仅保留轻量级监听器用于结果落盘(如 Summary Report、Aggregate Report),避免在压测时消耗资源
  • 参数化与数据驱动:
    • 使用 CSV Data Set Config 读取测试数据(如账号、密码),在请求中引用变量 ${ username} ${ password}
  • 团队化与复用:
    • 用逻辑控制器(Transaction Controller)聚合业务链路耗时
    • 将公共配置抽离为变量,形成可复用脚本与文档说明

三 在 CentOS 上非 GUI 执行与报告生成

  • 非 GUI 执行(推荐):jmeter -n -t /path/to/testplan.jmx -l /path/to/result.jtl
    • 常用参数:
      • -n 非 GUI 模式
      • -t 指定测试计划
      • -l 指定结果文件(JTL/CSV)
      • -j 指定日志文件
      • -e -o 测试结束后生成 HTML 报告(需保证输出目录为空)
  • 仅生成 HTML 报告(已有 JTL 时):jmeter -g /path/to/result.jtl -o /path/to/report
  • 示例脚本(可按需加入清理与归档):
    • jmeter -n -t /opt/jmeter/script/test.jmx -l /opt/jmeter/log/test.jtl -j /opt/jmeter/log/run.log -e -o /opt/jmeter/html/report
  • 报告解读要点:关注 响应时间(含 90%/95%/99% Line)吞吐量(Throughput)错误率 等核心指标

四 与 Jenkins 集成实现持续自动化

  • 在 Jenkins 安装插件:Performance Plugin(用于展示 JMeter 性能趋势与报表)
  • 构建步骤(Execute shell):
    • 清理旧数据:rm -rf /opt/jmeter/log/* /opt/jmeter/html/* ${ WORKSPACE} /test.jtl
    • 执行压测:/opt/jmeter/bin/jmeter.sh -n -t /opt/jmeter/script/test.jmx -l test.jtl -j /opt/jmeter/log/test.log
  • 构建后操作:
    • 选择 Publish Performance Test Result Report,指定 JTL 文件路径(如 ${ WORKSPACE} /test.jtl
  • 触发方式:可配置 定时任务(Cron) 或代码变更触发,实现按日程或按提交自动压测与报表归档

五 性能与稳定性优化要点

  • JMeter 自身调优:
    • 调整 JVM 堆内存(如在 jmeterjmeter.sh 中设置 -Xms/-Xmx,一般不超过物理内存的 2/3
    • HTTP 客户端优化:如设置 httpclient4.idletimeout=10000(单位毫秒)
  • 操作系统与网络:
    • 提升文件句柄与进程数:/etc/security/limits.conf 中设置 * soft/hard nofile 65536* soft/hard nproc 65565
    • TCP 参数优化:/etc/sysctl.conf 中设置
      • net.ipv4.tcp_tw_reuse=1net.ipv4.tcp_fin_timeout=30
      • net.ipv4.ip_local_port_range=1024 65000
      • 执行 sysctl -p 生效
  • 分布式压测(突破单机瓶颈):
    • 架构:Master–Slave;Master 分发脚本与汇总结果,Slave 执行压测
    • 配置:jmeter.properties 中设置 remote_hosts=slave1_ip:1099,slave2_ip:1099
    • 启动:jmeter-server(Slave),Master 命令行使用 -R slave1_ip,slave2_ip 远程启动
    • 注意:Master/Slave 网络互通、时间同步、关闭不必要防火墙规则

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何在CentOS上使用JMeter进行自动化测试
本文地址: https://pptw.com/jishu/770675.html
Kubernetes安装失败如何排查 CentOS如何使用JMeter进行负载测试

游客 回复需填写必要信息