如何使用jmeter进行压测

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

1.概述

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

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


下载地址:


https://jmeter.apache.org/download_jmeter.cgi


启动:


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


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

test plan:

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


thread group:


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


取样器:


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


三者的关系:


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


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


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

bfcf60115d33458f9593c8e405770e00.png

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

image.png

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

1118cd0a06aa4a189ae3204276b27026.png

3.调试运行

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

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

c3bd8f7a9c104b1db449ef4a86dfdc28.png

d30b926b562b47c083fc05c35fbf0ce8.png

一些核心参数的意思:


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


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


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


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


Headers size in bytes:response的header大小。


Body size in bytes:response的body大小。

4.请求默认值

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

26ea1862134b433f98c6e8dbcf6ca060.png

aede5b2a33f043cabbf618c73dd0914d.png

5.流量录制

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

6.模拟时间间隔

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

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

f53994b8116f45e195c0139fee159fdf.png

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的请求的详细统计,成功、失败、耗时等信息。

以下是一个示例:

6e237cf10c96dea9304a448024c58c74.png

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
3天前
|
Ubuntu Java 测试技术
【Linux】一站式教会:Ubuntu(无UI界面)使用apache-jmeter进行压测
【Linux】一站式教会:Ubuntu(无UI界面)使用apache-jmeter进行压测
|
8月前
|
关系型数据库 MySQL Java
【JMeter】(3)---MySQL压测
【JMeter】(3)---MySQL压测
180 0
|
6月前
|
消息中间件 弹性计算 Java
使用阿里云性能测试工具 JMeter 场景压测 RocketMQ 最佳实践
使用阿里云性能测试工具 JMeter 场景压测 RocketMQ 最佳实践
|
8月前
|
XML 前端开发 测试技术
使用 jMeter 对 SAP Spartacus 进行并发性能测试
使用 jMeter 对 SAP Spartacus 进行并发性能测试
76 0
|
3天前
|
测试技术 UED
PTS压测问题之资源准备好慢如何解决
PTS(Performance Testing Service)是一项面向网站、应用等提供的压力测试服务,用于模拟不同场景下的用户访问,评估系统的性能表现;在进行PTS压测时,可能会出现一些异常或报错,本合集将PTS压测中频繁出现的问题及其解决办法进行汇编,旨在帮助用户更有效地进行性能测试和问题定位。
252 1
|
3天前
|
Web App开发 Java 测试技术
秒懂HTTPS接口(JMeter压测篇)
【5月更文挑战第11天】秒懂HTTPS接口(JMeter压测篇)
14 2
秒懂HTTPS接口(JMeter压测篇)
|
3天前
|
数据可视化 Java 测试技术
JMeter 如何实现 Elasticsearch 8.X 性能测试?
JMeter 如何实现 Elasticsearch 8.X 性能测试?
20 0
|
3天前
|
JSON 网络协议 Java
使用Jmeter进行功能和性能测试
使用Jmeter进行功能和性能测试
|
6月前
|
JSON Java 测试技术
Jmeter压测工具使用手册(四)
Jmeter压测工具使用手册
118 0
|
6月前
|
JSON Java 测试技术
Jmeter压测工具使用手册(三)
Jmeter压测工具使用手册