JMeter 快速入门体验,小白也能看得懂!

最近在推进信创转 arm, 遇到的问题是有几个服务在 x86 架构下运行良好,但是在 arm 机器上总是出现问题,为了验证问题,准备使用压测工具做一下压力测试,JMeter 免费开源又好用,趁此机会学习实践一下吧。

JMeter 是开源软件 Apache 基金会下的一个性能测试工具,用于测试部署在服务器端的应用程序的性能。本文旨在帮助想了解性能测试和 JMeter 的初学者。本文将介绍 JMeter 的安装和运行方法,以及如何开始最简单的测试。

下载安装

直接在官网下载最新版即可,JMeter 是免安装版的,下载解压后可以直接使用(前提是你电脑上已经安装过 JDK 8 以上的环境,安装这块应该问题不大,大家自行解决):

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

如需历史版本可以移步:

https://archive.apache.org/dist/jmeter/

我这里使用最新版的 5.6.3

下载解压后,目录结构如下:

目录说明:

  • backups: 默认是没有的,当你运行了测试任务时就会自动将测试脚本(.jmx 文件)备份到这里

  • bin: 可执行脚本和一些模版示例

  • docs: Java doc 文档

  • extras: 提供了对构建工具 Ant 的支持,可以使用Ant来实现测试自动化,例如批量脚本执行,产生HTML格式的报表

  • lib: 该目录包含两个子目录,其中ext子目录存放 JMeter 的核心 jar 包,另一个junit子目录存放JUnit测试脚本

  • licenses: 相关 licenses

  • printable_docs: 该目录存放的是 jmeter 官方提供的帮助文档,可以离线查看

启动 JMeter

在 bin 目录下,Windows 用户运行 jmeter.bat 文件即可启动, JMeter,Unix / MacOS 用户则需要运行 jmeter.sh

启动之后会打开一个 GUI 软件( CMD 窗口也不要关,隐藏即可)

默认字体比较小,可以 Options -> Zoom In 进行放大

也支持简体中文,根据自己的喜好来设置即可,Options -> Choose Language -> Simple

图形化界面,大家可以自己熟悉一下就可以了,接下来,我们来创建一个测试计划

创建测试计划

所谓测试计划,就是要执行的测试任务的合集,对应一个 .jmx 文件,完整的测试计划包含一个或者多个线程组,逻辑控制器,取样发生控制,监听器,定时器,断言和配置元件等组成。

添加线程组

如上图中的 Test Plan, 我们来添加一个线程组:选中 Test Plan - 右键 - Add - Threads(Users) - Thread Group.

JMeter 是由 Java 实现的,使用一个 Java 线程来模拟一个用户,因此线程组(Thread Group)就是指一组用户的意思。

操作完之后就会打开 线程组页面,可以配置线程组相关的内容,如下图

① 名称,起一个名称
② 出错如何处理,这里选择了 continue 继续
③ 总共有多少线程(用户),一个线程代表一个用户
④ 多长时间把 ③ 中设置的线程数拉起来,上面的设置就表示 1 秒时间将 100 个用户拉起来,以用户打卡为例,总共100个用户,大家都在 5 秒内打卡完成,大家有的在第 1 秒打,有的在第 3 秒打,这个设置就是模拟真实生活场景的,用户也不是完全同时的
⑤ 每个用户循环几次,上面的设置就表示 100 个用户,每人做 10 次,总共发出 10 * 1000 = 10000 次请求

添加测试任务

有了线程组,下面要给这批用户(线程)分配活了,同样,在 线程组 上右键进行相关操作,这里配置最简单的 HTTP 请求

配置页面也比较容易理解,跟使用 PostMan 之类的差不多,大家看页面应该就知道怎么填了,比如我这里简单测试接口 http://localhost:8080/hello?name=jack 。

保存并执行

保存并执行测试计划

点击 三角 执行测试计划,点击 Options - Log Viewer 可以打印日志信息

添加监听器

上面已经可以正常压测了,但是看不到输出的结果,我们可以添加一些监听器进行查看结果,比如 查看结果树 和 聚合报告 这两个。

查看结果树可以查看到每次请求的响应情况

聚合报告用来查看测试计划所执行的情况,比如延迟,吞吐量之类的

先简单知道些入门的东西,后续再探究更加高阶的内容。

命令行执行

在 windows 上可以运行 GUI 界面,但是在 linux 服务器上一般执行 命令行 命令较多,当然,在 windows 上也可以执行 命令行 指令,我们来简单使用一下。

在 bin 目录下有可执行的脚本,在 bin 目录下,windows 系统按住 shift 右键 在此处打开 PowerShell 窗口,可以使用 .\jmeter -v 查看当前版本

使用 .\jmeter -h 查看帮助提示

还记得我们在上面演示的测试计划保存到了下面的目录,我们就用这个为例进行执行

提前再创建一个 E:\App\apache-jmeter-5.6.3\tmp_result 空目录(一定是一个空目录哟)用来存放输出的结果,直接看下面的示例,关键点是: -t 后面指定测试计划脚本,-l 输出csv 结果,-o 输出html结果

 .\jmeter -n -t 'E:\App\apache-jmeter-5.6.3\tmp_tests\Test Plan.jmx' -l E:\App\apache-jmeter-5.6.3\tmp_tests\Test.csv -e -o E:\App\apache-jmeter-5.6.3\tmp_result

执行界面输出结果

Test.csv 文件内容,每个请求的情况

tmp_result 输出结果

双击 index.html 查看

总结

时间关系,先分享到这里,也算带大家入门了 JMeter 的最基本使用吧,后面再继续探索更多实操,届时再做分享,当然你也可以继续搜索更加进阶的内容,带有目的性的去学习更加深入的内容。

我后续会继续在 linux 服务器上进行实践,包括启用多机器联机模式进行加大压力真正实践生产级压测需求,大家感兴趣的话可以关注一下,期待下次分享。

如有任何问题,欢迎关注公&号:新质程序猿,找到我,有问必答,一起成长。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1522822.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

高德地图-小米14 Pro 定制版 v12.10.61.3021 简洁版

高德地图小米14 Pro 定制版是一款专门为小米14 Pro 设计的简洁版高德地图。相较于普通版本,该版本体积更小,运行速度更快,并且没有广告。支持驾车、骑行、公交地铁、步行等多种导航模式,使用北斗卫星导航系统,精准度非…

【机器人学】7-4.六自由度机器人自干涉检测-两圆柱体空间关系【附MATLAB代码】

目录 前言 公式推导 MATLAB代码 前言 前面介绍了两个圆柱的旋转变换,已将两个圆柱体旋转到了比较好分析的位置,下面将正式分析两个圆柱体的位置关系。会借用投影的思想。 一 根据机械臂的几何数据以及DH参数,确定机械臂等…

硬件产品经理进阶:产品层次划分的3个方法

目录 1、内容简介 2、产品三层次概念 3、产品四层次概念 4、产品五层次概念 作者简介 1、内容简介 产品本身指的是能够满足需求和欲望的一种媒介物。 可以是实体、也可以是虚拟的服务。 在产品竞争白热化的今天, 如果只是考虑把产品做出来、 仅仅在实际产…

保存json时,保存成自己喜欢的格式的方法(而不是直接保存成格式化的json文档)

保存json时,不是直接保存成格式化的json文档的格式的方法 前言,博主是如何把格式话的json格式保存成自己喜欢的json格式的保存成格式化的json文档的格式:带缩进格式全部保存成一行每条数据保存成一行: 保存成自己喜欢的格式碎碎念…

红黑树的插入 C++

红黑树与二叉搜索树类似 它在每个节点增加了一个存储位记录节点的颜色,可以是RED,也可以是BLACK;通过任意一条从根到叶子简单路径上颜色的约束,红黑树保证最长路径不超过最短路径的二倍,因而近似平衡(最短路径就是全黑…

深入浅出Stream流

Java 8的新特性之一就是流stream,配合同版本出现的 Lambda ,使得操作集合(Collection)提供了极大的便利。 案例引入 在JAVA中,涉及到对数组、Collection等集合类中的元素进行操作的时候,通常会通过循环的…

学习bat脚本

内容包含一些简单命令或小游戏,在乐趣中学习知识。 使用方法: 新建文本文档,将任选其一代码保存到文档中并保存为ASCII编码。将文件后缀改为.bat或.cmd双击运行即可。 一. 关机脚本 1. 直接关机 echo off shutdown -s -t 00秒直接关机。 2…

亿图图示下载安装教程EdrawMax Pro 13版超详细图文教程

亿图图示下载安装教程EdrawMax Pro 13版超详细图文教程: 亿图图示是一款功能强大的综合绘图软件,具有以下特点和功能 丰富的绘图类型:涵盖 210 余种办公绘图类型,包括流程图、思维导图、信息图、工业设计、组织架构图、平面设计…

Java学习第五天(续)

方法 方法是一种语法结构,它可以把一段代码封装成一个功能,以方便重复调用。 主要分析返回值和形参,只要确定这两个就可以定义方法。 方法调用内存图 方法调用完之后就从栈内存清除走了; 方法参数传递机制: 值传递&a…

UE4_地形_悬崖拉伸的解决

参考教程 【虚幻5】UE5_UE4_解决悬崖地形贴图拉伸_哔哩哔哩_bilibili 纹理处理 | 虚幻引擎 4.27 文档 | Epic Developer Community (epicgames.com) 主要通过蓝图节点解决:WorldAlignedTexture WorldAlignedTexture(全局一致纹理)函数用于…

spark sql 优化

1. 配置 比例内存 : core 1:2 2. 增加 core 数可以增加 执行任务的 线程数 3. 计算有大表,并发生shuffle 时,生成的任务数是由spark.sql.shuffle.partitions 决定的,所以针对大表shuffle ,要增加spark.sql.shuffle.partitio…

台球助教陪练预约系统源码开发

随着科技的发展和人们对生活质量要求的提高,体育运动的数字化趋势日益明显。台球作为一种集休闲娱乐与竞技于一体的运动项目,在全球范围内拥有广泛的爱好者群体。为了更好地满足这部分人群的需求,开发一个高效的台球助教陪练预约系统变得尤为…

被低估的SQL

SQL是现代数据库管理系统中不可或缺的一部分。尽管它的使用已十分普遍,但在数据处理领域,SQL的某些功能和潜力仍然被许多人低估。接下来,小编将与您一起,探讨SQL的一些被忽视的特性,揭示它在数据管理中的真正实力。 1.…

【ssh】如何远程连接

1. 在C:\Users\.ssh的config文件里输入配置,如: 如图使用了跳板机 2. 打开cmd,输入: ssh 主机名 出现报错:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! SSH 检测到该主机的密钥与之前保存的密钥不匹配。解决&…

C++ | Leetcode C++题解之第388题文件的最长绝对路径

题目&#xff1a; 题解&#xff1a; class Solution { public:int lengthLongestPath(string input) {int n input.size();int pos 0;int ans 0;vector<int> level(n 1);while (pos < n) {/* 检测当前文件的深度 */int depth 1;while (pos < n && in…

新的打包工具 Rsbuild 尝鲜:Vue2-cli 项目迁移 Rsbuild

当前时间 2024-08-31 看到一个新的打包工具&#xff0c;于是想试一试&#xff0c;这里是官网 测试 用过 vue-cli 的同志们应该有所感受&#xff0c;启动项目挺慢的&#xff0c;我这个项目不太大&#xff0c;第一次启动是最慢的&#xff0c;之后启动快了一些些&#xff0c;而且…

echarts组件——条形统计图

echarts组件——条形统计图 竖向条形统计图&#xff0c;单柱状&#xff0c;多柱状&#xff0c;悬浮框展示 组件代码 <template><div :class"classname" :style"{height:height,width:width}" /> </template><script> // 柱状图…

鸿蒙(API 12 Beta6版)图形【NativeDisplaySoloist开发指导】方舟2D图形服务

如果开发者想在独立线程中进行帧率控制的Native侧业务&#xff0c;可以通过DisplaySoloist来实现&#xff0c;如游戏、自绘制UI框架对接等场景。 开发者可以选择多个DisplaySoloist实例共享一个线程&#xff0c;也可以选择每个DisplaySoloist实例独占一个线程。 接口说明 函…

c++ 156函数

inline内联函数 #include<iostream> using namespace std;inline void printA() {int a 10;cout << "a:" << a << endl;}void main() {//printA();//c编译器会这样 把函数体机械地放到main函数里面{int a 10;cout << "a:"…

如何构建Java SpringBoot中药材管理系统,实现高效进存销,2025届必备技能!

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…