1. 前言

在完成性能测试脚本的调试工作之后,就可以进入正式的性能测试脚本执行阶段了。JMeter脚本执行应使用CLI命令行的形式,同时应该禁用不需要的配置元件,避免GUI页面和部分配置元件影响性能测试结果。
jmeter -n -t [jmx file] -l [results file] -j [log file] -e -o [Path to web report folder]
JMeter启动提示

JMeter的命令格式以及常用的参数如下表所示,更多参数及含义可通过jmeter -?命令查看。

参数名 含义 参数值示例
-n 以非GUI的形式启动运行 /
-t 指定负载测试脚本的jmx文件路径 D:\Test\PlanDemo.jmx
-l 指定负载测试脚本运行结果的jtl文件路径 D:\Test\result.jtl
-j 指定JMeter运行日志的log文件路径 D:\Test\jmeter.log
-e 表明负载测试结束后生成HTML报告 /
-o 指定负载测试脚本运行生成的HTML报告文件夹路径,路径下非空时会报错,或加-f参数强制清空 D:\Test\WebReport\
-s 表明JMeter以服务节点的方式启动 /
-r 表明JMeter以远程调用的方式启动,远程节点在jmeter.properties中配置 remote_hosts=192.168.0.112,192.168.0.113
-R 表明JMeter以远程调用的方式启动,并调用以下指定的远程节点,会覆盖jmeter.properties中的配置 192.168.0.112,192.168.0.113

2. 脚本执行

JMeter支持本地和远程调用两种启动方式。

2.1. 本地执行

JMeter本地执行,只需打开命令行终端,按照入戏个事输入命令后回车,JMeter即可开始根据jmx脚本执行性能测试,执行完成后自动退出,并在指定的路径下生成对应的结果文件和HTML报告。
jmeter -n -t [jmx file] -l [results file] -j [log file] -e -o [Path to web report folder]

2.2. 远程调用执行

  1. 从JMeter 4.0版本开始,默认的RMI传输机制会使用SSL,这需要密钥和证书才能够正常的工作。因此,在以远程调用的方式启动JMeter之前,需通过create-rmi-keystore脚本,生成jks文件,并拷贝到所有客户节点和服务节点的JMeter程序bin目录下。
    JMeter启动提示
  2. 各服务端的JMeter使用如下命令,以服务节点的形式启动。
    jmeter-serverjmeter -s
  3. 客户端的JMeter使用如下命令启动,即可调用指定的远程服务节点执行负载测试。
    jmeter -n -t C:\Users\boyce\PlanDemo.jmx -l C:\Users\boyce\result\res.jtl -e -o C:\Users\boyce\result\WebReport\ -R 192.168.0.112

3. 报告生成与分析

JMeter中自带多种报告,如:图表结果、聚合报表、总结报表、响应时间图等。除此之外,还可以集成第三方报告生成的插件,使报告更加完善全面。

3.1. SummaryReport

在Summary Report组件导入测试结果jtl文件后,展示的总结报表如下。通过以Label字段排序,可得知每一个事务的样本量、平均耗时、最小耗时、最大耗时、耗时标准偏差、错误率、吞吐量、接收速率、发送速率以及平均字节大小。

3.2. AggregateReport

在Aggregate Report组件导入测试结果jtl文件后,展示的总结报表如下。通过以Label字段排序,可得知每一个事务的样本量、平均耗时、中位数耗时、90%耗时、95%耗时、99%耗时、最小耗时、最大耗时、错误率、吞吐量、接收速率以及发送速率。

3.3. Aggregate Graph

聚合图形报告主要将聚合报告以图形化的形式进行展示,可自定义选择待展示的列标题、事务标签等内容。
在Aggregate Graph组件导入测试结果jtl文件后,指定展示平均耗时、90%耗时、最大耗时字段,并仅保留父级事务标签后,生成的聚合图形报告如下。

3.4. Response Time Graph

响应时间图,主要统计并展示测试周期内各个事务的响应时间变化曲线。
在Response Time Graph组件导入测试结果jtl文件,筛选保留父级事务标签后,生成的响应时间图如下。

3.5. View Result in Table

以表格查看结果组件按照时间流水的形式,依次展示每一个采样器的采样结果,包含采样耗时、采样状态、接收数据量、发送数据量、延时、连接耗时等信息。


性能测试工具JMeter合集
【Performance】01. 性能测试技术初探篇之性能测试介绍
【Performance】02. 性能测试技术初探篇之常用性能测试工具
【Performance】03. 性能测试技术初探篇之 JMeter 工具使用
【Performance】04. 性能测试技术磨合篇之性能测试场景设计
【Performance】05. 性能测试技术磨合篇之脚本录制和调试
【Performance】06. 性能测试技术磨合篇之脚本执行和结果分析
【Performance】07. 性能测试技术历练篇之性能监控工具
【Performance】08. 性能测试技术历练篇之性能分析神器 JProfile
【Performance】09. 性能测试技术历练篇之 Java 诊断工具 Arthas