使用Jmeter进行性能测试

文章目录

    • 一、性能测试
      • 性能测试介绍
      • 性能指标QPS(每秒查询率)
      • 性能指标TPS(每秒处理的事务数目)
      • QPS和TPS的不同点
    • 二、Jmeter性能测试案例
    • 三、Jmeter性能测试结果分析
      • 1.如何得到可靠的测试报告?
      • 2.运行实际负载测试时可使用的监听器
        • ①简单数据写入器
        • ②后端监听器
        • ③其他解决方案
      • 3.简单数据写入器+HTML报告DashBoard案例演示
        • ①修改合适的测试规模
        • ②添加简单数据写入器
        • ③生成HTML报表
      • 4.结果分析
        • ①成功率
        • ②响应时间变化
        • ③TPS

参考地址: https://blog.csdn.net/qq_46101869/article/details/122134619

一、性能测试

性能测试介绍

性能测试就是通过特定的方式对被测试系统按照一定测试策略施加压力,获取该系统的响应时间TPS吞吐量资源利用率等性能指标,来检测系统上线后能否满足用户需求的过程。只有经过性能测试,得到对应的测试报告,才能根据报告中所呈现的现象(成功率、响应时长、TPS等)来进行分析,找出系统的瓶颈所在,优化系统的性能。

性能指标QPS(每秒查询率)

QPS,全名 Queries Per Second,意思是“每秒查询率”,是一台服务器每秒能够响应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。

性能指标TPS(每秒处理的事务数目)

TPS 即 Transactions Per Second的缩写,每秒处理的事务数目。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。

客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数,最终利用这些信息作出的评估分。

QPS和TPS的不同点

对于一个页面的一次访问,形成一个 Tps;但一次页面请求,可能产生多次对服务器的请求,服务器对这些请求,就可计入“Qps”之中。

二、Jmeter性能测试案例

测试用例步骤同接口测试。https://blog.csdn.net/qq_37515374/article/details/129343321

三、Jmeter性能测试结果分析

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

不建议在真实测试中使用gui界面,尤其是图表形式,一般使用命令行执行。命令行如下:jmeter -n -t E:\Jmeter/testplan/EWSHOP.jmx -l E:\Jmeter/result/result.txt -e -o E:\Jmeter/webreport

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

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

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

2.运行实际负载测试时可使用的监听器

参考地址:JMETER结果分析

①简单数据写入器

可以将监听器配置为将不同的项目保存到结果日志文件(JTL)。这是JMeter中最有用的监听器。它根据外部文件中的配置保存性能指标:JTL文件。JMeter JTL文件是分析结果的最佳方式,但有一个缺点:需要另一个工具来执行数据挖掘。一般采取以下两种方案:

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

推荐使用HTML报告DashBoard,这也是官方支持的方式。

②后端监听器

后端监听器是一个异步监听器,可以插入BackendListenerClient的自定义实现。默认情况下,提供Graphite实现。JMeter的Backend Listener允许插入外部数据库来存储测试结果和性能指标。我们可以选择InfluxDB+Grafana+JMeter的后端监听器来实现。

InfluxData:用作存储性能指标的临时指标存储的数据库
Grafana:是一个时间序列分析的开源平台,允许根据时间序列数据创建实时图表
JMeter的后端监听器:后端监听器收集JMeter指标并将它们发送到临时指标存储

③其他解决方案

kylinTOP测试与监控平台(商用版)
LoadRunner(商用版)
NeoLoad(商用版)
Load impact(免费使用)
……

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

①修改合适的测试规模

例如:加大测试压力,将线程数改为1000,循环30次。
使用Jmeter进行性能测试_第1张图片

②添加简单数据写入器

右键选择:添加》监听器》简单数据写入器,新增一个简单数据写入器。修改输出路径到合适的目录下,同时保存的文件以jtl结尾。
使用Jmeter进行性能测试_第2张图片

③生成HTML报表

和命令行生产的一致,只是多了jtl文件。使用Jmeter测试时,可以收集每个请求中的信息,并保存到结果文件中,如:.jtl文件或.cvs文件中。

1、运行后,点击工具->Generate HTML report;
2、在result files 一栏,选择之前添加的jtl文件;
3、在用户配置文件一栏我们可以选择bin目录下有的user.properties文件(也可以根据官网用户手册去配置一个);
4、输出目录选择一个合适的空目录即可;
5、点击generate report 即可生成报告;
6、点击index.html即可看到测试结果。

使用Jmeter进行性能测试_第3张图片使用Jmeter进行性能测试_第4张图片使用Jmeter进行性能测试_第5张图片

4.结果分析

报告图表很多,以下几个需要特别注意:
PS:以下测试结果分析内容和上面的设置参数无关,是另一个测试的报告。

①成功率

在仪表盘,可以看到成功请求的占比。

使用Jmeter进行性能测试_第6张图片

②响应时间变化

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

③TPS

TPS 即 Transactions Per Second的缩写,每秒处理的事务数目。这个是我们经常拿来当做系统性能好坏的指标之一,也是在微服务架构中最常提到的词。

使用Jmeter进行性能测试_第8张图片

你可能感兴趣的:(Jmeter,jmeter)