13年测试老鸟总结,性能测试-并发用户数估算(超细整理)

news2024/10/6 22:34:11

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

并发用户数:是指现实系统中操作业务的用户,在性能测试工具中,一般称为虚拟用户数(Virutal User)。

并发用户数和注册用户数、在线用户数的概念不同。
并发用户数一定会对服务器产生压力的;
而在线用户数只是 ”挂” 在系统上,对服务器不产生压力;
注册用户数一般指的是数据库中存在的用户数;

TPS:Transaction Per Second, 每秒事务数,是衡量系统性能的一个非常重要的指标。

TPS就是每秒事务数,但是事务是基于虚拟用户数的,假如1个虚拟用户在1秒内完成1笔事务,那么TPS明显就是1;

如果,某笔业务响应时间是1ms,那么1个用户在1秒内能完成1000笔事务,TPS就是1000了;

如果某笔业务响应时间是1s,那么1个用户在1秒内只能完 成1笔事务,要想达到1000TPS,至少需要1000个用户;

因此可以说1个用户可以产生1000TPS,1000个用户也可以产生1000TPS,无非是看响应时间快慢。

也就是说,在评定服务器的性能时,应该结合TPS和并发用户数,以TPS为主,并发用户数为辅来衡量系统的性能。

如果必须要用并发用户数来衡量的话,需要一个前提,那就是交易在多长时间内完成,因为在系统负载不高的情况下,将思考时间(思考时间的值等于交易响应时间)加到脚本中,并发用户数基本可 以增加一倍,因此用并发用户数来衡量系统的性能没太大的意义。

在性能测试时并不需要用上万的用户并发去进行测试,如果只需要保证系统处理业务时间足够快,几百个用户甚至几十个用户就可 以达到目的。

据了解,很多专家做过的性能测试项目基本都没有超过5000用户并发。因此对于大型系统、业务量非常高、硬件配置足够多的情况下,5000 用户并发就足够了;对于中小型系统,1000用户并发就足够了。

系统吞吐量几个重要参数:TPS、并发数、响应时间

TPS:每秒钟事务数量
并发数:系统同时处理的事务数
响应时间:一般取平均响应时间

TPS=并发用户数 / (响应时间+Thinktime)

并发用户如何计算?

1、经典公式
一般来说,利用以下经验公式进行估算系统的平均并发用户数和峰值数据

平均并发用户数为 C = nL/T
并发用户数峰值 C‘ = C + 3*根号C

C是平均并发用户数,n是login session的数量,L是login session的平均长度,T是值考察的时间长度

C’是并发用户数峰值

举例1:
假设系统A,该系统有3000个用户,平均每天大概有400个用户要访问该系统(可以从系统日志从获得),对于一个典型用户来说,一天之内用户从登陆到退出的平均时间为4小时,而在一天之内,用户只有在8小时之内会使用该系统。

计算:
平均并发用户数为:C = 4004/8 = 200
并发用户数峰值为:C‘ = 200 + 3
根号200 = 243

举例2:
某公司为其170000名员工设计了一个薪酬系统,员工可进入该系统查询自己的薪酬信息,但并不是每个人都会用这个系统,假设只有50%的人会定期用改系统,这些人里面有70%是在每个月的最后一周使用一次该系统,且平均使用系统时间为5分钟。

则一个月最后一周的平均并发用户数为(朝九晚五):

n = 1700000.50.7/5 = 11900
C= 11900*5/60/8 = 124

吞吐量计算为:F = Vu * R / T 单位为个/s

F为事务吞吐量,Vu为虚拟用户数个数,R为每个虚拟用户发出的请求数,T为处理这些请求所花费的时间

2、通用公式
对绝大多数场景,我们用(用户总量/统计时间)*影响因子(一般为3)来进行估算并发量。

例如:
以乘坐地铁为例子,每天乘坐人数为5万人次,每天早高峰是7到9点,晚高峰是6到7点,根据8/2原则,80%的乘客会在高峰期间乘坐地铁,则每秒到达地铁检票口的人数为5000080%/(36060)=3.7,约4人/S,考虑到安检,入口关闭等因素,实际堆积在检票口的人数肯定比这个要大,假定每个人需要3秒才能进站,那实际并发应为4人/s3s=12,当然影响因子可以根据实际情况增大!

3、根据PV计算公式
比如一个网站,每天的PV大概1000w,根据2/8原则,我们可以认为这1000w pv的80%是在一天的9个小时内完成的(人的精力有限),那么TPS为:

1000w80%/(93600)=246.92个/s,取经验因子3,则并发量应为:
246.92*3=740

4、根据TPS估计
公式为 C = (Think time + 1)*TPS

5、根据系统用户数计算
并发用户数 = 系统最大在线用户数的8%到12%

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

只有坚持不懈的努力,才能在人生的舞台上谱写出壮丽的乐章,让梦想的火花绽放出耀眼的光芒。无论困难多大,只要心中有激情和勇气,成功一定会向你微笑!

只有在经历了磨难和困境的洗礼,我们才能成为真正坚强的人。不要放弃,坚持奋斗,你会发现自己拥有无限的力量,迈向成功的道路上永不止步!

只有不停奋斗,才能绽放出生命的光芒;只有拼尽全力,才能超越自我的极限;只有坚持不懈,才能收获属于自己的辉煌。相信自己,勇往直前,无所不能!

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

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

相关文章

nuxt3初始化项目后配置eslint+prettier

1、安装 eslint 、eslint-config-prettier、eslint-plugin-prettier、prettier arn add eslint eslint-config-prettier eslint-plugin-prettier prettier -D eslint-config-prettier:关闭eslint中与prettier相互冲突的规则。eslint-plugin-prettier:赋…

26.Java 异常

异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的 要理解Java异常处理是如何工作的,你需要掌握以下三种类型的异常: 检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个…

【Whisper】《OpenAI Whisper 精读【论文精读】》学习笔记

方法 Whisper在论文中表示使用单模型(single model)来完成多个语音任务(multitask),李沐教授认为优点是设计上比较干净; I. 关于单模型效果的疑问 但是他同时也提出了两个疑问: 使用单模型会…

Simulink仿真模块 - Data Store Read

Data Store Write:向数据存储中写入数据 库:Simulink / Signal Routing 模型为: 说明 Data Store Write 模块将其输入端口的值复制到指定的数据存储中。Data Store Write 模块执行的每个写入操作将覆盖数据存储,取代以前的内容。 此模块写入的数据存储由定义数据存储的 Dat…

刷题日记08《BFS》

概念 宽度优先搜索算法(又称广度优先搜索)是最简便的图的搜索算法之一,这一算法也是很多重要的图的算法的原型。Dijkstra单源最短路径算法和Prim最小生成树算法都采用了和宽度优先搜索类似的思想。其别名又叫BFS,属于一种盲目搜寻…

易语言后,极语言成为官方支持语言,新中文编程语言开始革新而来

易语言促进了中文编程普及和发展 众所周知,吴涛先生在1997年创建的易语言称得上是中文编程的鼻祖。 易语言之后,很多中文编程语言接踵而至:甲语言、乙语言、丙语言、甲骨文编程语言、梅花编程语言等等。 为中国的软件开发者提供了更加便捷和…

什么是aPaaS?aPaaS和低代码是一回事吗?

低代码和aPaaS是近年最为火热的技术趋势之一,那么低代码aPaaS吗?两者有什么关系?今天小帆为大家介绍它们的前世今生。 在介绍低代码和aPaaS前,先要明确一个概念——云服务。云服务是基于互联网的相关服务的增加、使用和交互模式&a…

Profibus-DP转modbus RTU网关profibus主站的实现方案有哪些

远创智控YC-DPM-RTU网关在Profibus总线侧实现主站功能,在Modbus串口侧实现从站功能。可将ProfibusDP协议的设备(如:EH流量计、倍福编码器等)接入到Modbus网络中;通过增加DP/PA耦合器,也可将Profibus PA从站…

如何获取microstore商品详情接口php接口jason数据字段

随着科技的发展,API接口成为了各行业发展的最新趋势。在微店购物平台中,商品详情API接口的引入,为商家和消费者提供了更加便捷、高效的用户体验。本文将为大家详细介绍微店商品详情API接口的优势和使用方法 商品详情API接口的优势 1.提升用户…

那些隐藏在项目中的kotlin小知识,在座各位...

写kotlin越来越久,很多代码虽然能看懂,并且能去改,但是不知道他用了啥,里面的原理是什么,举个例子?大家一起学习一下吧 内联函数 顾名思义,但是在项目中我遇到得很少,他比较适用于一…

基于互联网下的智能配电网运维

安科瑞 华楠 摘要:在“互联网 ”背景下实现互联网技术和智能配电网的融合成为一种必然趋势,本文主要针对基于“互联网 ”的智能配电网运维技术进行分析,在分析我国目前智能电网运维困境和现状的基础上,构建基于“互联网 ”的智能配…

【域名解析】 【二级域名分发】 【vue3部署】 【腾讯云cos】 【DNSPOD】

首先注册腾讯云账号登录 先在腾讯云域名系统中购买域名并且在工信部备案 我的域名 - DNSPod-免费智能DNS解析服务商-电信_网通_教育网,智能DNS 然后点击 DNSPOD DNS 解析 - 定价中心 - 腾讯云 DNSPod - 国民级 DNS 服务平台_智能DNS_免费_域名_解析_VIP_套餐 自行选择免费版…

【UE4 塔防游戏系列】09-防御塔升级、击杀敌人增加金钱

目录 效果 步骤 一、控件蓝图文本控件内容绑定金钱数 二、防御塔改造 三、击杀敌人增加金钱 四、防御塔升级功能 效果 步骤 一、控件蓝图文本控件内容绑定金钱数 1. 打开“TaFangGameMode”,新增一个变量命名为“PlayerMoney”,默认值设为2…

dp算法 力扣152乘积最大子数组

本文是Java代码!! 152. 乘积最大子数组 - 力扣(LeetCode) 一、题目详情 给你一个整数数组 nums ,请你找出数组中乘积最大的非空连续子数组(该子数组中至少包含一个数字),并返回该…

【C++】STL栈和队列基本功能介绍、题目练习和模拟实现(容器适配器)

stack && queue 基本功能介绍、练习和模拟实现 前言正式开始基本函数功能三道经典栈题目讲解最小栈栈的弹出压入顺序逆波兰表达式求值 模拟实现stackqueue deque 前言 本篇基本功能不会介绍太多,主要是说一下STL库中的接口,还是在这个网站上的&…

【动态内存错误详解和C的内存分区】

常见的动态内存错误 1.动态内存错误2.经典案例分析2.1案例一2.1.1**问题分析**2.1.2**修改错误** 2.2案例二2.2.1 原因分析2.2.2 解决问题 c/c内存分布1.2 内存分区简介1.2.1 栈区(stack)1.2.2 堆区(heap)1.2.3 全局(静态)区1.2.4 常量区1.2.5 代码区 1.动态内存错误 &#xf…

DETR (DEtection TRansformer)基于自建数据集开发构建目标检测模型超详细教程

目标检测系列的算法模型可以说是五花八门,不同的系列有不同的理论依据,DETR的亮点在于它是完全端到端的第一个目标检测模型,DETR(Detection Transformer)是一种基于Transformer的目标检测模型,由Facebook A…

幼儿园门禁安全升级,其实是这么做的!

幼儿园门禁安全是确保幼儿园校园安全的重要方面。为了有效管理出入人员和防止未经授权者进入,幼儿园门禁系统起到了至关重要的作用。 人脸识别门禁系统作为一种先进的技术方案,通过准确识别个体的面部特征,提供了更高的安全性和便捷性。 客户…

HeidiSQL使用

​ 1、点击新建后,选择在根分类创建会话 2、左侧在会话名称下出现的Unnamed,右键选择Rename即可重命名。右侧选择数据库类型(mysql),输入主机名(默认本机127.0.0.1),用户名&#xff…

webpack打包之 copy-webpack-plugin

copy-webpack-plugin 打包复制文件插件。 1、什么时候要使用? 在离线应用中,前端所有文件都需在在本地,有些文件(比如iconFont以及一些静态img)需要转为离线文件,这些文件可以直接引用更方便些,这就需要在打…