首页 > 其他分享 >【JMeter】常用线程组设置策略

【JMeter】常用线程组设置策略

时间:2023-08-19 18:11:41浏览次数:28  
标签:常用 场景 并发 2000 线程 测试 设计 JMeter

常用线程组设置策略

目录

一、前言

​ 在JMeter压力测试中,我们时常见到的几个场景有:单场景基准测试、单场景并发测试、单场景容量测试、混合场景容量测试、混合场景并发测试以及混合场景稳定性测试

在本篇文章中,我们会用到一些插件,在这边先给大家列出:

  • ​ Custom Thread Groups插件

PS:在我们正式测试中,统一使用非GUI界面运行,只有在调试时候我们才会用GUI运行

二、单场景基准测试

1.介绍

​ 单场景基准测试,一般在压力测试实施前进行测试,用于检测被测功能的性能指标,以用来判断制定后期的测试计划。基准测试的策略可以是单用户执行一次或者单用户迭代执行多次。在这里我们采用后者。

2.线程组设计

​ 这里的脚本设计很简单,就是1线程组循环100次。简单!

image-20230727102900593

3.测试结果

(一般情况下我们在生成的HTML报告查看测试结果,当然也可以在GUI界面导入我们生成的jtl文件)

image-20230727103122561

三、单场景并发测试

1.介绍

​ 单场景并发测试是针对单个接口利用一定量的并发进行测试,获取其性能表现,并验证接口是否存在并发性问题。

2.线程组设计

​ 单场景并发测试的设计比较简单,就是在线程组设置中设置若干数量的线程数。这里我们通过Custom Thread Groups插件来更好体现线程组设计。

该线程组意思为:

​ 2000用户并发,在200S完成加载到2000用;然后持续运行900S,然后以100S来结束2000用户

image-20230819172254145

3.测试结果

image-20230819172425046

四、单场景容量/爬坡测试

1.介绍

​ 单场景容量测试,也叫做爬坡测试,通过爬坡测试。获得系统的最佳并发用户数。

2.线程组设计

​ 在这里我们也使用插件来表现

image-20230819173134428

​ 我们来简单讲一下一下这个线程组设计

首先我们这个线程组是以1000并发数开始,每次递增200用户,指导递增到2000用户。

首先第三和第四列可以根据自己需求进行设计。

其实也很简单。按照我们的设计,低234列相加的和要是2000。

我们可以根据第二列来计算出所有,首先我们要形成阶梯式递增,那就得初始化时间等于在此之前并发的运行时间。

我们看第二行的400。他等于增加到1000用户的100s+平均每个阶梯平缓的时间(1900s-20s*5)/6=400s

这个20*5就是要扣除五个200增加的过程对应时间,然后除去平台总数6

第三行就很简单了,也就是400s+300s+20s=720s。

这里讲的比较乱,也比较绕,自己能力问题不能讲的太好,请见谅。

3.测试结果

​ 容量测试的结果更建议大家到HTML报告中进行查看

我们先看看Response Times Over Time,很明显在13.09左右达到了3s左右的响应时间

image-20230819174802834

那我们再看看Active Threads Over Time中该时间段的并发用户数,由此可见最佳用户数是1400

image-20230819175004529

五、混合场景容量/并发测试

1.介绍

​ 这个其实就没啥可说的了,和单场景的差别不大,无非就是多个场景混合在一起了。我们就不介绍了

六、稳定性测试

1.介绍

​ 稳定性测试是为获取多个接口在长时间的负载级别下,平均响应时间、资源利用率的稳定性、事务成功率的稳定性,验证系统的稳定运行能力,获取系统长时间运行的稳定性指标。在稳定性测试中,我们往往要跑好几个小时的性能脚本,所以一般建议大家一定要在下班后挂着

2.线程组设计

​ 在这里我们拿五个脚本。一共是2000用户并发。按照惯例我们最后得到每个脚本为240用户并发。于是每个线程组设置为

image-20230819175648729

3.测试结果

image-20230819180326329

以上就是这节的全部内容,如有错误,还请各位指正!

标签:常用,场景,并发,2000,线程,测试,设计,JMeter
From: https://www.cnblogs.com/hmy71/p/jmeter_cyxczcl.html

相关文章

  • go常用的模块及命令
    在Go语言中,有许多常用的模块和命令可以帮助你进行开发和管理。以下是一些常见的模块和命令:常用模块:fmt:格式化输入输出os:操作系统功能io:输入输出操作net:网络编程http:HTTP服务器和客户端encoding/json:JSON编解码database/sql:数据库操作接口testing:测试框架time:时间和日期操作log:日志......
  • 多线程 问答
    1、线程的状态或什么周期新建,就绪,运行,阻塞,销毁new,runnable,running,blocked,terminated java角度  2、java里面,wait和sleep的区别wait是object的方法,等待时会释放锁sleep是线程Thread的方法,睡眠时不会释放持有的对象锁,需要捕获异常。结束睡眠后,进入runnable状态。......
  • jmeter实例
    1.jmeter安装配置2.(1)添加线程组 (2)设置HTTP请求默认值(如果是HTTPS,则需要额外配置,证书导入https://www.cnblogs.com/may18/p/9268441.html)鼠标在线程组标题右击添加 (3)设置http请求 (4)HTTP信息头管理 (5)添加断言--响应断言(根据需要) (5)监听--查看结果树(6)监听--报......
  • Linux 系统替换字符串常用命令
    概述在Linux系统中有时候我们需要替换某个很长的字符串或者修改某个配置参数,有些文件又隐藏目录比较深,有些场景也需要在一个目录下批量去修改文件,那应该怎么高效,快速的去完成修改呢?下面记录一下本人实施过程中的一些方法,做个备忘手稿分享以备随时查看。系统平台CentOSLinux7第......
  • Linux常用网络配置练习(2)
    打开第二台虚拟机(带图形界面的虚拟机)使用浏览器访问一些网站,然后统计这些连接处于time-wait的数量[[email protected]]#netstat-an|grepTIME_WAIT|wc-l14打开两台Linux虚拟机,然后测试它们之间的TCP性能和UDP性能,并将结果记录下来##虚拟机01[root@test-server......
  • c++ 多线程
    #include<iostream>#include<functional>#include<thread>#include<future>//std::promise,std::future#include<chrono>voidprint_int(std::future<int>&fut){intx=fut.get();......
  • NIO(Non-blocking I/O)与线程池对比
    资源效率:NIO允许在单个线程上处理多个连接。传统的基于线程池的模型为每个连接分配一个线程,如果连接数量巨大,会导致大量线程占用系统资源,而NIO则可以通过少量线程来处理大量连接,节省了系统资源。非阻塞:NIO提供了非阻塞的网络操作,允许一个线程管理多个连接的I/O操作。......
  • C++中String的语法及常用接口用法
    在C语言中,string是一个标准库类(class),用于处理字符串,它提供了一种更高级、更便捷的字符串操作方式,string 类提供了一系列成员函数和重载运算符,以便于对字符串进行操作和处理。一、string类在学习string前,我们不妨先来了解一下string类到底是什么,有什么用呢?我们先来了解一下基本......
  • Jmeter的并发执行和顺序执行以及线程组参数说明
    效果图  下面看下勾选的情况   下面对线程组参数进行说明效果图 关于持续时间 关于启动延迟 ......
  • c++ 常用的 STL
    c++中常用的STLvector//vector变长数组倍增的思想(倍增:系统为每一个程序分配空间的时候,所需要的时间和空间大小无关,与请求次数相关)尽量减少请求的次数/*返回元素的个数size()判断是否为空empty()清空clear()front()返回第一个数back()返回最后一个数push......