2025-05-12
jmeter基础
00
请注意,本文编写于 222 天前,最后修改于 157 天前,其中某些信息可能已经过时。

目录

前言
1. 自动生成HTML图形化报告
参数解释:
在jmeter的bin目录下,执行如下命令,以我的项目为例:
如下图所示:
然后去目标目录中查看HTML图形化报告文件中的内容。
打开index.html文件,如下图所示:
2. 使用已有的测试结果生成HTML报告
使用命令:
参数解释:
命令行进入到测试结果所在的文件目录,以我的文件目录为例,执行如下命令:
之后就可以在demo目录中查看生成的测试报告了。
推荐配置JMeter的环境变量,这样就可以在任何目录中执行JMeter命令了。
3. HTML图形化报告内容详解
1. Dashboard页面:
1. Test and Report informations: ->测试结果报告信息:
2. APDEX(Application Performance Index):->应用程序性能满意度标准:
3. Requests Summary: ->请求的通过率(PASS)与失败率(FAIL),百分比显示。
4. Statistics:->统计分析,基本将Summary Report(汇总报告)与Aggrerate Report(聚合报告)的结果合并。
5. Errors:->错误情况,按照不同的错误类型,将所有的错误结果进行展示。
6. Top 5 Errors by sampler:->显示前五个错误类型取样器。
2. Charts页面:(辅助分析)
1. Over Time图表:
1. Response Time Over Time图表:
2. Respnse Time Percentiles Over Time(successful responses)图表:
3. Active Threads Over Time图表
4. Bytes Throughput Over Time图表:->字节接收与发送的数量,每秒传输字节的吞吐量,表明JMeter在测试时,随着时间推移发送和接收的字节数
5. Latencies Over Time图表:->延迟时间变化图表
6. Connnect Time Over Time
2. Thoughput for Charts页面
1. Hits Per Second图表:->每秒点击次数曲线图
2. Codes Per Second图表:->每秒状态码数量分布曲线
3. Transanction Per Second图表:->每秒事务数曲线(很重要)
4. Total Transactions Per Second:->,每秒通过的事物总数
5. Response Time Vs Request:->响应时间中海值与请求数量的关系
6. Latency Vs Request:->完成一个完整的请求所需的平均时间与请求数的关系图
3. Response Times
1. Response Time Percentiles
2. Response Time Overview
3. Time Vs Threads
4. Response Time Distribution

前言

Jmeter提供了一个通过两种方式生成多维度图形化测试报告的扩展模块。

  • 在JMeter性能测试结束时,自动生成本次测试的HTML图形化报告
  • 使用已存在的测试结果文件.jtl结果文件和.csv结果文件,来生成改次测试结果的HTML图形化报告

1. 自动生成HTML图形化报告

jmeter -n -t 【jmx脚本位置】-l 【结果文件result.jtl存放的位置】-e -o 【生成HTML报告制定文件夹】

参数解释:

  • -n: 表示 non gui mode,就是非图形化模式
  • -t: 指定jmx脚本路径,即test plan(测试计划)。后面跟需要运行脚本的路径与脚本名称。
  • -l: 指定结果的文件路径。后面跟输出结果文件路径与结果名称。

1)若没有指定结果文件路径,则会自动创建,可以生成.csv文件或者.jtl文件 2)若只写脚本名称,则会默认在当前目录下查找或创建结果文件
  • -e: 设置测试完成后,生成测试报表
  • -o:指定测试报表生成的文件夹。文件夹必须为空或不存在

在jmeter的bin目录下,执行如下命令,以我的项目为例:

image.png jmeter -n -t /Library/jmeter-achievement/ConsumerModeule/upload_spending/upload_spending.jmx -l /Users/zkteco/Desktop/jmeter_output/result/result_01.jtl -e -o /Users/zkteco/Desktop/jmeter_output/report

如下图所示:

image.png

注意点:

  • 结果文件夹的位置要和HTML报告文件夹的位置在同一个目录下
  • 指定的结果文件不能重复
  • 确认 -o 参数后面的目录名称为空或者名称不重复

然后去目标目录中查看HTML图形化报告文件中的内容。

image.png

打开index.html文件,如下图所示:

image.png

2. 使用已有的测试结果生成HTML报告

使用命令:

jmeter -g【result.jtl】-o 【测试报告文件夹】

参数解释:

  • -g: 指定的已存在的测试结果文件路径,仅用于生成测试报表
  • -o:指定的生成测试报表文件夹,文件夹必须为不存在

命令行进入到测试结果所在的文件目录,以我的文件目录为例,执行如下命令:

image.png jmeter -g result_02.jtl -o /Users/zkteco/Desktop/jmeter_output/demo

image.png

之后就可以在demo目录中查看生成的测试报告了。

image.png

推荐配置JMeter的环境变量,这样就可以在任何目录中执行JMeter命令了。

3. HTML图形化报告内容详解

1. Dashboard页面:

1. Test and Report informations: ->测试结果报告信息:

image.png

相关信息

相关信息

  • File:该测试报表所对应的测试结果文件名
  • Start Time:测试开始时间
  • End Time: 测试结束时间
  • Filter for display:展示过滤器

2. APDEX(Application Performance Index):->应用程序性能满意度标准:

image.png

相关信息

相关信息

  • Apdex:范围在0~1之间,1表示达到所有用户均满意,越接近1满意度越高
  • T(toleration threshold):耐受阀值
  • F(frustrtion threshold):挫败阀值
  • Label:接口请求名称

3. Requests Summary: ->请求的通过率(PASS)与失败率(FAIL),百分比显示。

image.png

4. Statistics:->统计分析,基本将Summary Report(汇总报告)与Aggrerate Report(聚合报告)的结果合并。

image.png

5. Errors:->错误情况,按照不同的错误类型,将所有的错误结果进行展示。

image.png

6. Top 5 Errors by sampler:->显示前五个错误类型取样器。

image.png

2. Charts页面:(辅助分析)

Charts页面:用图表的形式展示测试数据,让测试报表更加的直观。
主要有以下特点:

  • 将测试过程中经常使用的数据,用图表的形式展示,让测试结果更加的直观
  • 每个图表的数据,有两种展示形式
  • 支持请求样例过滤显示
  • 支持道出PNG图片格式

1. Over Time图表:

1. Response Time Over Time图表:
  • 每秒钟响应时间,X轴表示系统运行的时刻,Y轴表示的是响应时间,F(X,Y)表示系统随着时间的推移,系统响应时间的变化,可以看出响应时间的稳定性。
  • 可以根据响应时间变化和TPS以及模拟的并发数变化,判断性能拐点的范围
  • 一个线条代表一个事务

image.png

相关信息

说明:响应时间变化曲线,表示平均响应时间随时间的变化情况,类似于JMeter Pluging在UI中的Response Times Over Time.

2. Respnse Time Percentiles Over Time(successful responses)图表:
  • 脚本运行期间,成功的请求的响应时间的百分比
  • 可理解为聚合报告中的部分指标

image.png

image.png

3. Active Threads Over Time图表
  • 脚本运行期间,每个线程组的活跃线程数的变化趋势图
  • 一个线程组对应一条线

image.png

4. Bytes Throughput Over Time图表:->字节接收与发送的数量,每秒传输字节的吞吐量,表明JMeter在测试时,随着时间推移发送和接收的字节数
  • 脚本运行期间,吞吐率变化趋势图
  • 在容量规划、可用性测试和大文件上传下载场景中,吞吐量是很重要的一个监控指标 image.png
5. Latencies Over Time图表:->延迟时间变化图表
  • 脚本运行期间,发送一个完整的请求所需时间的变化趋势图
  • 可以理解成:发送请求到收到第一个响应所花费的时间
  • 包括事务控制器的样本结果

image.png

6. Connnect Time Over Time

● 脚本运行期间,事务(请求)建立连接所花费的平均时间变化趋势图 ● 包括SSL三次握手的时间 ● 当出现连接超时错误时(Connection Time Out)的错误时,Connect Time就会等于连接超时的时间

image.png 对应JMeter监视器的元件:

image.png

2. Thoughput for Charts页面

image.png

1. Hits Per Second图表:->每秒点击次数曲线图

即每秒钟向服务器发送请求的数量。

image.png

2. Codes Per Second图表:->每秒状态码数量分布曲线

即每秒钟服务器返回的ResponseCode的数量。

image.png

3. Transanction Per Second图表:->每秒事务数曲线(很重要)
  • 即TPS
  • 衡量系统处理能力的重要指标
  • 包括事物控制器样本结果

image.png

4. Total Transactions Per Second:->,每秒通过的事物总数

包含失败事务总数与成功事务总数

image.png

5. Response Time Vs Request:->响应时间中海值与请求数量的关系

image.png

6. Latency Vs Request:->完成一个完整的请求所需的平均时间与请求数的关系图

image.png 对应JMeter监听器:

image.png

3. Response Times

image.png

1. Response Time Percentiles
  • 响应时间百分比分布图
  • 响应时间在某个百分比范围内的请求在所有请求数中所占的百分比率,相当于平均响应时间,这个值更加适合用来衡量系统的稳定性。

image.png

2. Response Time Overview
  • 响应时间分布图
  • 展示落在各个平均响应时间区间的请求数情况

image.png

3. Time Vs Threads
  • 平均响应时间和线程数的对应变化曲线
  • 可以通过这个对应的变化曲线来确定性能拐点的一个参考值

image.png

4. Response Time Distribution
  • 响应时间分布图
  • 不同的响应时间区间内,成功的响应数是多少

image.png

本文作者:精卫

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!