最近做压测时使用到Jmeter,为什么用它,之前也做过部分压测,不是很系统,使用的是Apache Bench,虽然效率高,但是功能比较简单,不太适合本次压测场景,另外Jmeter能更好的利用压测机的多核性能,ab使用单核,如果需要使用多核需要手动启动多个压测进程。

本次压测场景主要需求点:

  1. 需要实现Request1的返回作为Request2的RequestBody或Header
  2. 需要按比例分配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导致压测结果不准。

新建线程组:

线程池属性如下:

其中有几个属性值得说一说:

  1. 在取样器错误后要执行的动作:
    1. 继续:约等于try catch,但什么都不做
    2. 启动下一进程循环:约等于continue
    3. 停止线程:将发生错误的线程关闭,注意说的是线程关闭,例如线程1执行出错了,它会直接关闭,循环也停止
    4. 停止测试:字面意思
    5. 立即停止测试:没用过
  2. 线程数:启动多少线程进行取样器执行,尽量配置在1000以下
  3. Ramp-Up时间(秒):在多长时间内启动以上配置的线程数
  4. 循环次数:循环执行多少次,其实这里有疑惑,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】基础介绍-详细的更多相关文章

  1. jmeter 基础介绍

    Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域.它可以用于对静态的和动态的资源(文件,Se ...

  2. 一、jmeter基础介绍及http请求取样器

    jmeter的下载安装这里不再赘述,百度都有, 1.jmeter是以线程的方式来运行的:2.通过非GUI运行对负载机的资源消耗更小:3.控制机.负载机 安装JDK时jdk路径与jmeter路径避免有中 ...

  3. <转>jmeter(一)基础介绍

    本博客转载自:http://www.cnblogs.com/imyalost/category/846346.html 个人感觉不错,对jmeter讲解非常详细,担心以后找不到了,所以转发出来,留着慢 ...

  4. RabbitMQ学习总结(1)——基础概念详细介绍

    一.基础概念详细介绍 1.引言 你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用.通讯的问题而苦恼.挣扎?如果是,那么恭喜你,消息服务让你可以很轻松 ...

  5. Jmeter使用实践- 基础介绍

    Jmeter使用实践- 基础介绍 随着市场上推出越来越多的测试工具,大家使用起来也比较盲目,就我个人而言,使用过LoadRunner和Jmeter 很多人倾向于LoadRunner,因为LR的功能更强 ...

  6. JMeter基础之一 一个简单的性能测试

    JMeter基础之一 一个简单的性能测试 上一节中,我们了解了jmeter的一此主要元件,那么这些元件如何使用到性能测试中呢.这一节创建一个简单的测试计划来使用这些元件.该计划对应的测试需求. 1)测 ...

  7. jmeter实例介绍

    JMeter基础之一 一个简单的性能测试  测试需求: 1)测试目标网站是fnng.cnblogs.com 和 tt-topia.rhcloud.com 2)测试目的是该网站在负载达到20 QPS 时 ...

  8. JMeter基础之--元件的作用域与执行顺序

    前面有介绍过jmeter的元件类别,对于新手来说,jmeter的元件是还是不少的,如果我们按照每一个元件的每一个参数的含义去学习,无疑会降低学习性能测试的热情,就算我们熟悉了所有元件以及元件上的参数了 ...

  9. Jmeter基础之---jmeter基础概念

    Jmeter基础之---jmeter基础概念 JMeter 介绍: 一个非常优秀的开源的性能测试工具. 优点:你用着用着就会发现它的重多优点,当然不足点也会呈现出来. JMeter 介绍: 一个非常优 ...

  10. C++ 迭代器 基础介绍

    C++ 迭代器 基础介绍 迭代器提供对一个容器中的对象的访问方法,并且定义了容器中对象的范围.迭代器就如同一个指针.事实上,C++的指针也是一种迭代器.但是,迭代器不仅仅是指针,因此你不能认为他们一定 ...

随机推荐

  1. Mac OS 安装mysqlcliet 失败问题解决

    简单记录 Mac OS pip 安装mysqlclient报错处理过程 系统: python: Python 3.8.2 虚拟环境 直接安装 mysqlclient 会报错 Using cached ...

  2. 【django-vue】登录注册模态框分析 登录注册前端页面 腾讯短信功能二次封装 短信验证码接口 短信登录接口 短信注册接口

    目录 昨日回顾 csrf跨站请求伪造 接口幂等性 异常捕获 今日内容 1 登录注册模态框分析 Login.vue Header.vue 2 登录注册前端页面复制 2.0 Header.vue 2.1 ...

  3. 自用 IntelliJ IDEA Vim 插件配置

    Prefrence: https://einverne.github.io/post/2020/12/my-idea-vimrc-config.html https://gist.github.com ...

  4. Cpp 惯用法 CRTP 简介

    From Wikipedia, The curiously recurring template pattern (CRTP) is an idiom, originally in C++, in w ...

  5. 如何在Windows中使用Telnet客户端

    Telnet协议的解释 Telnet( TE终端NET工作的缩写)是一种网络协议,用于提供与设备通信的命令行界面 . Telnet最常用于远程管理,但有时也用于某些设备的初始设置,尤其是交换机 ,接入 ...

  6. 方法记录 | 文件批量导入Goodnotes

    一般来说通常资料都是用网盘下载了很多文件,想用Goodnotes来写批注,记笔记等,但是由于网盘不能直接分享.也不能批量分享到Goodnotes,给学习带来了很大的麻烦. 当然有钱的大佬们呢直接开了 ...

  7. 2021暑假训练赛1 基于Codeforce#479(div3)

    A - Xor Sum 似乎是很明显的字典树问题(不会啊,最后搬了一个板子修修改改以后才过了 AcWing 相似题目:143. 最大异或对 最后得吐槽一下 memset 为什么能这么慢啊 Kora! ...

  8. 如何通过canvas实现电子签名

    想要实现一个电子签名,可以支持鼠标签名,还能类似书法效果线条有粗有细,同时可以导出成图片. 一.实现连贯的划线 1)首先需要注册鼠标下压.鼠标放开.鼠标移出和鼠标移动事件,通过鼠标下压赋值downFl ...

  9. GoLang 高性能编程之字符串拼接

    看代码突然想到一个问题:字符串在内存中是怎么表示的?花了大半天才理清,这里记录梳理下. 1. 字符 提到字符串需要先了解字符,没有字符哪能串起来呢.不像 int,float 这种直接在内存中以位数表示 ...

  10. 以太网链路连接 和 ISIS/OSPF等路由协议关系

    转载请注明出处: 以太网链路连接和ISIS/OSPF协议之间存在关联和区别 关联: 以太网链路连接是指通过以太网物理媒介(如电缆)将网络设备进行连接,使它们可以交换数据. ISIS(Intermedi ...