JMeter入门实践

本文涉及的产品
云原生网关 MSE Higress,422元/月
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
应用实时监控服务-可观测链路OpenTelemetry版,每月50GB免费额度
简介: JMeter(表)即 Apache JMeter,是ApacheSoftwareFoundation开发的压力测试工具。该应用程序是开源软件,旨在对应用程序功能和行为进行测试,以衡量其性能指标。它最初是为测试Web应用程序而设计的,但此后已扩展到其他测试功能。

一、概述
二、安装&配置
三、发送Http请求
四、简单的压力测试

一、概述

JMeter(表)即 Apache JMeter,是ApacheSoftwareFoundation开发的压力测试工具。该应用程序是开源软件,旨在对应用程序功能和行为进行测试,以衡量其性能指标。它最初是为测试Web应用程序而设计的,但此后已扩展到其他测试功能。

功能:
1:接口测试:http、https、soap
2:FTP
3:数据库:通过JDBC进行数据库压力测试
4:电子邮件:smtp、pop3、imaps
5:...

二、安装&配置

JMeter依赖jdk环境

1:下载
官网:https://jmeter.apache.org/download_jmeter.cgi
网盘: https://pan.baidu.com/s/16EuspFraC3pUs8XjoPe6Wg 提取码: n7v2

2:配置
JMETER_HOME:D:\application\apache-jmeter-5.4.1\apache-jmeter-5.4.1
在Path中新增:
%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar
%JMETER_HOME%\lib\jorphan.jar
%JMETER_HOME%\bin

3:启动
在命令行工具中:jmeter
双击jmeter.bat

三、发送http请求

测试计划->线程组->http请求&结果视图

新建测试计划:file - new - 填写Name&comments - Ctrl+S
新建线程组:测试计划右键 - add - Threads - ThreadGroup - 填写Name&comments - Ctrl+S
新建http请求:线程组右键 - add - Sampler - HttpRequest - 填写Name&comments - 填写ServerNameOrIp&Path - Ctrl+S
新建结果视图:线程组右键 - add - Listener - ViewResultsTree - 填写Name&comments - Ctrl+S

Image.png
Image.png

1:请求页面和请求结果页面是分开的,发送完请求之后需要切换到【结果视图】查看http请求的结果
2:运行测试计划的快捷键是Ctrl+r ,若测试计划中有多个http请求,运行一次,所有的http请求都会被执行
3:从这个简单的例子,大概可以总结一下 JMeter 的结构,测试计划为顶层对象,一个测试计划可以包含多个线程组,一个线程组中可以包含采样器(必须,用来发送请求)和监听器(必须,用来查看请求结果)。除采样器和监听器之外,还有逻辑控制器、处理器、断言、配置元件等,这些是 JMeter 的核心(也是基础)模块。

四、压力测试

以访问本地图片服务器获取图片为例,该接口的功能是根据传入的参数返回对应的图片,总共两个参数,第一个为项目名称,第二个为图片名称。如:http://localhost/apache/jmeter.png 为获取apache项目中图片名称为jmeter.png的图片。

准备测试数据 -> 编写测试计划 -> 查看测试结果

编写测试计划:新建测试计划 StressTestDemo -> 导入测试数据 -> 编写采样器 -> 新建结果树&结果报表

1:准备测试数据

新建一个 data.txt 的文件,在其中存方测试数据,如我们要测试的接口包含两个请求参数,那么可以将该参数放在txt中,用英文逗号分隔,每一行为一组测试数据。

Image.png

参数1:project,表示项目
参数2:img,表示图片名称

JMeter 本身可以新建和存储用户自定义变量,变量也可以作为测试数据来维护。在线程组右键 -> add -> 配置元件 -> 用户自定义的变量 可添加自定义变量。

2:新建测试计划并导入测试数据

2.1:新建测试计划和线程组

线程数:20,模拟20个用户请求,20个用户即20个线程
Ramp-Up时间: 设置线程需要多长时间全部启动。如果线程数为200 ,准备时长为10 ,那么需要1秒钟启动20个线程。也就是每秒钟启动20个线程。
循环次数: 每个线程发送请求的次数。如果线程数为200 ,循环次数为10 ,那么每个线程发送10次请求。总请求数为200*10=2000 。如果勾选了“永远”,那么所有线程会一直发送请求,直到选择停止运行脚本。

Image.png

2.2:导入测试数据
导入测试数据:右键线程组 -> 添加 -> 配置元件 -> CSVDataSetConfig

文件名:data.txt 绝对路径
文件编码:utf-8
变量名称:project,img

Image.png

消费测试数据,用 ${project} 和 ${img}

3:编写采样器

线程组右键 -> 添加 -> 采样器 -> http请求

服务器名称orIP:127.0.0.1
path:/images/${project}/${img}

Image.png

4:新建结果集
新建结果树视图:线程组右键 - add - Listener - ViewResultsTree - 填写Name&comments
新建结果统计报表视图:线程组右键 - add - Listener - ViewSummaryReport - 填写Name&comments

5:开始测试
200个线程,每一个线程运行10次,共请求2000次,线程轮询从测试数据集中获取参数。先保存,然后点击运行按钮,或者Ctrl + r 。

结果树收集的内容,根据请求不通返回不同的图片,

Image.png
Image.png

结果报表内容,统计请求结果

HTTPRequest:采样器名为HTTPRequest的请求结果报表
总体:若有多个采样器,这里会统计所有数据,当前例子中总体和HTTPRequtst 的数据一致。
样本:总请求数

Image.png

大家在测试的时候,可将127.0.0.1换成10.30.63.181进行测试。

五、拓展

1:JMerer 如何进行自动化测试,如调用登录接口获取token ,根据token测试查询用户列表接口,根据返回的用户id测试获取用户详情接口。
2:LoadRunner
3:Gatling

六、引用

官网:https://jmeter.apache.org/index.html
腾讯云云社区:https://cloud.tencent.com/developer/article/1552891?from=article.detail.1552896
阿里云开发者社区:https://developer.aliyun.com/article/535879


目录
相关文章
|
6月前
|
编解码 NoSQL 测试技术
性能工具之Jmeter HLS 插件(入门篇)
【2月更文挑战第28天】JMeter Redis 数据集 vs CSV 数据集性能对比
194 1
性能工具之Jmeter HLS 插件(入门篇)
|
6月前
|
消息中间件 Java 测试技术
性能工具之Jmeter扩展函数及压测ActiveMQ实践
【5月更文挑战第18天】性能工具之Jmeter扩展函数及压测ActiveMQ实践
108 5
|
6月前
|
小程序 Java 编译器
性能工具之JMeter 微信小程序 WebSocket 脚本入门
【5月更文挑战第12天】性能工具之JMeter 微信小程序 WebSocket 脚本入门
216 1
|
5月前
|
缓存 Linux API
深入解析 JMeter TPS 测试:从理论到实践
本文档介绍了如何使用Apache JMeter进行TPS测试。TPS(Transactions Per Second)是衡量系统性能的关键指标,表示每秒处理的事务数。在JMeter中,创建测试计划包括配置线程组、HTTP请求、定时器和监听器。运行测试后,通过聚合报告分析吞吐量、平均响应时间和错误率来计算TPS。当TPS不足时,可优化服务器资源、应用程序代码、数据库查询或引入缓存来提升性能。掌握TPS测试有助于系统性能优化。
|
6月前
|
JSON 测试技术 数据格式
性能工具之Jmeter关联入门
【4月更文挑战第4天】关联是每个性能测试人员必须掌握的技能,是解决性能脚本中的"金钥匙"。
73 2
性能工具之Jmeter关联入门
|
监控 关系型数据库 MySQL
『Jmeter入门万字长文』 | 从环境搭建、脚本设计、执行步骤到生成监控报告完整过程
『Jmeter入门万字长文』 | 从环境搭建、脚本设计、执行步骤到生成监控报告完整过程
505 2
|
6月前
|
监控 Java Linux
Apache JMeter5.2基础入门实践详解
Apache JMeter5.2基础入门实践详解
163 0
|
Java 测试技术 Apache
JMeter与Python的多重交响:从入门到高级应用(上)
在性能测试领域,Apache JMeter已经成为测试专业人士的首选工具,用于模拟用户行为、测量响应时间、评估系统性能。但在某些情境下,为了满足特定需求,我们需要更多的灵活性,比如引入Python来进行特定操作或处理复杂逻辑。**”** Jython -----
JMeter与Python的多重交响:从入门到高级应用(上)
|
Java 测试技术 Apache
JMeter与Python的多重交响:从入门到高级应用(下)
在性能测试领域,Apache JMeter已经成为测试专业人士的首选工具,用于模拟用户行为、测量响应时间、评估系统性能。但在某些情境下,为了满足特定需求,我们需要更多的灵活性,比如引入Python来进行特定操作或处理复杂逻辑。。
JMeter与Python的多重交响:从入门到高级应用(下)
|
Java 测试技术 Linux
JMeter(1) --- 入门
JMeter(1) --- 入门
105 0

相关实验场景

更多