前言
Apache JMeter 是 Apache 组织基于 Java 开发的压力测试工具,用于对软件做压力测试。 JMeter 最初被设计用于 Web 应用测试,但后来扩展到了其他测试领域,可用于测试静态和动态资源,如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库和 FTP 服务器等等。JMeter 可对服务器、网络或对象模拟巨大的负载,在不同压力类别下测试它们的强度和分析整体性能。另外,JMeter 能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证程序是否返回了期望结果。为了最大限度的灵活性,JMeter 允许使用正则表达式创建断言。from [百度](https://baike.baidu.com/item/Jmeter/3104456?fr=aladdin)
使用场景
常规的性能测试中,常用的性能测试工具中,Jmeter绝对是必选好用的利器之一,使用Jmeter可以快速模拟大并发,多线程场景,从而可以快速知道接口的吞吐量,性能瓶颈接口
安装
window环境
下载链接:https://archive.apache.org/dist/jmeter/binaries/ 查找对应版本(window x64),本文以5.4.3版本为例,我们只需要关注安装路径下的/bin目录的jmeter.properties、system.properties文件
jmeter.properties
- 修改为中文显示
language=zh_CN
- 修改远程连接主机
remote_hosts=172.16.33.205:1099,172.16.33.206:1099 #分布式远程环境下使用该配置,多台主机用逗号分开,若是本地压测,忽略此配置
- 剔除ssl配置
server.rmi.ssl.disable=true
system.properties
- Jmeter回调地址
java.rmi.server.hostname=172.16.72.54
# 分布式环境下需要注意,本地测试可以忽略 若jmeter部署在远端服务器,
# 需要修改此项配置,该ip来源于本地电脑ip(若是内网,请填写内网ip),部署远端服务器的Jmeter在本地控制,则远端的Jmeter会回调本地控制的ip
本地压测
场景一:纯本地压测,无部署服务到远端(此处远端指本地以外的其他机器)
右键以管理员身份启动jmeter-server.bat批处理脚本,等待启动
启动过程
![外链图片转存中...(img-blog.csdnimg.cn/5ebe0d9df6664d98a3f1dc07ff4a9cfa.png)
页面简单描述
>常见添加项(菜单栏-》文件-》新建测试计划-》右键添加):
线程组
如下图,着重介绍下线程属性:指定线程数50 每个线程执行1s,循环次数可选永远,调度器:设置50线程持续跑600秒
csv数据文件设置
如下图,设置路径,与变量名(具体用法后面继续介绍),文件类型可以是TXT也可以是CSV,或者XML
在这里插入图片描述
Http请求头
如下图,Http请求头设置,一般与那个Http监听器同一层级,就是设置该Http,若都是同一层级,则默认设置所有请求头,如图中此请求头,设置了《开始发货(预售)》和《HOLD单中点击开始发货》两项Http请求头
Http请求
如下图,设置基本的请求参数,注意此处变量与CSV文件相对应
设置响应断言
如下图,设置200为请求成功的标志
设置监听器
如下图,设置聚合报告等各种报告监听器,重点查看接口指标吞吐量
本地启动
如下图,本地启动Jmeter对目标接口压测
场景二:远程压测,本地gui页面控制,已部署服务到远端
有时候,我们往往需要多台压测机器同时对某个接口施压,以达到最大压测效果,为此需要部署分布式的压测环境,然后通过本地的页面gui对分布式压测环境进行控制(启停),页面直接连接所有分布式压测机器
分布式压测原理简图
本文转载自: https://blog.csdn.net/xianghe_qqq/article/details/127725824
版权归原作者 dzx156 所有, 如有侵权,请联系我们删除。
版权归原作者 dzx156 所有, 如有侵权,请联系我们删除。