Jmeter下载、安装及配置
1 Jmeter介绍
Jmeter是进行负载测试的工具,可以在任何支持Java虚拟机环境的平台上运行,比如Windows、Linux、Mac。
Jmeter模拟一组用户向目标服务器发送请求,并统计目标服务器的性能信息,比如CPU、memory usage。

2 Jmeter下载
1 去官网:https://jmeter.apache.org/download_jmeter.cgi下载
点击Binaries->

2 下载到本地、解压

3 Jmeter配置
打开bin文件夹,双击jmeter.bat会打开一个cmd窗口及打开Jmeter。
cmd窗口里有一些提示信息,比较重要,可以看以下。
Don't use GUI mode for load testing !, only for Test creation and Test debugging.
For load testing, use CLI Mode (was NON GUI):jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
& increase Java Heap to meet your test requirements:Modify current env variable HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m" in the jmeter batch file
Check : https://jmeter.apache.org/usermanual/best-practices.html

问题:字体太小了
1 解决字体太小的问题:修改jmeter.properties配置
1 用notepad++打开D:\developSoftware\apache-jmeter-5.6.3\apache-jmeter-5.6.3\bin\jmeter.properties
2 更新以下字段并重启Jmeter
| Description | Key=Value | 必须 |
|---|---|---|
| 修改字体大小 | jsyntaxtextarea.font.size=24 | Y |
| 修改右侧参数比例 | jmeter.hidpi.mode=true jmeter.hidpi.scale.factor=2.0 | N |
| 修改左侧树结构比例 | jmeter.tree.icons.size=32x32 | N |
| 修改工具栏图标大小 | jmeter.toolbar.icons.size=32x32 | N |
注意:设置完后要重启Jmeter进行检查。
但是设置完重启后,打开字体还是很小。
3 需要修改界面外观:
Options-Look and feel->改到Windows,然后重启:字体显示就好了,不会那么小

2 每次都要去到Jmeter/bin,不方便
选中jmeter.bat,右键,选择发送到桌面。

下次就可以直接双击快捷方式,直接打开Jmeter,不用再去到bin: D:\developSoftware\apache-jmeter-5.6.3\apache-jmeter-5.6.3\bin
4 新建Jmeter脚本并保存
0 双击桌面的快捷方式,打开Jmeter
1 Thread Group 线程组
1 测试计划下:创建线程组
Test Plan右键:Add->Threads->Thread Group

2 修改Thread Group参数:120s内启动300并发数,脚本跑1h
| Key | Value | 描述 |
|---|---|---|
| Number of Threads (users) | 300 | 并发请求数量 线程数:虚拟用户数,一个用户占一个线程。 |
| Ramp-up period (seconds) | 120 | 准备时长:设置的虚拟用户数需要多久能全部启动。 比如120s启动300个线程。 |
| Loop count | Infinite | 循环次数:每个线程发送的次数。配置1 就发送一次,配置无穷,就一直发,直到配置的时间到期或手动停止。 |
| Duration (seconds) | 3720 | 这个脚本跑多久,公式duration=mins*60s+ramp-up period 比如,3720=60*60+120 |

2 线程组下:HTTP request请求
0.1 创建HTTP request
右键选中线程组, Add->Sampler->HTTP Request

0.2 修改HTTP request请求
| Key | Value | 描述 |
|---|---|---|
| protocol | https | 协议 |
| Server name or IP | baidu.com | |
| Port number | 443 | 端口号 |
| HTTP request method | GET | 请求类型,如GET、POST |
| Body Data | 请求体,一般是POST要配置Body |

3 HTTP request下创建5项
1 HTTP Header manager 信息头管理
1 创建http header manager
右键选中HTTP request,Add->Config Element->HTTP Header Manager

2 新增header
按页面下方的Add按钮,就会新增一行Name-Value

2 Constant Throughput Timer
1 创建Constant Throughput timer
右键选中HTTP request,Add->Timer->Constant Throughput Timer

2 修改throughput timer
Target throughput per minute = Target_TPS *60
比如6000=100TPS*60,如果想测试1300TPS,那么这个throughput就填78000 (1300*60)

3 Response Assertion
1 右键选中HTTP request,Add->Assertions->Response Assertion

2 修改response assertion
| Key | Value | 描述 |
|---|---|---|
| Response code | Checked | 怎样验证request成功或失败? 检查点通常可以选response code |
| Pattern matching rules | Equal | 匹配规则:要相等 |
| Patterns to test | 200 |
4 查看结果树:view result tree
1 创建view result tree
右键选中HTTP request,Add->Listener->View Results tree

然后就能看到新创建出来的result tree。

5 Aggregrate report
1 创建Aggregrate report
右键选中HTTP request:Add->Listener->Aggregrate report


4 保存test plan


然后就会生成.jmx文件
5 运行测试脚本
1 把参数改小,方便调试
比如:
| key | Value |
|---|---|
| Number of thread | 1 |
| Ramp-up period | 10 |
| Duration | 60 |
| Throughput | 600 |

2 按Run按钮,开始跑脚本
3 检查结果
1 可以View result tree 来检查request、response

2 也可以在Aggregrate report里检查跑完结果,比如average、error rate、throughput等

右上角能看到跑了多久,也可以通过选中errors来只显示Error的统计数据

4 清理数据
这次跑完,把数据清理了,参数修正下,接着跑下一轮。要先把数据清理掉,避免混杂在一起,不方便看log。
左边按钮是Clear,右边是Clear all

6 脚本测试通过后,可以用命令跑真正的测试或者可以在VM上跑perf test script.
1 CLI命令跑脚本:
jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
2 把jmx通过跳板机放到VM上,去执行。
参考:
1 https://blog.csdn.net/weixin_45014379/article/details/124190381
相关文章:
Jmeter下载、安装及配置
1 Jmeter介绍 Jmeter是进行负载测试的工具,可以在任何支持Java虚拟机环境的平台上运行,比如Windows、Linux、Mac。 Jmeter模拟一组用户向目标服务器发送请求,并统计目标服务器的性能信息,比如CPU、memory usage。 2 Jmeter下载 …...
掌握高效实用的VS调试技巧
🔥 个人主页:大耳朵土土垚 1.编程常见的错误 1.1编译型错误 编程编译型错误是指在编译代码时发现的错误。编译器在编译过程中会检查代码是否符合语法规范和语义要求,如果发现错误会产生编译错误。 直接看错误提示信息(双击&#…...
实验2 字符及字符串输入输出与分支程序设计实验
字符及字符串输入输出 从键盘输入两个一位十进制数,计算这两个数之和,并将结果在屏幕上显示出来。 分支程序设计 从键盘输入一字符,判断该字符是小写字母、大写字母、数字或者其他字符。若输入为小写字母,显示“You Input a Lo…...
docker容器间网络仿真工具-pumba
docker-tc&pumba docker-tc:docker-tc项目仓库 pumba:pumba项目仓库 这两个项目理论上都可以实现对容器间的网络环境进行各种模拟干预,包括延迟,丢包,带宽限制等。 但是我在实际使用时,发现docker-tc这个工具在进行网络进行模…...
A36 STM32_HAL库函数 之PCD通用驱动 -- B -- 所有函数的介绍及使用
A36 STM32_HAL库函数 之PCD通用驱动 -- B -- 所有函数的介绍及使用 1 该驱动函数预览1.11 HAL_PCD_SOFCallback1.12 HAL_PCD_ResetCallback1.13 HAL_PCD_SuspendCallback1.14 HAL_PCD_ResumeCallback1.15 HAL_PCD_ISOOUTIncompleteCallback1.16 HAL_PCD_ISOINIncompleteCallbac…...
vue2 + element三级菜单实现模板
需求: 需要一个含有三级菜单的结构模板,用于业务快速开发。 解决: sidebar.vue <template><el-menu :default-active"defaultActive" class"el-menu-vertical-demo" active-text-color"#ffd04b"&…...
vue H5页面video 视频流自动播放, 解决ios不能自动播放问题
视频组件 <videostyle"width: 100%; height: 100%;object-fit: fill"class"player"refplayer_big_boxcontrolspreloadautoplay //自动播放muted //是否静音playsinline"true"x5-playsinline""webkit-playsinline"tru…...
自闭症儿童:探索症状背后的多彩内心世界
在星启帆自闭症康复中心,我们每天与一群独特而珍贵的孩子相遇——他们,是自闭症谱系障碍的患儿。自闭症,这一复杂的神经发育障碍,以其多样化的症状表现,为每个孩子的生活轨迹绘上了不同的色彩。 自闭症孩子的症状各异…...
在Centos7上安装PostgreSQL16的详细步骤
文章目录 环境一、准备二、postgresql下载方法一:wget下载方法二:下载压缩包解压 三、创建用户组、用户四、创建数据主目录五、配置环境变量六、initdb初使化数据库七、配置服务八、设置开机自启动九、设置防火墙十、启动数据库服务 环境 CPU: 4 核心或以…...
MySQL 图形化界面
填完信息之后,圆圈处可以验证是否可以连接数据库 展示所有数据库(因为有的可能连上,却没有数据库显示)...
【人工智能】GPT-5的即将到来:从高中生进化到,,,博士生?
GPT-5的即将到来:从高中生进化到,博士生? 随着近月GPT-4o的出世,OpenAI也在进行一系列的采访和介绍接下来的展望和目标。 在6月22日的采访中,美国达特茅斯工程学院公布了OpenAI首席技术官米拉穆拉蒂的访谈内容。穆拉蒂确认&#…...
【收录率高丨投稿范围广 | 往届均已EI检索】第四届光学与通信技术国际学术会议(ICOCT 2024,8月9-11)
欢迎参加第四届光学与通信技术国际学术会议(ICOCT 2024),该会议将于2024年8月9-11日在南京举办。自2021年首次会议以来,ICOCT已经发展成为光学和通信领域较有影响力的国际会议之一,聚焦最前沿的技术进展与未来发展趋势…...
小阿轩yx-LVS负载均衡群集
小阿轩yx-LVS负载均衡群集 构建群集服务器—通过整合多台服务器使用 LVS 达到服务器的高可用和负载均衡并以同一个 IP 地址对外提供相同的服务 LVS 群集应用基础 群集称呼来自英文单词“Cluster”在服务器领域则表示大量服务器的集合体,区分单个服务器 Cluster …...
CPP知识点记录总结
1、类的const成员函数 const成员函数的const 实际修饰的是该成员函数隐含的this指针,表明在该成员函数中不能对类的任何成员进行修改。 class A {void fun() const {// 常成员函数,在函数名后用const修饰} } 一文带你入门C类和对象【十万字详解&#…...
Spring源码(一) 如何阅读 Spring 源码
学习 Spring 的源码,也可以通过 SpringBoot 搭环境。 不管是什么源码,最好写个 demo,跑起来,然后从常用的类和方法入手,跟踪调试。 配置对象 新建一个 SpringBoot 的项目, 详情见: https://b…...
【代码随想录训练营】【Day 63】【单调栈-2】| Leetcode 42, 84
【代码随想录训练营】【Day 63】【单调栈-2】| Leetcode 42, 84 需强化知识点 单调栈强化 题目 42. 接雨水 注意 python 数组反序用法 result [::-1] class Solution:def trap(self, height: List[int]) -> int:# n len(height)# leftMax, rightMax [0] * n, [0] * …...
CTF常用sql注入(一)联合注入和宽字节
0x01 前言 给自己总结一下sql注入的常用姿势吧,记录一下学习 0x02 联合 联合注入的关键词是union SQL的union联合注入原理是联合两个表进行注入攻击,使用union select关键词来进行联合查询。 那么为什么我们在题目中一般是只写一个呢 因为 $sql &quo…...
薄冰英语语法学习--冠词1
冠词有2个,the 和 a /an the 叫定冠词 常用形容一类事务、特指(加强)、放在转有名词前面。 就这3个 定冠词 1. 定冠词特指某个(某些)人或某个(某些)事物 Many people came here to visit the old cast…...
基于Java中的SSM框架实现野生动物公益保护系统项目【项目源码+论文说明】计算机毕业设计
基于Java中的SSM框架实现野生动物公益保护系统演示 摘要 本系统按照网站系统设计的基本流程,遵循系统开发生命周期法和结构化方法,基于Java语言设计并实现了野生动物公益保护系统。该系统基于浏览器/服务器模式,采用JSP技术,后台…...
c->c++(二):class
本文主要探讨C类的相关知识。 构造和析构函数 构造函数(可多个):对象产生时调用初始化class属性、分配class内部需要的动态内存 析构函数(一个):对对象消亡时调用回收分配动态内存 C提供默认构造和析构,…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...
CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...
Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)
引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...
【Linux系统】Linux环境变量:系统配置的隐形指挥官
。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量:setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...
第八部分:阶段项目 6:构建 React 前端应用
现在,是时候将你学到的 React 基础知识付诸实践,构建一个简单的前端应用来模拟与后端 API 的交互了。在这个阶段,你可以先使用模拟数据,或者如果你的后端 API(阶段项目 5)已经搭建好,可以直接连…...
Vue3中的computer和watch
computed的写法 在页面中 <div>{{ calcNumber }}</div>script中 写法1 常用 import { computed, ref } from vue; let price ref(100);const priceAdd () > { //函数方法 price 1price.value ; }//计算属性 let calcNumber computed(() > {return ${p…...
