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

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: 【软件测试】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、内存负载率去判断系统瓶颈,针对自己的业务场景进行优化。


相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
10天前
|
机器学习/深度学习 前端开发 测试技术
探索软件测试中的自动化测试框架选择与优化策略####
本文深入探讨了在当前软件开发生命周期中,自动化测试框架的选择对于提升测试效率、保障产品质量的重要性。通过分析市场上主流的自动化测试工具,如Selenium、Appium、Jest等,结合具体项目需求,提出了一套系统化的选型与优化策略。文章首先概述了自动化测试的基本原理及其在现代软件开发中的角色变迁,随后详细对比了各主流框架的功能特点、适用场景及优缺点,最后基于实际案例,阐述了如何根据项目特性量身定制自动化测试解决方案,并给出了持续集成/持续部署(CI/CD)环境下的最佳实践建议。 --- ####
|
1月前
|
缓存 监控 算法
软件测试中的性能瓶颈分析与优化策略
【10月更文挑战第6天】 性能测试是确保软件系统在高负载条件下稳定运行的重要手段。本文将深入探讨性能测试的常见瓶颈,包括硬件资源、网络延迟和代码效率等问题。通过具体案例分析,我们将展示如何识别并解决这些问题,从而提升软件的整体性能。最后,文章还将分享一些实用的性能优化技巧,帮助读者在日常开发和测试中更好地应对性能挑战。
82 3
|
1月前
|
机器学习/深度学习 人工智能 监控
提升软件质量的关键路径:高效测试策略与实践在软件开发的宇宙中,每一行代码都如同星辰般璀璨,而将这些星辰编织成星系的过程,则依赖于严谨而高效的测试策略。本文将引领读者探索软件测试的奥秘,揭示如何通过精心设计的测试方案,不仅提升软件的性能与稳定性,还能加速产品上市的步伐,最终实现质量与效率的双重飞跃。
在软件工程的浩瀚星海中,测试不仅是发现缺陷的放大镜,更是保障软件质量的坚固防线。本文旨在探讨一种高效且创新的软件测试策略框架,它融合了传统方法的精髓与现代技术的突破,旨在为软件开发团队提供一套系统化、可执行性强的测试指引。我们将从测试规划的起点出发,沿着测试设计、执行、反馈再到持续优化的轨迹,逐步展开论述。每一步都强调实用性与前瞻性相结合,确保测试活动能够紧跟软件开发的步伐,及时适应变化,有效应对各种挑战。
|
1月前
|
测试技术 UED
软件测试的艺术:探索性测试的力量
【10月更文挑战第6天】在软件开发的世界中,测试是确保产品质量的关键步骤。传统的测试方法往往遵循严格的脚本和预定义的路径进行,但探索性测试(ET)则提供了一种更为灵活、创造性的替代方案。通过模拟真实用户的行为和思考过程,ET能够揭示那些传统测试可能遗漏的问题。本文将深入探讨探索性测试的核心原则、实施策略以及它如何提高软件测试的效率和有效性。
|
5天前
|
数据采集 缓存 测试技术
性能测试中,除了迭代次数,还有哪些因素会影响测试结果?
性能测试中,除了迭代次数,还有哪些因素会影响测试结果?
12 2
|
10天前
|
缓存 监控 测试技术
全网最全压测指南!教你如何测试和优化系统极限性能
大家好,我是小米。本文将介绍如何在实际项目中进行性能压测和优化,包括单台服务器和集群压测、使用JMeter、监控CPU和内存使用率、优化Tomcat和数据库配置等方面的内容,帮助你在高并发场景下提升系统性能。希望这些实战经验能助你一臂之力!
24 3
|
14天前
|
测试技术 开发者 UED
探索软件测试的深度:从单元测试到自动化测试
【10月更文挑战第30天】在软件开发的世界中,测试是确保产品质量和用户满意度的关键步骤。本文将深入探讨软件测试的不同层次,从基本的单元测试到复杂的自动化测试,揭示它们如何共同构建一个坚实的质量保证体系。我们将通过实际代码示例,展示如何在开发过程中实施有效的测试策略,以确保软件的稳定性和可靠性。无论你是新手还是经验丰富的开发者,这篇文章都将为你提供宝贵的见解和实用技巧。
|
12天前
|
jenkins 测试技术 持续交付
软件测试中的自动化测试策略
在当今快速发展的软件行业中,自动化测试已成为确保软件质量和效率的关键工具。本文将探讨自动化测试的重要性、实施策略以及面临的挑战,旨在为软件开发团队提供实用的指导和建议。
|
14天前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
40 3
|
12天前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
28 1