【Jmeter】基础介绍-详细

旧城等待, 2023-10-09 18:46 115阅读 0赞

最近做压测时使用到Jmeter,为什么用它,之前也做过部分压测,不是很系统,使用的是Apache Bench,虽然效率高,但是功能比较简单,不太适合本次压测场景。

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

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):

  1. 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命令参数指定输出结果,所以一般用不到:

  1. jmeter -n -t testPlanA.jmx -l result.jmx -e -o webreport

在这里插入图片描述

最后: 为了回馈铁杆粉丝们,我给大家整理了完整的软件测试视频学习教程,朋友们如果需要可以自行免费领取 【保证100%免费】
在这里插入图片描述
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

  1. 软件测试工程师的交流学习群社:786229024

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

全套资料获取方式:

在这里插入图片描述

在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,115人围观)

还没有评论,来说两句吧...

相关阅读

    相关 RabbitMQ基础概念详细介绍

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

    相关 JMeter介绍

    JMeter 是Apache组织开发的基于Java的压力测试工具 用于对软件做压力测试 应用范围 可以用于对静态的和动态的资源 比如,文件,Servlet,P