JMeter 是一个功能强大的开源性能测试工具,广泛应用于负载测试、压力测试和性能测试。在工作中,掌握一些常用的 JMeter 技能可以大大提高测试效率。
1. 创建和配置测试计划
-
添加线程组:线程组是测试计划的核心,用于模拟用户并发。
-
右键点击测试计划 -> 添加 -> 线程(用户) -> 线程组。
-
设置线程数(用户数)、循环次数和启动时间。
-
-
添加 HTTP 请求:用于模拟用户请求。
-
右键点击线程组 -> 添加 -> 取样器 -> HTTP 请求。
-
设置服务器名称、路径、请求方法(GET/POST)和参数。
-
2. 参数化测试
-
使用 CSV 数据文件:从外部文件读取测试数据。
-
右键点击线程组 -> 添加 -> 配置元件 -> CSV 数据文件设置。
-
设置文件名、变量名称和分隔符。
-
在 HTTP 请求中使用
${变量名}
引用数据。
-
-
用户定义的变量:定义全局变量。
-
右键点击测试计划 -> 添加 -> 配置元件 -> 用户定义的变量。
-
在 HTTP 请求中使用
${变量名}
引用变量。
-
3. 断言
-
响应断言:验证服务器返回的响应内容。
-
右键点击 HTTP 请求 -> 添加 -> 断言 -> 响应断言。
-
设置要检查的字段(如响应文本、响应代码)和匹配规则。
-
-
JSON 断言:验证 JSON 格式的响应。
-
右键点击 HTTP 请求 -> 添加 -> 断言 -> JSON 断言。
-
设置 JSON 路径表达式和预期值。
-
4. 定时器
-
固定定时器:在每个请求之间添加固定的延迟。
-
右键点击 HTTP 请求 -> 添加 -> 定时器 -> 固定定时器。
-
设置延迟时间(毫秒)。
-
-
随机定时器:在每个请求之间添加随机的延迟。
-
右键点击 HTTP 请求 -> 添加 -> 定时器 -> 高斯随机定时器。
-
设置延迟时间和偏差。
-
5. 监听器
-
查看结果树:查看每个请求的详细结果。
-
右键点击线程组 -> 添加 -> 监听器 -> 查看结果树。
-
-
聚合报告:生成测试结果的汇总报告。
-
右键点击线程组 -> 添加 -> 监听器 -> 聚合报告。
-
查看吞吐量、平均响应时间、错误率等指标。
-
-
图形结果:以图表形式展示测试结果。
-
右键点击线程组 -> 添加 -> 监听器 -> 图形结果。
-
6. 分布式测试
-
主从模式:在多台机器上分布式运行 JMeter。
-
在主控机上运行 JMeter,配置远程主机。
-
在
jmeter.properties
文件中设置远程主机的 IP 地址。 -
使用命令行启动远程测试:
jmeter -n -t testplan.jmx -R remote_host1,remote_host2
-
7. 脚本录制
-
HTTP(S) 测试脚本录制器:录制用户操作生成测试脚本。
-
右键点击测试计划 -> 添加 -> 非测试元件 -> HTTP(S) 测试脚本录制器。
-
设置端口号和目标控制器。
-
在浏览器中配置代理,指向 JMeter 的录制器。
-
8. 性能监控
-
PerfMon 插件:监控服务器的 CPU、内存、磁盘等资源使用情况。
-
右键点击测试计划 -> 添加 -> 监听器 -> PerfMon Metrics Collector。
-
在服务器上安装 ServerAgent,启动后配置 JMeter 连接。
9. 调试和日志
-
调试取样器:查看变量和属性的值。
-
右键点击线程组 -> 添加 -> 取样器 -> 调试取样器。
-
-
日志查看:通过 JMeter 日志排查问题。
-
日志文件位于
jmeter.log
。 -
可以在
jmeter.properties
中调整日志级别。
-
10. 高级功能
-
BeanShell 脚本:编写自定义逻辑。
-
右键点击线程组 -> 添加 -> 前置处理器/后置处理器 -> BeanShell 预处理器/后置处理器。
-
使用 Java 语法编写脚本。
-
-
条件控制器:根据条件执行请求。
-
右键点击线程组 -> 添加 -> 逻辑控制器 -> 如果(If)控制器。
-
设置条件表达式。
-
11. 测试报告生成
-
生成 HTML 报告:生成详细的 HTML 测试报告。
-
使用命令行运行测试并生成报告:
jmeter -n -t testplan.jmx -l result.jtl -e -o report_folder
-
报告包括图表、统计数据和错误分析。
-
12. 常用命令行操作
-
非 GUI 模式运行测试:
jmeter -n -t testplan.jmx -l result.jtl
-
指定日志文件:
jmeter -n -t testplan.jmx -l result.jtl -j logfile.log
-
远程启动测试:
jmeter -n -t testplan.jmx -R remote_host1,remote_host2
13. 常见问题排查
-
请求失败:检查服务器状态、网络连接和请求参数。
-
性能瓶颈:使用 PerfMon 插件监控服务器资源。
-
脚本错误:通过调试取样器和日志排查问题。