【Jmeter】基础介绍-详细
最近做压测时使用到Jmeter,为什么用它,之前也做过部分压测,不是很系统,使用的是Apache Bench,虽然效率高,但是功能比较简单,不太适合本次压测场景,另外Jmeter能更好的利用压测机的多核性能,ab使用单核,如果需要使用多核需要手动启动多个压测进程。
本次压测场景主要需求点:
- 需要实现Request1的返回作为Request2的RequestBody或Header
- 需要按比例分配API请求并发,以模拟真实的API压力场景
对于以上需求,Jmeter均提供了较好的处理方案,后面会一一介绍。
本文首先介绍基本使用方式:
首先,打开Jmeter GUI:

注意:
这里输出了一行字:
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]
即不要使用Jmeter GUI直接进行压测,只用于测试创建和调试,压测请使用以下命令:
jmeter -n -t testPlanA.jmx -l result.jmx -e -o webreport
另外,压测的时候注意调整Jmeter的JVM配置,防止压测程序oom或频繁gc导致压测结果不准。
新建线程组:

线程池属性如下:

其中有几个属性值得说一说:
- 在取样器错误后要执行的动作:
- 继续:约等于try catch,但什么都不做
- 启动下一进程循环:约等于continue
- 停止线程:将发生错误的线程关闭,注意说的是线程关闭,例如线程1执行出错了,它会直接关闭,循环也停止
- 停止测试:字面意思
- 立即停止测试:没用过
- 线程数:启动多少线程进行取样器执行,尽量配置在1000以下
- Ramp-Up时间(秒):在多长时间内启动以上配置的线程数
- 循环次数:循环执行多少次,其实这里有疑惑,Ramp-Up和线程数及循环次数之间是什么关系。答:Ramp-Up和循环次数间没有直接关系,它只用来定义多长时间启动配置的线程数。例如:配置如上图,那么启动后,执行为线程1启动,循环执行3次,无时间间隔,5秒后线程2启动,循环执行3次,无时间间隔,即Ramp-Up参数只控制线程启动的时间间隔,不控制循环次数的间隔,某一个线程启动后,它将没有任何时间间隔的执行它自己的循环。
然后新建取样器,就是Http Request:

创建完成后如下图:

这里的参数没什么可说的,注意参数KeepAlive默认为开启,需要结合你的压测场景关闭或打开。
新建结果树,用于观察请求结果:

可以观察请求结果,并根据需要选择是否只打印错误或成功请求,或写入某个文件

新建汇总报告,用于观察或导出压测结果:

示例如下图,不过一般情况下会使用jmeter命令参数指定输出结果,所以一般用不到:
jmeter -n -t testPlanA.jmx -l result.jmx -e -o webreport

【Jmeter】基础介绍-详细的更多相关文章
- jmeter 基础介绍
Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域.它可以用于对静态的和动态的资源(文件,Se ...
- 一、jmeter基础介绍及http请求取样器
jmeter的下载安装这里不再赘述,百度都有, 1.jmeter是以线程的方式来运行的:2.通过非GUI运行对负载机的资源消耗更小:3.控制机.负载机 安装JDK时jdk路径与jmeter路径避免有中 ...
- <转>jmeter(一)基础介绍
本博客转载自:http://www.cnblogs.com/imyalost/category/846346.html 个人感觉不错,对jmeter讲解非常详细,担心以后找不到了,所以转发出来,留着慢 ...
- RabbitMQ学习总结(1)——基础概念详细介绍
一.基础概念详细介绍 1.引言 你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用.通讯的问题而苦恼.挣扎?如果是,那么恭喜你,消息服务让你可以很轻松 ...
- Jmeter使用实践- 基础介绍
Jmeter使用实践- 基础介绍 随着市场上推出越来越多的测试工具,大家使用起来也比较盲目,就我个人而言,使用过LoadRunner和Jmeter 很多人倾向于LoadRunner,因为LR的功能更强 ...
- JMeter基础之一 一个简单的性能测试
JMeter基础之一 一个简单的性能测试 上一节中,我们了解了jmeter的一此主要元件,那么这些元件如何使用到性能测试中呢.这一节创建一个简单的测试计划来使用这些元件.该计划对应的测试需求. 1)测 ...
- jmeter实例介绍
JMeter基础之一 一个简单的性能测试 测试需求: 1)测试目标网站是fnng.cnblogs.com 和 tt-topia.rhcloud.com 2)测试目的是该网站在负载达到20 QPS 时 ...
- JMeter基础之--元件的作用域与执行顺序
前面有介绍过jmeter的元件类别,对于新手来说,jmeter的元件是还是不少的,如果我们按照每一个元件的每一个参数的含义去学习,无疑会降低学习性能测试的热情,就算我们熟悉了所有元件以及元件上的参数了 ...
- Jmeter基础之---jmeter基础概念
Jmeter基础之---jmeter基础概念 JMeter 介绍: 一个非常优秀的开源的性能测试工具. 优点:你用着用着就会发现它的重多优点,当然不足点也会呈现出来. JMeter 介绍: 一个非常优 ...
- C++ 迭代器 基础介绍
C++ 迭代器 基础介绍 迭代器提供对一个容器中的对象的访问方法,并且定义了容器中对象的范围.迭代器就如同一个指针.事实上,C++的指针也是一种迭代器.但是,迭代器不仅仅是指针,因此你不能认为他们一定 ...
随机推荐
- Mac 安装 cnpm
npm set registry https://registry.npm.taobao.org npm set disturl https://npm.taobao.org/dist npm cac ...
- 使用 DPO 微调 Llama 2
简介 基于人类反馈的强化学习 (Reinforcement Learning from Human Feedback,RLHF) 事实上已成为 GPT-4 或 Claude 等 LLM 训练的最后一步 ...
- python版本升级到3.8以及安装虚拟环境
linux系统升级python版本看起来复杂,如果知道其中步骤也不会觉得很困难.下面记录在deepin系统 15.11和ubuntu16.04系统下将python从2.7升级到3.8过程 升级pyth ...
- 协同导航定位技术:为GPS定位盲区而生
导航技术和我们的生活息息相关.行人导航系统是一种为行人提供导航服务的便携式设备,可以适应地下.矿洞等卫星信号拒止的地区,以及大商场等拓扑结构复杂的地区,通常基于MIMU实现,本质上是惯性导航系统的一种 ...
- EXECL函数
1 COUNTIF 对比两列数据,有相同的即计为1 找一列空白列,输入=COUNTIF(范围,条件),按回车,然后再点击表格右下角的"+" 就可以拉动持续执行这个函数 2 CONC ...
- Ubuntu20.04上安装MySQL8.0(绝对保证能够正常使用)
今天在学习 Spark 连接 MySQL时发现还没安装,便参考了厦门大学实验室的Blog进行操作.但安装完成之后发现没有显示设置密码的选择,但又改不掉root密码(头开始痛起来). 故记录一下安装My ...
- Java | VS Code 如何导入外部 jar 包源
Java Extension Pack里的Project Manager for Java扩展,安装后在文档查看的下方会有"JAVA PROJECTS",在Referenced L ...
- python代码打包exe程序
1.安装pyinstaller 命令行输入:pip install pyinstaller 2.打包exe程序 输入命令:pyinstaller -F -w *.py(星号是.py的全部路径) pyi ...
- 【日常踩坑】Debug 从入门到入土
写代码难免遇到 bug,调试解决 bug 的快慢很影响开发的效率.本文主要是梳理并记录下个人经常用的调试方法(主要以 C/C++ 的 segment fault 为例) 分类 根据调试时机与 bug ...
- Nacos源码 (6) Grpc概述与Nacos集成
Nacos 2.x版本增加了GRPC服务接口和客户端,极大的提升了Nacos的性能,本文将简单介绍grpc-java的使用方式以及Nacos中集成GRPC的方式. grpc-java GRPC是goo ...