【软件测试】Jmeter性能测试(性能测试,Jemeter使用与结果分析2)

简介: 【软件测试】Jmeter性能测试(性能测试,Jemeter使用与结果分析)

四、 Jmeter结果分析

1.如何得到可靠的测试报告?

以上我们便完成了一次简单的测试案例,但我们的测试还未结束。我们需要对测试结果进行分析,但是在真实项目中上述的测试结果是不可靠的,只能用作调试。你如果细心的话,应该能在运行Jmeter的命令行里找到这句话

q4.png

它这里就直接说明了不建议我们在真实测试中使用gui界面,尤其是图表形式,为什么呢?


在负载测试期间不得使用图形结果,因为它消耗了大量资源(内存和CPU)。仅用于功能测试或测试计划调试和验证期间。


大多数UI监听器非常适合调试/测试目的。不要期望达到高负荷(> = 500个用户),谨慎使用它们。这些侦听器设计用于在JMeter UI中运行负载测试时快速获取指标,以实现轻负载。(<= 50个并发用户)


即使是中等负载(100-500个并发用户)也可以使用它们,但不要期望使用JMeter UI运行分布式JMeter测试。这不是目的。记住JMeter默认配置512MB堆内存,相当低。虽然你可以增加JMeter分配的内存,但它会感觉不会再漂浮在船上了。


那么在运行实际负载测试时我们可以使用哪些监听器?


①简单数据写入器

简单数据写入器:可以将监听器配置为将不同的项目保存到结果日志文件(JTL)。

这是JMeter中最有用的监听器。它根据外部文件中的配置保存性能指标:JTL文件。JMeter JTL文件是分析结果的最佳方式,但有一个缺点:您需要另一个工具来执行数据挖掘。


一般我们采取以下两种方案


简单数据写入器+excel

简单数据写入器+HTML报告DashBoard

这里推荐使用HTML报告DashBoard,这也是官方支持的方式。后文我也会演示利用HTML报告DashBoard来生成性能测试报告。


②后端监听器

后端监听器:后端监听器是一个异步监听器,使您可以插入BackendListenerClient的自定义实现。默认情况下,提供Graphite实现。


JMeter的Backend Listener允许插入外部数据库来存储测试结果和性能指标。


因此我们可以选择InfluxDB+Grafana+JMeter的后端监听器来实现


InfluxData:用作存储性能指标的临时指标存储的数据库

Grafana:Grafana是一个时间序列分析的开源平台,允许您根据时间序列数据创建实时图表

JMeter的后端监听器:后端监听器收集JMeter指标并将它们发送到临时指标存储

③其他解决方案

kylinTOP测试与监控平台(商用版)

LoadRunner(商用版)

NeoLoad(商用版)

Load impact(免费使用)


当然市场上还有一些解决方案,但是大多都要收费,所以不再赘述了,详情可以了解这篇JMETER结果分析,我很多内容都是参考他的解决方案的。


2.简单数据写入器+HTML报告DashBoard案例演示

这里我还是拿之前的测试案例来演示


①修改合适的测试规模

这里我加大测试压力,将线程数改为1000,循环30次


q2.png

②添加简单数据写入器

新增一个简单数据写入器

q1.png

修改输出路径到合适的目录下,同时保存的文件以jtl结尾


w4.png

③运行生成文件

点击运行图标,运行完成后在对应目录下你应该能找到这个jtl文件

q3.png


④生成HTML报表

点击工具->Generate HTML report

w2.png

在result files 一栏,我们选择之前导出的jtl文件。


在用户配置文件一栏我们可以选择bin目录下有的user.properties文件,也可以根据官网用户手册去配置一个。这里我们选择bin目录下的文件即可。


输出目录我们选择一个合适的空目录即可。

w1.png

点击generate report 即可生成报告


q3.png

点击index.html即可看到测试结果

q2.png

q1.png



3.结果分析

报告图表很多,以下几个我们需要特别注意:


①成功率

在仪表盘,我们可以清楚看到成功请求的占比,在本次测试中,成功率99.9%,这是完全可以接受的


w3.png

②响应时间变化

w2.png

在这里我们可以看到测试中响应时长的变化,最小值一般不值得参考,值得参考的响应时长一般是90%-99%的响应时长,我们需要保证至少90%的请求响应时长在用户可接受范围内(具体可容忍时长视具体的业务场景而变化)


在这次测试中请求时长达到了恐怖的9000ms,一般用户是没办法忍受的,所以,在1000个用户下(1000个模拟线程),系统响应没法达到用户期望。


③TPS

TPS 即 Transactions Per Second的缩写,每秒处理的事务数目。

这个是我们经常拿来当做系统性能好坏的指标之一,也是在微服务架构中最常提到的词。



w1.png

这里我们可以看到我们测试的接口TPS大概在138左右。


4.性能优化方案

根据测试报告所表现出来的性能,我们可以结合实际cpu、内存负载率去判断系统瓶颈,针对自己的业务场景进行优化。


相关文章
|
10月前
|
人工智能 搜索推荐 数据管理
探索软件测试中的自动化测试框架选择与优化策略
本文深入探讨了在现代软件开发流程中,如何根据项目特性、团队技能和长期维护需求,精准选择合适的自动化测试框架。
407 11
|
3月前
|
XML jenkins 机器人
JMeter+Ant+Jenkins实现接口自动化测试持续集成
本文介绍了如何使用Ant生成JMeter接口测试报告,并集成到Jenkins中实现自动化测试。内容涵盖Ant与JMeter环境配置、build.xml文件设置、测试执行及报告生成,同时包括Jenkins插件安装、项目配置和钉钉消息通知的集成,帮助实现持续测试与结果可视化。
514 0
|
2月前
|
前端开发 Java jenkins
Jmeter压力测试工具全面教程和使用技巧。
JMeter是一个能够模拟高并发请求以检查应用程序各方面性能的工具,包括但不限于前端页面、后端服务及数据库系统。熟练使用JMeter不仅能够帮助发现性能瓶颈,还能在软件开发早期就预测系统在面对真实用户压力时的表现,确保软件质量和用户体验。在上述介绍的基础上,建议读者结合官方文档和社区最佳实践,持续深入学习和应用。
572 10
|
2月前
|
监控 Java 数据挖掘
利用Jmeter工具进行HTTP接口的性能测试操作
基础上述步骤反复迭代调整直至满足预期目标达成满意水平结束本轮压力评估周期进入常态监控阶段持续关注系统运转状态及时发现处理新出现问题保障服务稳定高效运作
349 0
|
4月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
795 23
|
6月前
|
数据可视化 测试技术 API
JMeter、Apipost 与 Postman 的 API 测试对比:为什么 APIPost 是更聪明的选择
API测试如同筹备一场晚宴,选对工具至关重要。JMeter功能强大但上手难,适合专业用户;Postman简单易用,但在复杂场景和团队协作中表现有限;而Apipost则是一款智能高效的“厨房神器”。它性能测试轻松、结果清晰、学习门槛低,并且能一键集成CI/CD流程。对于追求效率与便捷的团队而言,Apipost无疑是更优选择,让API测试如同五星大厨烹饪般丝滑流畅。
|
9月前
|
缓存 网络协议
Jmeter如何对UDP协议进行测试?
`jmeter-plugins`是JMeter的插件管理器,用于管理和组织所有插件。访问[官网](https://jmeter-plugins.org/install/Install/)下载并放置于`lib/ext`目录下,重启JMeter后可在“选项”中看到插件管理器。
266 1
Jmeter如何对UDP协议进行测试?
|
10月前
|
Java 测试技术 API
探索软件测试中的自动化测试框架
本文深入探讨了自动化测试在软件开发中的重要性,并详细介绍了几种流行的自动化测试框架。通过比较它们的优缺点和适用场景,旨在为读者提供选择合适自动化测试工具的参考依据。
|
10月前
|
数据管理 测试技术 持续交付
软件测试中的自动化测试策略与最佳实践
在当今快速迭代的软件开发环境中,自动化测试已成为确保软件质量和加速产品上市的关键手段。本文旨在探讨软件测试中的自动化测试策略,包括选择合适的自动化测试工具、构建有效的自动化测试框架以及实施持续集成和持续部署(CI/CD)。通过分析自动化测试的最佳实践,本文为软件开发团队提供了一系列实用的指南,以优化测试流程、提高测试效率并减少人为错误。
272 4
|
11月前
|
监控 网络协议 Java
一些适合性能测试脚本编写和维护的工具
一些适合性能测试脚本编写和维护的工具
436 59