JMeter根据负载量计算并发用户数实例

news2024/11/18 3:34:57

目录

       前言:

  业务需求

  分析需求

  测试模型构建 & 用例设计

  一、场景构建:登录业务操作流程、考勤打卡操作流程;

  二、场景用例设计

  三、测试脚本用例设计:

  模型构建

  登录打卡-操作流程:

  场景设计

  常用测试场景的类型:


       前言:

JMeter是一款常用的性能测试工具,通过模拟真实用户场景来测试系统性能。在进行测试前,需要确定所需的并发用户数,以保证测试的可靠性和准确性。

  业务需求

  假设公司领导现在给你分配了一个性能测试需求如下:

  1:公司有1000人在上班时间段会登录平台进行打卡操作,可能会登录打卡多次

  2:业务高峰时间段在8:00-8:30,半小时

  3:需要保证90%用户的响应时间在1s以内

  4:保证在半小时内支撑5000笔打卡业务完成,同时90%业务时间不超过1s,半小时内最大系统并发数能达到多少?每秒最大用户并发能达到多少?

  分析需求

  a.1000人在30分钟内完成登录,那么每分钟有1000/30=33的人登录,每秒有0.56人登录,也就是2s中有1个人登录;

  b.5000笔打卡业务在30分钟内完成,那么每秒中需要完成5000/(30*60)=2.78个打卡事务;

  综合就是半小时内,每2s有一人登录,每秒需有3个打卡事务;也就是线程持续时间30分钟,打卡tps=3;

  循环一次,登录317ms+打卡976ms=1293ms,1s中可迭代0.77次;30分钟可迭代1392次;登录请求1个线程即可满足要求;

  30分钟想完成5000笔打卡,需并发线程5000/1392=3.6 即4个线程; 

  实际请求中,还需要考虑登录时输入账户密码的时间,可加定时器;

  测试模型构建 & 用例设计

  这种需求是典型的根据负载量计算并发数的场景。首先我们需要设计一下业务场景;

  一、场景构建:登录业务操作流程、考勤打卡操作流程;

  二、场景用例设计

  1.测试场景类型:

  单业务基准测试、单业务压力测试、单业务负载测试;

  综合业务基准测试、综合业务压力测试、综合业务负载测试;

  2.业务量线程数的确定:

  登录业务-线程数确定、考勤打卡-线程数确定;

  3.测试场景用例设计:

  登录并发-场景用例、登录业务量-场景用例、并发考勤-场景用例、考勤打卡业务量-场景用例;

  三、测试脚本用例设计:

  登录-脚本用例、考勤打卡-脚本用例;

  模型构建

  登录业务-操作流程

  a)访问登录页面;

  b)输入账号、密码,点击【登录】,跳转到主页;

  c)点击【退出】,跳转到登录页面;

  登录打卡-操作流程:

  a)访问登录页面;;

  b)输入账号、密码,点击【登录】,跳转到主页;

  c)点击【考勤管理】,进入考勤主页;

  d)点击【打卡】;

  e)进入考勤打卡页面,查看打卡记录;

  e )点击【退出】,跳转到登录页;

  场景设计

  性能测试过程中,首先应该设计测试场景,然后针对场景设计脚本。为了真实反映被测对象的性能问题,需要尽可能模拟出被测对象可能发生瓶颈的业务场景。然后设计针对业务的测试场景;

  常用测试场景的类型:

  性能测试通常有几种常用测试场景:单业务基准测试、单业务压力测试、单业务负载测试、综合业务基准测试、综合业务压力测试、综合业务负载测试;

  1)基准测试

  测试某个具体业务是否满足系统设计 或 用户期望的性能指标;基准测试可以为并发基准、业务量基准;

  如,期望登录接口支持500个用户并发登录,同时响应时间不超过需求值。满足则认为基准测试完成,否则失败;

  2)压力测试

  测试某个具体业务在最大负载下,持续服务的时长,以此验证被测业务的稳定性;

  压力测试过程中所设计的负载,是以系统基准测试为标准,如登录接口最大并发为500个并发,则压力测试的负载设计为500个;通过运行时长的变化,验证服务器在系统最大负载下持续服务的能力;

  3)负载测试

  测试某个具体业务能够承受的最大负载,验证被测业务能够承受的最大负载数;

  如系统基准测试最大并发为500个,则通过多次测试,逐步加大负载,最终获得被测业务的最佳负载。在最佳负载下,系统需要满足各项性能指标;

  登录打卡345ms*5=1725ms

  加了事务控制器后,登录打卡1397ms

  实际情况,还需要考虑以下情形的思考时间,如:

  用户输入用户名、密码:5s;

  打开考勤后等待时间:2s;

  用定时器模拟思考时间;

  那么一次登录打卡需要时间(t)为1.397+5+2=8.397s;

  那么30分钟(T)可以迭代登录打卡的次数=30*60/8.397=214.36;实际需要5000笔业务数;

  需要设置的线程数=5000/214.36=23.32,为了保证>=5000笔业务数,所以线程取24;线程数=5000/(60*T/t)=5000*[t/(60*T)]

  由此可以得出:Thread = BC*[t/(60*T)],

  BC:业务数/业务量,本例中 BC=5000 ;

  t:单用户单次业务消耗时间,尽可能模拟真实用户的真实行为,本例中 t=8.397s;

  T:考察时长,本例中 T=30分钟;

  关于Thread,这里计算的是需要的线程数,事实上这个公式计算的是单位时间平均并发数。就是单位时间内有多少用户或者线程并发向服务端发起请求;

  假如登录打卡业务场景,计算的是24.

  在jmeter中表示需要系统平均需要24个线程同时发起请求才能在对应的时间段内支撑对应的业务量;

  在真实的用户场景中,则表示平均每秒最大支撑24个用户同时发起请求才能在对应的时间段内支撑对应的业务量;

  这个计算的是评价并发

  对应的峰值并发:Thread_Max = Thread + 3*根号Thread

  如果平均并发是24的花,那么Thread_Max = 24 + 3*根号24 = 38.7,每秒的并发用户峰值大约是39。

作为一位过来人也是希望大家少走一些弯路,在这里我给大家分享一些自动化测试前进之路的必须品,希望能对你带来帮助。(WEB自动化测试、app自动化测试、接口自动化测试、持续集成、自动化测试开发、大厂面试真题、简历模板等等),相信能使你更好的进步!

留【自动化测试】即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/670432.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

nx安装llvmlite与numba

文参考 Python安装llvmlite、numba报错解决方案_ClearLon的博客-CSDN博客 llvmlite与numba你可以理解为用于数据处理的加速包 我的python版本为3.6.9,llvmlite版本为0.32.1,numba版本为0.49.1 目录 1 安装 llvmlite 2 安装numba 1 安装 llvmlite…

软件测试技能,JMeter压力测试教程,登录参数化CSV 数据文件设置(五)

目录 前言 一、场景案例 二、登录接口 三、测试数据准备 四、CSV数据文件设置 五、查看结果 前言 我们在压测登录接口的时候,如果只用一个账号去设置并发压测,这样的结果很显然是不合理的,一个用户并发无法模拟真实的情况 如果要压测…

Python的特点和优势

Python的优特点 简单易学: Python语言相对于其他编程语言来说,属于比较容易学习的一门编程语言,它注重的是如何解决问题而不是编程语言的语法和结构。正是因为Python语言简单易学,所以,已经有越来越多的初学者选择Pyth…

你可以不用RxJava,但必须得领悟它的思想!

作者:cofbro 前言 Rx 是一种响应式编程的思想,如今有很多语言都支持这种思想:RxJava,RxJs,RxSwift...。它是基于特殊的观察者模式来实现的,能够轻松的实现异步事件响应流,避免回调地狱的产生。…

Avalon总线协议

Avalon总线主要用于片内处理器与外设,常用于高速数据传输流、读写寄存器和存储器、控制片外器等。 Avalon 总共有七种接口: Avalon Clock Interface, Avalon时钟接口 -- 驱动或接收时钟信号的接口Avalon Reset Interface, Avalon复位接口 -- 驱动或接收…

想要好用的ai绘画工具推荐?分享怎么文字生图片在线

小张: 嘿,小明,你有没有听说过在线将文字转换成图片的工具?我最近在寻找一种方法,可以将我的文字描述转化为视觉图像。 小明: 嗯,听起来很有趣!你是指通过某种技术把文字转换成图片,然后展示出…

亚马逊加购对卖家有什么作用?

对亚马逊卖家来说,亚马逊的加购功能也具有一些重要的作用: 1、增加销售机会:当买家将卖家的商品添加到购物车中时,这表示他们对该商品有兴趣,并考虑购买。这为卖家提供了一个机会,因为购物车中的商品更有可…

【For¥】产品落地到$进账重要流程中你需要知道的东西

文章目录 产品思维空、雨、伞-决策思维5W1H-重点思维矩阵分析法费米推理 工具 开发解决方案(实现)调优(性能)安全 营销运营常见运营岗位分类运营必备能力 销售策略手段方式话术 来源 产品 思维 空、雨、伞-决策思维 产品经理作…

使用yolov5训练自己的数据集并测试效果

1.源码下载链接 1.yolov5原模型以及权重文件 链接:https://pan.baidu.com/s/1XlvHIxlzJEqp2wlRx5Fb1w 提取码:xtkj 2.训练自己数据集的完整代码 链接:https://pan.baidu.com/s/1xdnah8ZLoT7E1YDm-RiGzQ 提取码:9261 2.训练…

CASAIM签约AMOOL TRADING COMPANY LTD,正式进军中东市场

随着3D打印、三维数字化及全自动化智能检测技术的不断进步和应用领域的扩大,全球市场在高速增长。CASAIM作为国内领先的3D打印、三维数字化及全自动化智能检测技术研发及制造商,一直致力于为全球智能制造企业提供高精度、高效率的智能制造及检测解决方案…

【深度学习】segment-anything使用过程

文章目录 官网Checkpoints安装快速体验导出onnxWeb应用jupyter 脚本运行SAM的脚本automatic_mask_generator_example 官网 https://github.com/facebookresearch/segment-anything Checkpoints 三种模型: parser.add_argument( “–model-type”, typestr, requi…

前端JavaScript中的动态事件添加

💂 个人网站:【海拥】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 目录 前言事件的基本概念动态…

使用AI聊天模型写作和编码心得

原文合集地址如下,有需要的朋友可以关注 本文地址 合集地址 给大家推荐一个国内暂时免费使用AI聊天模型的网站: ChatAnywhere 有需要的朋友可以点击试用一下。 写文档 要点 详细描述要干的事情 说清楚你的需求,例如: 可…

vue3的代码片段如何设置

vscode -文件-用户代码片段 {"vue3 template": {"prefix": "vue3","body": ["<template>"," <div>","$1"," </div>","</template>\n","<s…

家政服务小程序开发

随着人们生活水平的提高和生活节奏的加快&#xff0c;越来越多的家庭需要家政服务来解决家庭问题。为了更好地满足用户需求&#xff0c;家政行业开始发展家政小程序。下面我们来介绍一下家政小程序的主要功能。 1. 家政下单 家政小程序的主要功能之一是家政下单。用户可以在小…

OGG|使用 OGG19c 迁移 Oracle11g 到 19C(第二版)

作者 | JiekeXu 来源 |公众号 JiekeXu DBA之路&#xff08;ID: JiekeXu_IT&#xff09; 如需转载请联系授权 | (个人微信 ID&#xff1a;JiekeXu_DBA) 大家好&#xff0c;我是 JiekeXu,很高兴又和大家见面了,今天和大家一起来看看使用 OGG19c 迁移 Oracle11g 到 19C(第二版)&am…

Java关于反射的理解

关于反射的理解 Reflection&#xff08;反射)是被视为动态语言的关键&#xff0c;反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息&#xff0c;并能直接操作任意对象的内部属性及方法。 框架 反射 注解 设计模式。 3.体会反射机制的“动态性” //体会…

大模型的涌现能力 (Emergent Abilities of LLM)

作者 | 曾伟豪 北京邮电大学 整理 | NewBeeNLP https://zhuanlan.zhihu.com/p/609339534 大家好&#xff0c;这里是NewBeeNLP。今天一起来研究下LLM中的emergent abilities现象。 论文名称&#xff1a;Emergent Abilities of Large Language Models论文链接&#xff1a;https:/…

java进阶1(数组)

数组 数组是数据的集合&#xff0c;一个容器&#xff0c;用来存储任何类型的数据&#xff0c;包括原始数据类型和引用数据类型&#xff0c;但是一旦指定了数组的类型之后&#xff0c;就只能用来存储指定类型的数据。 数组声明的三种方式&#xff1a; 数据类型[] 数组名 new …

通过netstat命令查看进程与端口的对应关系

文章目录 前言一、linux 离线安装二、使用 前言 netstat是一个用于显示当前网络连接状态和统计信息的命令行工具。使用netstat可以解决以下问题&#xff1a; 查看当前计算机上的网络连接状态&#xff0c;了解计算机是否正在与其他计算机通信。 检查计算机上是否存在未经授权的…