CentOS下JMeter如何进行Web测试
导读:CentOS下使用JMeter进行Web测试 一 环境准备 安装 Java(JMeter 基于 Java,推荐 OpenJDK 8) 安装命令:sudo yum install -y java-1.8.0-openjdk-devel 验...
CentOS下使用JMeter进行Web测试
一 环境准备
- 安装 Java(JMeter 基于 Java,推荐 OpenJDK 8)
- 安装命令:
sudo yum install -y java-1.8.0-openjdk-devel - 验证:
java -version
- 安装命令:
- 安装 JMeter(两种常用方式)
- 方式一 手动安装(推荐,版本可控)
- 下载并解压:
wget https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.4.3.tgz & & tar -xzf apache-jmeter-5.4.3.tgz - 移动到目录:
sudo mv apache-jmeter-5.4.3 /opt/jmeter - 配置环境变量(写入
~/.bashrc或/etc/profile):export JMETER_HOME=/opt/jmeterexport PATH=$PATH:$JMETER_HOME/bin
- 使生效:
source ~/.bashrc - 验证:
jmeter -v
- 下载并解压:
- 方式二 YUM 安装(版本可能滞后)
- 新建 repo:
sudo vi /etc/yum.repos.d/jmeter.repo - 写入:
[jmeter] name=JMeter Repository baseurl=https://dl.bintray.com/apache//jmeter/binaries/ enabled=1 gpgcheck=0 - 安装与验证:
sudo yum install -y jmeter & & jmeter -v
- 新建 repo:
- 方式一 手动安装(推荐,版本可控)
- 可选 Docker 方式(便于隔离环境)
- 安装 Docker:
sudo yum install -y docker & & sudo systemctl start docker & & sudo systemctl enable docker - 运行容器:
sudo docker run -it --rm -v /path/to/scripts:/scripts jmeter:latest说明:JMeter 在 GUI 模式资源占用较高,压测建议在 非 GUI 模式执行;若需图形界面,可在本地机器运行 GUI 并将脚本与结果目录挂载到服务器执行。
- 安装 Docker:
二 编写Web测试计划
- 线程组(模拟并发用户)
- 添加路径:测试计划 → 右键 添加 → Threads(Users) → 线程组
- 关键参数:线程数(并发用户数)、Ramp-Up Period(启动时间)、循环次数/调度器(持续时间)
- HTTP 请求默认值(减少重复配置)
- 添加路径:线程组 → 添加 → 配置元件 → HTTP Request Defaults
- 配置:协议(http/https)、服务器名称或IP、端口、编码等
- HTTP 请求(Sampler)
- 添加路径:线程组 → 添加 → Sampler → HTTP Request
- 配置:方法(GET/POST)、路径、参数/Body、文件上传、重定向/超时等
- HTTP 信息头管理器(可选)
- 添加路径:线程组 → 添加 → 配置元件 → HTTP Header Manager
- 常用头:Content-Type、User-Agent、Authorization 等
- 断言(校验结果有效性)
- 添加路径:HTTP 请求 → 添加 → 断言
- 常用:响应代码断言(200/302)、响应文本/JSON Path 断言、响应时间断言
- 监听器(收集与分析结果)
- 常用:查看结果树(调试用)、聚合报告/Summary Report(统计指标)、图形结果
- 参数化与数据驱动
- 添加路径:线程组 → 添加 → 配置元件 → CSV Data Set Config
- 用途:从 CSV 文件读取多组 账号/搜索词/表单数据,实现数据与脚本分离
- 定时器(思考时间/节奏控制)
- 添加路径:线程组 → 添加 → 定时器
- 常用:固定定时器/高斯随机定时器,模拟用户操作间隔,避免不真实并发 提示:脚本结构建议遵循“一个测试计划、至少一个线程组、取样器不可少、每个取样器配断言、至少一种监听器”的规范,便于复用与维护。
三 执行与报告
- 非 GUI 命令行执行(压测推荐)
- 基本执行:
jmeter -n -t /path/to/test_plan.jmx -l /path/to/results.jtl - 生成 HTML 报告:
jmeter -n -t /path/to/test_plan.jmx -l /path/to/results.jtl -e -o /path/to/report - 仅从既有结果生成报告:
jmeter -g /path/to/results.jtl -o /path/to/report - 常用参数:
-n非 GUI 模式-t指定测试计划 .jmx-l指定结果文件 .jtl-e测试结束后生成报表-o报表输出目录(必须为空)
- 基本执行:
- 查看报告
- 将生成的 report/index.html 下载到本地,用浏览器打开即可查看 吞吐量、响应时间、错误率 等指标
- 运行规范
- 压测时建议**禁用“查看结果树”**等占用较高的监听器,避免压测机成为瓶颈
- 分布式压测(可选):在 jmeter.properties 配置
remote_hosts=IP:1099,在 Master 执行jmeter -n -t plan.jmx -R IP1:1099,IP2:1099;各 Slave 启动jmeter-server。
四 常见问题与排查
- 无法启动或命令找不到
- 检查 JAVA_HOME/PATH 是否正确,执行
java -version与jmeter -v验证
- 检查 JAVA_HOME/PATH 是否正确,执行
- 连接目标站点失败
- 确认被测服务在目标 IP/端口 可达,必要时在服务器放行防火墙端口(如
firewall-cmd --add-port=8080/tcp --permanent & & firewall-cmd --reload)
- 确认被测服务在目标 IP/端口 可达,必要时在服务器放行防火墙端口(如
- 响应码 4xx/5xx 或业务失败
- 使用 查看结果树 与 断言 定位问题;检查 请求头/参数/认证/Cookie
- 报表为空或字段缺失
- 确保使用 -l 指定 .jtl 结果文件,且测试计划中包含 监听器;生成报告前确认 输出目录为空
- CSV 参数化不生效
- 检查 CSV Data Set Config 的 文件名、编码、分隔符、是否循环/共享 等配置,确保与数据文件一致。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS下JMeter如何进行Web测试
本文地址: https://pptw.com/jishu/766032.html
