news 2026/6/10 17:38:05

如何使用jmeter进行压测

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何使用jmeter进行压测

简介:1.概述 一款工具,功能往往是很多的,细枝末节的地方也很多,实际的测试工作中,绝大多数场景会用到的也就是一些核心功能,根本不需要我们事无巨细的去掌握工具的所有功能。所以本文将用带价最小的方式讲解如何快速上手使用jmeter来进行压测。 JMeter,一款接口测试工具,是Java程序,需要JDK环境,建议使用JDK8或者JDK11。

1.概述

一款工具,功能往往是很多的,细枝末节的地方也很多,实际的测试工作中,绝大多数场景会用到的也就是一些核心功能,根本不需要我们事无巨细的去掌握工具的所有功能。所以本文将用带价最小的方式讲解如何快速上手使用jmeter来进行压测。

JMeter,一款接口测试工具,是Java程序,需要JDK环境,建议使用JDK8或者JDK11。

下载地址:

Apache JMeter - Download Apache JMeter

启动:

安装路径/bin/jmeter.bat(.sh)

2.测试计划、线程组、取样器

test plan:

测试计划,jmeter中的一个测试计划对应一个测试场景。

thread group:

线程组,jmeter中的一个线程组对应一个行为。一个行为可以理解为一个场景,可以是由多个接口组成的,比如下单,里面就可以包含扣减库存、生成订单等多个接口。

取样器:

可以理解为一次请求,jmeter支持多种类型的取样器,当然我们常用的是http的取样器。

三者的关系:

整个jmeter的使用其实就是建立一个测试计划,然后给这个测试计划下面配上各种需要的东西,比如线程组、监听器等等,

一个线程组包含多个取样器,一个取样器就是一个请求。线程组里面的每一条线程都会完整的从上到下顺序执行一遍该组下的取样器。

建立测试计划,添加线程组:

线程组添加取样器,对http接口的请求就添加http取样器:

一整套测试计划建好后,支持导出为文件,导出为文件后可以脱离开界面通过指令来运行整个测试计划:

3.调试运行

测试计划直接执行是不会有任何结果展示的,需要添加监听器(listener)来进行调试,查看中间结果。

一般使用view results tree,查看结果树的监听器,可以查看到运行结果。

一些核心参数的意思:

Connect Time:建立TCP连接的时间。

lantency:发出请求前到接收到第一个响应的时间。

loadtime:从发出请求前到接收完所有响应的时间。

Size in bytes:整个response报文的大小=header+body。

Headers size in bytes:response的header大小。

Body size in bytes:response的body大小。

4.请求默认值

请求默认值,即请求的缺省配置默认值。配置后一个测试计划中的所有请求都的配置缺省时都采用请求默认值中的配置。

5.流量录制

测试网页页面的时候http请求里面除了API,还杂糅着很多静态资源(html/js/css)的请求,到底请求这个页面发出了多少url?可以使用jmeter的流量录制功能,可以录制出某次访问里的所有http请求。这个功能在实际压测里用的比较少,这里只是提一句有这个功能,不做展开,具体要用的时候可以搜一下,怎么使用。

6.模拟时间间隔

使用定时器可以模拟时间间隔,定时器的作用范围是所在结点下的所有同级结点及其子结点。

定时器有多种,有些定时器不是固定时间间隔的,比如时间间隔满足高斯变化的高斯定时器等,具体的种类可以搜一下。

7.压力测试

运行指令:

真正的压力测试不使用图形界面来测试,因为图形界面作为中间层也会有性能损耗,而是直接使用命令行模式。

{base dir}\bin\jmeter -n -t XXX.jmx -l log.jtl

XXX.jmx是使用图形界面配置好后导出的jmx文件。

压力测试一般会给出测试用例,对性能需求进行描述,如下就是个性能测试用例:

用户无需登录,先访问首页,再访问单课页,最后访问新闻页面。

访问页面间隔10秒。

用户数1200个,在10分钟依次上线。

照着测试用例配置jmeter就行,上面的需求描述转成jmeter的配置就是:

创建一个1200条线程的线程组,10分钟内执行完;

线程组下有三个http取样器,按照顺序为请求首页、请求单课页、请求新闻页;

创建一个定时器,每10秒取样一次。

8.报表

jmeter可以生成HTML报表

jmeter -n -t [Jmx脚本位置] -l [中间文件result.jtl位置] -e -o [报表指定文件夹]

报表文件夹内会产生HTML文件,其中会详细包含对所有url的请求的详细统计,成功、失败、耗时等信息。

以下是一个示例:

最后作为一位过来人也是希望大家少走一些弯路,在这里我给大家分享一些软件测试的学习资料,这些资料希望能给你前进的路上带来帮助。

视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 22:48:00

基于springboot框架的基于 BS 模式的评教评学系统vue

目录系统概述技术架构核心功能创新点开发技术核心代码参考示例1.建立用户稀疏矩阵,用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度总结源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!系统概述 基于Spr…

作者头像 李华
网站建设 2026/6/10 9:03:44

揭开数据分析的新篇章:OpenBB金融数据平台

在数据驱动的时代,金融分析师、量化分析师和AI代理需要高效便捷的数据管理工具。Open Data Platform by OpenBB (ODP) 是一款开源工具集,旨在帮助数据工程师将专有、许可和公共数据源整合到下游应用中,如AI助手和研究仪表板。 ODP的工作原理…

作者头像 李华
网站建设 2026/6/10 9:04:31

简易制作LinuxShell完全指南(深入解析原理、设计与实践步骤)

简易制作LinuxShell完全指南(深入解析原理、设计与实践步骤) 一个适合小白的Linux Shell制作教程 欢迎来到本教程!我们将从零开始,详细分析Linux Shell的原理、设计并实践制作一个简易Shell。无论你是编程新手还是想深化理解&…

作者头像 李华
网站建设 2026/6/9 18:49:08

ssm springboot动物园宠物动物救助领养商城之家网站全vue

目录项目概述技术架构核心功能特色与创新应用价值开发技术核心代码参考示例1.建立用户稀疏矩阵,用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度总结源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!项目概…

作者头像 李华