apache-jmeter-5.5使用教程


目前的主要目的是记录压测流程,会不断更新,欢迎互相学习

下载jmeter包

windows包和linux包都需要下
官网下载地址
这里解释一下为什么两种系统的包都要下
windows包下载是为了使用GUI创建测试计划以及调试测试计划
linux包下载是为了跑压测

修改jmeter默认配置

windows环境下
jmeter程序窗口默认是英文的并且字体图标都太小了

找到apache-jmeter-5.5\bin\jmeter.properties
找到language=en修改为language=zh_CN
添加

jmeter.hidpi.mode=true
jmeter.hidpi.scale.factor=1.6

jmeter.toolbar.icons.size=48x48
jmeter.tree.icons.size=32x32

jsyntaxtextarea.font.size=17

最好是用前面键搜索到对应位置把添加的配置放到原配置的旁边

找到apache-jmeter-5.5\bin\jmeter.bat
在@echo off下一行添加

set JVM_ARGS=%JVM_ARGS% -Dswing.plaf.metal.controlFont=Dialog-20
set JVM_ARGS=%JVM_ARGS% -Dswing.plaf.metal.systemFont=Dialog-20
set JVM_ARGS=%JVM_ARGS% -Dswing.plaf.metal.userFont=SansSerif-20
set JVM_ARGS=%JVM_ARGS% -Dswing.plaf.metal.smallFont=SansSerif-20

这里各种图标字体对应大小可以自己尝试自己修改我的屏幕不一定适合你
apache-jmeter-5.5\bin\jmeter.bat
启动图片
在这里插入图片描述
打开以后发现字体大小没有变化,不要着急在工具栏找到选项->外观->Metal
在这里插入图片描述
然后你发现界面好大,也有可能显示的界面乱掉了,不要慌,点击Yes
在这里插入图片描述
然后就正常了,配置工作到此结束

创建测试计划

添加一个线程组

在这里插入图片描述

添加一个http请求

在这里插入图片描述
添写完这些信息就可以访问了
在这里插入图片描述

添加查看结果树

此时发现没有地方看请求的结果,那就添加查看结果树
在这里插入图片描述
再点击运行就是这样子的
在这里插入图片描述

添加HTTP信息管理器

如果你需要给多个请求加一样的请求头,就在多个请求的同级添加 HTTP信息管理器
在这里插入图片描述
然后里面添加你想要的请求头
在这里插入图片描述
如果你想给单独的请求增加单独的请求头就在某个请求下单独添加、
在这里插入图片描述

添加JSON提取器

假如说你的第二个请求中需要第一个请求的返回结果中的数据
那就在需要提取的请求中添加JSON提取器
在这里插入图片描述
对如下三个值进行修改提取你想要的数据,如果你需要提取的是多个值,就用逗号间隔(JSON提取器只是提取方式之一,后置处理器中有很多提取器,可以择情使用)
在这里插入图片描述
然后在你需要的地方使用${variable}使用变量名记得修改
如果你的变量在其他请求的参数中,并且请求参数是JSON,类型是字符串"${variable}"这样包裹也是没有问题的

添加CSV数据文件设置

在这里插入图片描述
这个设置的意思是说可以把csv中的格式化数据当做请求的参数
准备这么一个csv
在这里插入图片描述
然后点击CSV文件设置进行如下设置
在这里插入图片描述
如果有多个变量逗号间隔
使用方式和JSON提取器一样${username}

添加常数吞吐量定时器

在这里插入图片描述
这里简单说明一下什么场景下需要类似的吞吐量相关定时器控制器

举例:老板给你的任务,让你测某几个接口每秒两百并发的情况下,5分钟内业务服务器的CPU平均占用情况

那么需要将线程组设置中 线程数:200 Ramp-up:5 调度器打开 持续时间设置为300秒

讲道理,我们想要每秒200并发,那么最后业务接口应该接到的请求个数就是200*300=60000个
可是当你跑完压测后看结果汇总会发现,你的接口接到的请求数远远大于60000个

那出现以上这种情况是为什么呢?
原因是我们说的200个线程并发,可是没说它1秒只发一次,这200个线程并发,是说在linux服务器能力范围内,一秒内的某个极值时刻并发200个请求,也就是说1秒内可能这200个线程发了5次 那最终就会有30 0000次请求

最终显示的吞吐量也不是200,如果接口简单服务器性能强大,你可能会看到好几千甚至上万的吐吞量,如果接口复杂,机器性能较为低下,明明200个线程一直发,可是吞吐量连200都不够,是因为吞吐量的计算公式中包含了响应时间

可是通过这个常数吞吐量定时器,就可以看到吐吞量真的是200左右

添加后要对常数吞吐量定时器进行设置

在这里插入图片描述
设置的项有两个,一个是分钟内,要求的目标吞吐量
一个是当前常数吞吐量定时器作用范围

但是这可能并不是唯一的一个方案,接下来我还会讲解其他定时器

Jmeter压测命令讲解

首先先来到jmeter的bin目录下
cd ./apache-jmeter-5.5/bin
然后执行 ./jmeter --help
在这里插入图片描述
我们正常就用这种就ok

使用注意事项

多个接口如何确保顺序执行

添加一个临界部分控制器
并且锁名称推荐使用global_lock_${__threadNum}
将想要顺序执行的接口按照顺序放在这个控制器下

除了分享以上内容之外
给大家分享一下我的飞书文档,是和java相关技术栈有关的,欢迎大家观看点赞收藏转发
https://jmnl1jzkxb.feishu.cn/docx/JiWCdgyd5o0NF8x9DfzcllVWnBg

  • 6
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Apache JMeterapache-jmeter-5.4.3.zip)可用于测试静态和动态资源、Web 动态应用程序的性能。 它可用于模拟服务器、服务器组、网络或对象上的重负载,以测试其强度或分析不同负载类型下的整体性能。 Apache JMeter 功能包括: 能够加载和性能测试许多不同的应用程序/服务器/协议类型: 网络 - HTTP、HTTPS(Java、NodeJS、PHP、ASP.NET,...) SOAP/REST 网络服务 FTP 通过 JDBC 数据库 LDAP 通过 JMS 的面向消息的中间件 (MOM) 邮件 - SMTP(S)、POP3(S) 和 IMAP(S) 本机命令或 shell 脚本 TCP Java 对象 全功能测试 IDE,允许快速记录测试计划(来自浏览器或本机应用程序)、构建和调试。 CLI 模式(命令行模式(以前​​称为非 GUI)/无头模式)从任何 Java 兼容操作系统(Linux、Windows、Mac OSX 等)加载测试 完整且可随时呈现的动态 HTML 报告 通过从最流行的响应格式、HTML、JSON、 XML或任何文本格式中提取数据的能力轻松关联 完全可移植性和100% Java 纯度。 完整的多线程框架允许多个线程并发采样和不同线程组同时采样不同功能。 缓存和离线分析/重放测试结果。 高度可扩展的核心: 可插拔采样器允许无限的测试功能。 可编写脚本的采样器(与 JSR223 兼容的语言,如Groovy和 BeanShell) 可以使用可插拔计时器选择多个负载统计信息。 数据分析和可视化插件允许极大的可扩展性和个性化。 函数可用于为测试提供动态输入或提供数据操作。 通过适用于 Maven、Gradle 和 Jenkins 的第3方开源库轻松实现持续集成。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值