JMeter性能测试
JMeter性能测试是检验应用程序性能的一种手段
通过性能测试,可以预测程序的潜在问题,如
- 程序在多人同时使用的时候是否会变慢
- 能够在短时间内处理大量请求
- 系统在高压情况下,是否会崩溃
通过性能测试,大概能够了解程序接口的吞吐量
术语
- QPS:每秒执行的查询次数,如:一个网站首页每秒可以响应1000次用户请求,则该页面的QPS为1000
- TPS:每秒事务数(吞吐量),是衡量系统性能的一个重要指标
- RPS:每秒请求数
- RT:响应时间,从客户端发起到接收的用时
VU和TPS
- VU:并发用户
TPS = VU / RT(秒为单位)
如果1个用户在1秒内可以完成1个事务,那么TPS为1
如果这个事务的处理时间是1ms,那么1个用户在1s内能完成1000次事务,那么TPS为1000
如果这个事务的处理时间是1S,那么1个用户在1S内能完成1次事务,那么TPS为1,若想要TPS为1000,那么就需要1000个用户
下载JMeter
访问 Jmeter 官网:https://jmeter.apache.org/download\_jmeter.cgi
安装JMeter
JMeter 是 Apache 组织开发的一个开源的性能测试工具,主要用于对Web应用进行功能测试和性能测试。它最初是为了进行软件性能测试而设计的,但随着时间的发展,它的功能已经扩展到可以支持多种协议的测试,包括 HTTP、HTTPS、FTP、JDBC、JMS、SMTP 等
主要特性
- 多协议支持: JMeter 可以用来测试各种协议的应用程序,这使得它成为一个非常灵活的工具,适用于多种场景
- 负载测试和压力测试: 它能够模拟大量用户并发访问,用于评估系统的性能和稳定性。这对于识别系统瓶颈和优化系统至关重要
- 可扩展性: 通过插件和脚本,JMeter 可以扩展其功能,以适应更复杂的应用环境和测试需求
- 结果分析: JMeter 提供了丰富的图表和报告功能,帮助用户直观地理解测试结果,包括响应时间、吞吐量、错误率等关键指标
- 脚本录制与回放: 使用 JMeter 的代理服务器功能,可以轻松地记录用户的浏览器操作,生成测试脚本,然后进行自动化测试
- 分布式测试: 支持在多台机器上进行分布式测试,从而模拟更大的负载,测试大规模并发情况下的系统表现
- 跨平台: JMeter 是基于 Java 编写的,因此可以在任何安装了Java运行环境的平台上运行
- 免费开源: 作为 Apache 项目的一部分,JMeter 是完全免费且开源的,这意味着用户不仅可以使用它,还可以修改和扩展其功能
- 社区支持: 拥有活跃的开发者和用户社区,提供持续的支持和更新,以及大量的教程和资源
- 易于学习和使用: 尽管功能强大,但 JMeter 的界面直观,对于初学者来说相对容易上手
启动 Jmeter
进入bin目录
- 双击jmeter.bat,启动window版本Jmeter
- 双击jmeter.sh,启动Mac、Linux版本Jmeter
语言设置
Jmeter 默认的语言是英文,如果想修改为中文,有两种方式,一种是临时修改,一种是永久修改
临时修改
- 点击菜单options
- choose Lanuage
- Chinese(Simplified)
当重写打开Jmeter后,设置就会失效
永久修改
- 进入bin目录
- 修改jmeter.properties配置文件
- 将语言设置项的注释取消,并修改为 zh-CN
保存退出,重启 Jmeter即可
发送GET请求
流程
添加线程组
- 线程组:模拟用户行为、控制并发数、设置循环次数等
- 线程组:模拟用户行为、控制并发数、设置循环次数等
添加HTTP请求
- 相关参数:名称、ip、请求方式、内容编码等
- 相关参数:名称、ip、请求方式、内容编码等
添加监听器=>查看结果树
- 测试运行后,会在结果树中看到每次请求的结果
- 测试运行后,会在结果树中看到每次请求的结果
注:运行前需要保存
发送POST请求
发送POST请求前,需要添加一个HTTP信息头管理器
到HTTP请求中,添加参数即可
批量发送不同的请求体
如果需要模拟不同用户在同一时间请求某一个接口,可用如下方式
- 创建一个CSV文件,并编辑
- 添加CSV文件配置
- 选择本地自己编写的CSV文件
可以设置CSV数据文件
HTTP中消息请求体修改为
{
"raffleId": "${value1}",
"userId": "${value2}"
}
运行即可