压力测试工具Apache JMeter:4:压力测试报告说明与使用技巧
Apache JMeter是一个纯Java开发的用于负载测试或者性能测试的开源软件。这篇文章介绍一下使用JMeter生成的报告的概要说明,以及使用的技巧和注意事项。
环境准备
关于Apache JMeter的概要介绍与安装的方法,可参看如下内容:
- https://liumiaocn.blog.csdn.net/article/details/101264380
事前准备
这里使用JMeter自带的Java请求进行压力测试的示例来说明如何生成测试报告,详细的操作步骤可以参看如下内容(生成了一个100并发进行360次循环,共计36000次测试的报告)
- https://liumiaocn.blog.csdn.net/article/details/101362941
结果说明
结果格式
结果的HTML模版使用了sbadmin,本文示例的5.1.1版本的JMeter使用的是sbadmin2-1.0.7版本
liumiaocn:jmeter-rpt-gui liumiao$ ls
content index.html sbadmin2-1.0.7 statistics.json
liumiaocn:jmeter-rpt-gui liumiao$
汉化或者定制化修改方法
基于sbadmin的JMeter测试报告结果缺省是英文的,由于此报告基于JMeter自身所提供的模版来实现,如果希望对结果进行定制化修改比如将生成的的显示页面汉化,则直接替换JMeter执行目录bin下的report-template文件夹即可,模版文件后缀为.fmkr,可以修改模版文件实现汉化的目的。
liumiaocn:apache-jmeter-5.1.1 liumiao$ ls bin/report-template/
content index.html.fmkr sbadmin2-1.0.7
liumiaocn:apache-jmeter-5.1.1 liumiao$
报告概要
测试报告概要信息页面主要显示如下信息:
- Apdex:应用程序的性能指标,取值范围为0-1,0表示所有用户请求均不满意,1表示全部满意
- Toleration threshold: 可接受的响应时间的设定阈值(成功值),缺省为0.5秒
- Frustration threshold: 不可接受的响应时间的设定阈值 (失败值),缺省为1.5秒
- 取样器类型
- 测试取样次数
- 线程组数量
- 响应时间:平均/最小/最大/90、95、99%用户的响应时间
- 吞吐量
- 网络传输速度
- 执行错误的统计信息(Sent:客户端发送数据的速度,Received:服务器端接收数据的速度)
- TOP 5的取样器错误内容
图表详细
主要的图表分为如下三类:
- Over Time:从时间维度显示随时间变化的图表显示
- Throughput:从吞吐量的角度进行展示的图表
- Response Times:从响应时间角度进行展示的图表
时间变化(Over Time)
时间趋势图主要分为如下几种:
- Response Times Over Time(响应时间趋势图):用于显示响应时间跟随时间变化的状况
- Response Time Percentiles Over Time (successful responses) (响应时间变化趋势图):主要用于显示最大、最小、90%/95%/99%百分位的用户响应时间的变化趋势
- Active Threads Over Time(有效线程趋势图):在JMeter中,线程相当于LR中的VU,用于模拟实际的用户。此图用于显示随着时间变化有效或者活跃的用户的情况。
- Bytes Throughput Over Time(字节吞吐量趋势图):将每秒发送字节数和每秒接收字节数根据时间推移进行显示以显示吞吐量趋势
- Latencies Over Time(延迟趋势图):延时指的是客户发送请求之前的时间段,在负载较高的情况下,延时自然也成为拉慢整体业务处理的影响要素。
- Connect Time Over Time(连接时长趋势图):用于显示随时间半环花费在连接上的平均时间。
以响应时间变化趋势图为例,信息如下图所示
注意:因为缺省粒度(1min)过大,所以结果无法看出趋势,拉长测试的时间或者修改显示粒度的大小即可。
Throughput(吞吐量)
吞吐量趋势图主要分为如下几种:
- Hits Per Second(每秒请求/点击趋势图):用于显示每秒点击或者每秒请求随时间变化的情况。
- Codes Per Second(每秒状态码数量趋势图):JMeter被设计用来进行Web应用的压力测试,此图用于显示对于HTTP的200响应码(成功结果)的数量统计趋势,在本文示例中也可以看到其也能对Java请求的结果进行显示。
- Transactions Per Second(每秒事务数量趋势图):用于分别显示各类测试结果的TPS随时间变化的趋势
- Total Transactions Per Second(每秒总事务总数趋势图):用于显示TPS总数随时间变化的趋势(分为成功和失败两类)。
- Response Time Vs Request(响应时间点与请求数的关系图):用于显示响应时间和请求数之间的关系(纵轴表示响应时间(单位毫秒),横轴表示请求数)
- Latency Vs Request(延迟时长与请求数的关系图):用于显示延迟时长和请求数之间的关系(纵轴表示延迟时长(单位毫秒),横轴表示请求数)
以响应时间点与请求数的关系图为例,信息如下图所示
Response Times(响应时间)
响应时间趋势图主要分为如下几种:
- Response Time Percentiles(响应时间百分比图):用于显示不同百分比的用户请求的平均响应时间关系图(纵轴表示响应时间(单位毫秒),横轴表示百分比从0到100)。
- Response Time Overview(响应时间概要图):响应时间概要信息的展示,用于展示性能指标设定的各个阈值区间的响应数量(纵轴表示响应数量,横轴表示阈值区间,为测试概要页面显示的设定阈值)。示例如下图所示:
- Time Vs Threads(平均响应时间和活跃线程数关系图):用于显示压测中活跃线程数与响应时间之间的关系,示例如下所示:
- Response Time Distribution(响应时间分布图):用于显示不同响应时间段内响应数量的关系(纵轴表示响应数量,横轴表示响应时间,单位毫秒)
常用技巧
中断情况下的测试报告生成方法
jmeter -g 结果文件 -o 测试报告输出目录
报告生成是提示错误
因为jtl结果格式非常简单,就是标题和内容的csv文件格式。一般情况下的错误经常是最后一行的数据的列的内容缺失所导致,这种情况下删除该列即可。
平均采样显示粒度修改
缺省情况下系统配置的报告图表的显示的粒度为1分钟,一般来说需要进行修改,修改的内容与注意事项如下所示
- 文件名称:reportgenerator.properties/user.properties,建议修改user.properties对设定进行覆盖更为合理
- 所在目录:bin/
- 修改项目:jmeter.reportgenerator.ovrall_granularity
- 修改内容:将设定值从缺省的6000毫秒改为所需设定即可
- 注意事项:根据官方当前版本的提示,此值需要设定为大于1000毫秒,不然吞吐量的图表可能出错,建议最小设定为2000毫秒
图表标题修改
缺省情况下图表的标题为Apache JMeter Dashboard,可以通过修改report_title来实现
- 文件名称:reportgenerator.properties/user.properties,建议修改user.properties对设定进行覆盖更为合理
- 所在目录:bin/
- 修改项目:jmeter.reportgenerator.report_title
- 修改内容:将设定值修改为期待的显示内容
可接受/不可接受的响应时间阈值修改
可接受的响应时间的设定阈值(成功值),缺省为0.5秒,不可接受的响应时间的设定阈值(失败值),缺省为1.5秒,也可以通过修改对应设定项目来实现
可接受的响应时间阈值
- 文件名称:reportgenerator.properties/user.properties,建议修改user.properties对设定进行覆盖更为合理
- 所在目录:bin/
- 修改项目:jmeter.reportgenerator.apdex_satisfied_threshold
- 修改内容:将设定值修改为可接受的响应时间阈值
不可接受的响应时间阈值
- 文件名称:reportgenerator.properties/user.properties,建议修改user.properties对设定进行覆盖更为合理
- 所在目录:bin/
- 修改项目:jmeter.reportgenerator.apdex_tolerated_threshold
- 修改内容:将设定值修改为可接受的响应时间阈值
用户响应时间百分位修改
缺省情况下响应时间的显示中,应用时间的百分位有三个:90%、95%、99%,而相关的百分比也可以通过设定来实现修改。
- 文件名称:jmeter.properties
- 所在目录:bin/
- 修改项目:aggregate_rpt_pct1、aggregate_rpt_pct2、aggregate_rpt_pct3
设定项 | 缺省值 |
---|---|
aggregate_rpt_pct1 | 90 |
aggregate_rpt_pct2 | 95 |
aggregate_rpt_pct3 | 99 |
压力测试工具Apache JMeter:4:压力测试报告说明与使用技巧相关推荐
- Java压力测试工具--Apache JMeter的安装与使用
一.JMeter 这是一个用于java的压力测试工具,可以用于测试静态和动态资源,例如静态文件.Java 小服务程序.CGI 脚本.Java 对象.数据库.FTP 服务器等 具体的使用见下面的博客链接 ...
- 压力测试工具Apache JMeter:3:压力测试报告的生成方法
Apache JMeter是一个纯Java开发的用于负载测试或者性能测试的开源软件.这篇文章介绍一下使用JMeter进行压力测试的两种压力测试报告生成的方法. 环境准备 关于Apache JMeter ...
- 压力测试工具Apache JMeter:11:搭建容器化分布式测试环境
Apache JMeter是一个纯Java开发的用于负载测试或者性能测试的开源软件.这篇文章介绍一下建立基于JMeter的一主多从的容器化压测环境. 基于Alpine的JMeter镜像 关于基于Alp ...
- 压力测试工具Apache JMeter:8:基于Alpine的JMeter镜像
Apache JMeter是一个纯Java开发的用于负载测试或者性能测试的开源软件.这篇文章介绍一下如何使用Alpine基础镜像将JMeter的压测能力进行容器化,并结合具体的示例来演示此镜像从构建到 ...
- 性能/压力测试工具Apache ab修改:按时间进行性能/压力测试
需求: 在对Nginx module 采用Aapche ab进行性能和压力测试的过程中发现: 1. 对于不同的并发线程,相同的请求数,性能/压测所需要的时间变化比较大: 2. 对于高并发的情况下,千万 ...
- 网站压力测试软件(Apache JMeter)2.13 官方版 Error: Unable to access jarfile ApacheJMeter.jar
https://jmeter.apache.org/download_jmeter.cgi 官网 https://archive.apache.org/dist/jmeter/binaries/ ...
- Web 压力测试工具 --Apache AB
AB(ApacheBench)是Apache自带的超文本传输协议(HTTP)性能测试工具. 其设计意图是描绘当前所安装的Apache的执行性能, 主要是显示Apache每秒可以处理多少个请求. 该工具 ...
- 接口压力测试:Postman【Postman通常用于做接口测试,同时也可以用于作为压力测试】、Jmeter【专门做压力测试】、Loadrunner、Apache AB、Webbench
做开发的同学一定会遇到接口对接,今天介绍两个对接测试两个我个人认为比较好的测试工具 postman和jmeter 1.postman通常用于做接口测试,同时也可以用于作为压力测试 2.jmeter做压 ...
- 压力测试工具ab 及 centos下单独安装方法
为什么80%的码农都做不了架构师?>>> 压力测试工具Ab简介 Apache安装包中自带的压力测试工具 Apache Benchmark(简称ab) 简单易用,这里就采用 ab ...
最新文章
- 带闰年判断的正则表达式
- iptables防火墙策略
- 矽谷真假U盘测试软件,要闻回顾_科技时代_新浪网
- 上班摸鱼更方便了!国内最大短视频APP推出PC版:联想首发
- 微课|中学生可以这样学Python(7.3.2节):数据成员
- vue-cli3出现Invalid Host header的解决方案
- 【哈佛商评】好编辑成就内容营销
- 如何写好一份软件开发设计文档
- 基于 Flink SQL CDC的实时数据同步方案
- 【智能优化算法】基于Levy飞行策略的改进樽海鞘群算法求解单目标优化问题matlab代码
- Android视频播放器在播放前出现灰色图像
- 阿里-蚂蚁金服-一面电面-上海-java研发实习生
- Spherical Harmonics Lighting in DirectX
- 定时器输出的PWM频率范围及占空比精度
- nios自学笔记三:nios常用外设C函数整理
- 十大高人气“断货王”蓝牙耳机盘点,双11哪款蓝牙耳机值得入手?
- 目标管理:SMART原则
- tf.roll:tensorflow 中对多维Tensor移位
- mysql replace first_Java字符串的替换(replace()、replaceFirst()和replaceAll())
- java6程序设计实践教程_Java 6 程序设计实践教程
热门文章
- thinkpad e40 安装 nvidia显卡驱动之后
- 网站运营中同时把握好网站推广和用户体验度
- C# 正尝试在 OS 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码,这样做会导致应用程序挂起。
- php九九乘法表隔行换色,JavaScript实现99乘法表及隔行变色实例代码_javascript技巧...
- Opengl中的三维数学二(点和向量的简单运算)
- 铜三铁四,京东裁员,offer毁约,对此我们真的没办法吗?
- 输入身份证号获取信息
- 口红微商怎么引流?微商卖口红需要注意什么?
- GP 查询sql进程,kill进程
- 电路原理 | 电路基本定理