JMeter 介绍
JMeter 是一个用于性能测试的开源工具。通过模拟多种负载情况,JMeter可以测试应用程序在不同负载下的性能表现。该工具可以模拟多种协议,包括 HTTP、FTP、JMS 等,支持多种数据格式,如 XML、JSON 等。JMeter还提供了多种可视化图表,方便用户对测试结果进行分析和比较。在对测试结果的处理方面,JMeter提供了多种插件,可以将测试结果导出到不同的格式,如 CSV、XML 等,方便用户进行后续的数据处理和分析。在对其他工具的支持方面,JMeter可以与多种持续集成工具集成,如 Jenkins、Travis CI 等,方便用户在持续集成中使用 JMeter 进行性能测试。此外,JMeter还提供了多种扩展插件,可以对不同协议进行支持,如 JDBC、LDAP 等。
JMeter的相关下载和文档可以在下面的链接中找到:Apache JMeter - Download Apache JMeter
教程示例web项目:
https://github.com/Smartisa/JMeter-Example
示例SQL文件:
https://github.com/Smartisa/JMeter-Example/blob/master/jmeter_example.sql
参考链接:
JMeter压力测试/并发测试/性能测试入门教程 - 知乎 (zhihu.com)
Fill Forms and Submit With JMeter - Made Easy - DZone
JMeter 安装配置
安装配置JDK1.8
具体安装教程详情请看链接:
JDK1.8下载安装(Windows版)_cmr-test的博客-CSDN博客
安装配置MySQL 8.0
具体安装教程详情请看链接:
2023 年 MySQL 8.0 安装配置 最简易(保姆级)_mysql8.0安装配置教程_Northern Crescent的博客-CSDN博客
运行SQL文件
安装配置JMeter
下载地址: Apache JMeter - Download Apache JMeter
JMeter 的启动
解压后双击jmeter.bat,如图所示:
添加线程组
配置线程名称、线程数、循环次数 :10次 10000个并发测试
添加HTTP请求
配置HTTP请求
IP地址:
1,打开命令提示符窗口(CMD)
2,键入 ipconfig 命令
3,找到 IPv4 地址
运行web程序,并打开
修改 Link
localhost -> (IP)
右键检查
打开网络控制台,勾选保留日志
模拟表单提交
查看提交详细信息 – 标头
请求URL:
http://172.22.13.171:8080/JMeter_Example_war_exploded/hello-servlet
请求方法:
POST
查看提交详细信息 – 负载
表单数据 | |||
参数名称 | Name | Sex | Age |
参数值 | 路飞 | 男 | 17 |
信息汇总
请求URL:
http://172.18.59.191:8080/JMeter_Example_war_exploded/hello-servlet
IP:172.18.59.191
端口:8080
路径:/Jmeter_Example_war_exploded/hello-servlet
请求方法:POST
参数名称:name, sex, age
填写信息
添加结果树视图和聚合视图
执行测试
测试报告
结果树视图:
聚合报告 – 99百分位
JMeter知识卡
请求响应时间(毫秒为单位):
1,发送请求的时间: 从发送请求到服务器开始处理请求的时间。
2,服务器处理请求的时间:服务器处理请求花费的时间。
3,接受响应的时间:服务器发送响应到客户端接收响应之间的时间。
分析结果指标
•99%百分位
含义:
有99%的请求响应时间 小于该值。
举例:
如果一个测试中有 1000 个请求,其中 990 个请求的响应时间小于等于 500 毫秒,而另外 10 个请求的响应时间大于 500 毫秒,那么 99% 百分位的值就是 500 毫秒。
提高策略:
1,优化数据库:添加索引,优化查询语句
2,减少请求数量:合并请求,去除不必要的请求。
3,使用异步处理: 耗时的操作放到后台。
总结:
99% 百分位是一个非常有用的指标,因为它可以帮助我们了解大多数用户的体验。如果大多数用户的响应时间都很快,但是有一小部分用户的响应时间很慢,那么这可能会影响用户的体验。通过监控 99% 百分位,我们可以更好地了解用户的体验,并及时发现和解决潜在的性能问题
聚合报告 – 异常率
JMeter知识卡
HTTP状态码
服务器返回给客户端的一个标识,用于表示请求的处理结果。
2xx 状态码表示请求成功,而其他状态码则表示请求出现了异常,如 4xx 表示客户端请求错误,5xx 表示服务器内部错误等。
异常
HTTP 请求中返回的状态码不是 2xx(如 200、201、204 等)的请求
分析结果指标
•异常率
含义:
在所有请求中,出现异常的请求所占的比例。异常率越高,说明系统的稳定性越差,用户的体验也会受到影响。
总结:
异常率可以帮助我们了解系统的稳定性和可靠性,及时发现和解决潜在的问题,提高系统的性能和用户的体验。
聚合报告 – 吞吐量
分析结果指标
含义:
在一定时间内系统处理的请求数量,通常以每秒钟处理的请求数量(TPS)来表示。吞吐量越高,说明系统的性能越好,可以处理更多的请求。
举例:
假设有一个电商网站,每天有 10000 个用户访问该网站,每个用户平均访问 5 个页面,那么每天总共会产生 50000 个请求。
假设我们使用 JMeter 发送了 1000 个请求,每个请求的响应时间为 1 秒钟,那么该测试的吞吐量为 1000 TPS。这意味着该网站可以在每秒钟处理 1000 个请求。
提高策略:
1,优化数据库:优化SQL语句
2,使用缓存
3,优化代码:减少时间复杂度
总结:
吞吐量是衡量系统性能的重要指标之一,可以帮助我们了解系统的处理能力和性能瓶颈,及时发现和解决潜在的问题,提高系统的性能和用户的体验。