【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++的指针也是一种迭代器.但是,迭代器不仅仅是指针,因此你不能认为他们一定 ...
随机推荐
- 通过mongo-driver使用说明 GO 包管理机制
本篇记录通过GO语言操作mongodb,实现的流程包括: 初始化项目工程 容器方式安装mongo 调试运行和编译运行 go使用mongo的代码如下,go操作mongo的SDK是mongo-driver ...
- Nginx--upstream健康检查
nginx 判断节点失效状态: Nginx 默认判断失败节点状态以connect refuse和time out状态为准,不以HTTP错误状态进行判断失败,因为HTTP只要能返回状态说明该节点还可以正 ...
- P1765
和那道题一样,这次用的getchar,结果对了可是洛谷评测WA了,换成scanf单个字符,结果还是WA了,换成直接getline读入整个字符串就对了. 可见读入单个字符的方式有可能出现各种小错,尤其是 ...
- freeswitch如何判断挂机方
概述 freeswitch作为VOIP的软交换平台,需要对呼叫的信息做判断和归类. 常见的呼叫信息中,挂机方向的信息对于话单统计有很大的用处. 但是fs的原始话单和日志中并没有挂机方向的信息. 环境 ...
- spring boot 集成配置阿里 Druid监控配置
本文为博主原创,转载请注明出处: github 地址如下:https://github.com/alibaba/druid/wiki 其相关问题也可参考:https://github.com/alib ...
- spring IoC 源码
spring IoC 容器的加载过程 1.实例化容器: AnnotationConfigApplicationContext 实例化工厂: DefauiltListableBeanFactory 实例 ...
- DFT Architecture
Design For Test 在实际生产过程中产生的physical defect是导致芯片功能出错的根本原因 如何根据结构产生测试向量呢?主要考虑physical defect physical ...
- 【rt-thread】Kconfig文件添加子Kconfig文件时是以顶级Kconfig所在目录为当前路径的
示例如下 顶级Kconfig文件所在目录 子级Kconfig文件所在目录 子级Kconfig文件添加次子级Kconfig文件,以顶级目录为当前路径依次写出次子级Kconfig文件所在目录
- JS逆向实战27——pdd的anti_content 分析与逆向
声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 本文已在微信公众号发布 目 ...
- 开启大页与否对CacheBuffer的影响的学习
开启大页与否对CacheBuffer的影响的学习 背景 最近遇到数据库压力较高的场景. 原厂工程师到位后修改了几个参数(自己以为参数没问题) 然后最近一周环境就比较正常了. 这个地方很打脸, 自己没有 ...