热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

如何使用jmeter实现相对并发和绝对并发

相对并发与绝对并发的概念相对并发:指在一个时间段内发生的事情绝对并发:指在同一时刻发生的事情 相对并发在jmeter的测试计划中添加线程组,设置线程属性,2秒之内启动10个线程,其
  • 相对并发与绝对并发的概念

相对并发:指在一个时间段内发生的事情

绝对并发:指在同一时刻发生的事情

 

  • 相对并发

在jmeter的测试计划中添加线程组,设置线程属性,2秒之内启动10个线程,其对应的相对并发为5(线程数/启动时间),在没有添加其他逻辑控制器或定时器的情况下,线程属性中设置循环次数为3次,则sampler总共执行30次(线程数*循环次数)

《如何使用jmeter实现相对并发和绝对并发》

使用表格察看运行结果:每个线程都会运行3次 

《如何使用jmeter实现相对并发和绝对并发》

 

  • 绝对并发

jmeter又如何实现绝对并发的呢?一般采用同步定时器(Synchronizing Timer)实现绝对并发,也就是同一个时刻达到了某一集合点才发出请求。

举个例子:将一筐的鸡蛋共188个,全部分发在容量为10的蛋托上,当蛋托上凑上10个便可以打包售卖。这里的188个鸡蛋就相对于jmeter中的线程数(用户数),容量10就是集合点数,即绝对并发数,剩下的8个鸡蛋无法构成集合点数,可设置超时时间不再等待聚积成10个。

注意:使用同步定时器做性能测试时,聚合报告中的响应时间一般会大于接口真实的响应时间,可以通过其他的监控工具查看接口真实的响应时间

 

将Synchronizing Timer放在对应的sampler下,

Number of Simultaneous Users to Group by:集合点数,集合到对应的用户量才发送请求,要求设置的值不能大于线程数

Timeout in milliseconds:等待超时时间,在指定的毫秒时间内没达到集合点数将停止等待(并非终止运行),

默认值为0表示无超时时间,一般超时时间> 请求集合数量 * 1000 / (线程数 / 启动时间)

 

  1. 设置集合点数:2,超时时间>2*1000/(10/2)=400ms《如何使用jmeter实现相对并发和绝对并发》

 

运行

《如何使用jmeter实现相对并发和绝对并发》

2.设置集合点数:7,超时时间:0

《如何使用jmeter实现相对并发和绝对并发》

运行结果:剩下4个请求,无法构成7个集合数,导致一直等待。点击stop剩下4个请求运行后结束执行 

《如何使用jmeter实现相对并发和绝对并发》

3.设置集合点数:7,超时时间:1500 

《如何使用jmeter实现相对并发和绝对并发》

运行:剩下2个请求,无法构成7个集合数,通过日志可以看到等待时间超过了1500ms,执行这两个请求后将终止运行 

 

4.设置集合点数:20>10(线程数),超时时间0,将无法发送请求。点击stop会将30次请求全部执行,并不能按20个绝对并发执行

《如何使用jmeter实现相对并发和绝对并发》


推荐阅读
  • 时序数据是指按时间顺序排列的数据集。通过时间轴上的数据点连接,可以构建多维度报表,揭示数据的趋势、规律及异常情况。 ... [详细]
  • 本文详细探讨了 HAProxy 的基本概念及其与 LVS(Linux Virtual Server)的比较,特别是在内核空间与用户空间的工作差异。文章还深入介绍了 HAProxy 独有的数据结构——弹性二叉树,以及其在高并发场景下的表现。 ... [详细]
  • 深入浅出:Hadoop架构详解
    Hadoop作为大数据处理的核心技术,包含了一系列组件如HDFS(分布式文件系统)、YARN(资源管理框架)和MapReduce(并行计算模型)。本文将通过实例解析Hadoop的工作原理及其优势。 ... [详细]
  • 本文介绍了进程的基本概念及其在操作系统中的重要性,探讨了进程与程序的区别,以及如何通过多进程实现并发和并行。文章还详细讲解了Python中的multiprocessing模块,包括Process类的使用方法、进程间的同步与异步调用、阻塞与非阻塞操作,并通过实例演示了进程池的应用。 ... [详细]
  • RabbitMQ 核心组件解析
    本文详细介绍了RabbitMQ的核心概念,包括其基本原理、应用场景及关键组件,如消息、生产者、消费者、信道、交换机、路由键和虚拟主机等。 ... [详细]
  • 深入解析Java并发之ArrayBlockingQueue
    本文详细探讨了ArrayBlockingQueue,这是一种基于数组实现的阻塞队列。ArrayBlockingQueue在初始化时需要指定容量,因此它是一个有界的阻塞队列。文章不仅介绍了其基本概念和数据结构,还深入分析了其源码实现,包括各种入队、出队、获取元素和删除元素的方法。 ... [详细]
  • 构建高性能Feed流系统的设计指南
    随着移动互联网的发展,Feed流系统成为了众多社交应用的核心组成部分。本文将深入探讨如何设计一个高效、稳定的Feed流系统,涵盖从基础架构到高级特性的各个方面。 ... [详细]
  • 优雅地记录API调用时长
    本文旨在探讨如何高效且优雅地记录API接口的调用时长,通过实际案例和代码示例,帮助开发者理解并实施这一技术,提高系统的可观测性和调试效率。 ... [详细]
  • 本文详细解析 Skynet 的启动流程,包括配置文件的读取、环境变量的设置、主要线程的启动(如 timer、socket、monitor 和 worker 线程),以及消息队列的实现机制。 ... [详细]
  • Java高级工程师学习路径及面试准备指南
    本文基于一位朋友的PDF面试经验整理,涵盖了Java高级工程师所需掌握的核心知识点,包括数据结构与算法、计算机网络、数据库、操作系统等多个方面,并提供了详细的参考资料和学习建议。 ... [详细]
  • 本文详细介绍了MySQL InnoDB存储引擎中的Redo Log和Undo Log,探讨了它们的工作原理、存储方式及其在事务处理中的关键作用。 ... [详细]
  • 对于非计算机专业背景的开发者而言,如何快速掌握.NET基础知识以应对技术面试是一个挑战。本文将提供一系列实用建议,帮助读者在短时间内提高.NET基础水平。 ... [详细]
  • Java虚拟机及其发展历程
    Java虚拟机(JVM)是每个Java开发者日常工作中不可或缺的一部分,但其背后的运作机制却往往显得神秘莫测。本文将探讨Java及其虚拟机的发展历程,帮助读者深入了解这一关键技术。 ... [详细]
  • 春季职场跃迁指南:如何高效利用金三银四跳槽季
    随着每年的‘金三银四’跳槽高峰期的到来,许多职场人士都开始考虑是否应该寻找新的职业机会。本文将探讨如何制定有效的职业规划、撰写吸引人的简历以及掌握面试技巧,助您在这关键时期成功实现职场跃迁。 ... [详细]
  • TCP协议中的可靠传输机制分析
    本文深入探讨了TCP协议如何通过滑动窗口和超时重传来确保数据传输的可靠性,同时介绍了流量控制和拥塞控制的基本原理及其在实际网络通信中的应用。 ... [详细]
author-avatar
施小露107
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有