【性能测试】稳定性/并发压力测试的TPS计算+5W并发场景设计...

news2024/11/17 13:51:18

目录:导读

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


前言

1、稳定性测试TPS计算

①普通计算公式:TPS=总请求数 / 总时间按照需求得到基础数据。

在去年第20周,某平台有5万的浏览量
那么总请求数我们可以估算为5万(1次浏览都至少对应1个请求)
总请求数 = 50000请求数

总时间:由于不知道每个请求的具体时间,我们按照普通方法,我们可以按照一天的时间进行计算总时间=1天=124 小时=24 * 3600 秒套入公式可得:TPS = 50000/243600秒= 0.58tps。

结论:按照普通计算方法,我们在测试环境对相同的系统进行性能测试时,每秒能够发送0.58tsps就可以满足线上的需要。

②二八原则计算方法二八原则是指80%的请求在20%的时间内完成

计算公式:TPS=总请求数 80% / (总时间20%)

按照公式进行计算:TPS=50000 0.8请求数 / 2436000.2秒 = 2.3tps

结论:按照二八原则计算,在测试环境我们的TPS只要能达到2.3请求数每秒就能满足线上需要。二八原则的估算结果会比平均值的计算方法更能满足用户需求。

③按照业务运营数据进行计算如xxx消费券发放时间固定开始时间,那个用户将会在活动开始前的30分钟内陆续开始访问xxx首页。

进入消费券主页,在活动开始前5分钟大量访问,活动倒计时10秒和活动开始后2分钟内会有用户不断点击和刷新页面。

根据以往活动数据,活动期间,平台总请求数据未50000,时间持续180分钟。得到总请求=50000,时间=158x60=9480秒。

再根据二八原则,80%用户在20%时间内访问。

得出:tps=50000x80%/9480x20%=40000/1896=21tps/s计算模拟用户峰值业务操作(压力测试)的并发量,根据这些数据统计图,可以得出结论:可以拿21tps/s作为稳定性测试的参考值。

2、并发压力测试tps计算

三个概念:
用户数:数据库中的总用户数。
在线用户数:登录状态的用户数,挂在系统上,但是不会对系统产生压力。
并发用户数:真正产生操作的用户,产生压力之源。

①秒杀活动压测数据计算假如平台总注册用户数有100w,有10w用户约定好同时对某一接口进行访问。

比如1分钟,陆续来访10w用户,那么我们系统并发用户是比实际的10w要小的。

那一个秒杀活动开始时,10w用户在10秒内重复请求多次,平均3次每个人,那么tps=100000/10=10000tps。

表明我们目标的tps应达到10000才能抗住100000用户的同时请求。

②领券活动压测平台注册用户数100w,用10w用户准备抢券,10w人同时在10秒内访问抢券接口。

在过程中每个用户可能会多次点击抢券,估算每个用户点击3次抢券接口。那么,tps=100000*3/10=30000tps,系统的目标tps需达到30000才抗住10w用户的并发访问压力。END、绵薄之力。

3、需求:如何设计一个5W并发量的性能测试场景?

1)确定性能测试工具,性能测试思路

测试工具:Jmeter

并发设计思路:如果被测服务足够快,比如10ms的响应时间,1个线程/秒就是100tps,5万的TPS,就得启动500个JMETER线程。

测试时可以多加20%~50%的线程,连续阶梯加压看TPS完整过程,根据实际情况选择发压服务器配置。

Jmeter能启动多少线程:

①线程数受什么影响?Jmeter是一个Java进程,一个Java进程下的线程数受什么影响?

由堆内存、栈内存以及可用空间(本机的物理内存的剩余内存)决定的。

②以Jmeter 5.1版本为例,在Jmeter.bat文件设置堆内存注意:一般而言,堆的最大值不要超过物理内存的一半,否则容易导致Jmeter运行变慢、卡顿甚至内存溢出,因为Java本身的垃圾回收机制是动态分配内存。

当需要模拟的线程数较大时,就需要根据具体情况采用分布式压测的方式了。

2)确定项目架构,以及环境

①需要确定项目架构,包括不限于:服务器、数据库、中间件,整个链路
②确定测试环境服务器等资源,与生产对比(成比例)

3)确定业务需求
①单接口
②多接口(事务)
③确定业务量:峰值、日业务量、半年/一年的业务量

4)编写性能测试用例、脚本、执行场景
①性能测试用例(模板)

A1

②性能测试脚本(JMETER)CSV参数化参数提取(正则表达式)断言…
③执行场景

基准测试:1个并发执行5分钟,关注tps、响应时间、运行次数等参数

负载测试:多个并发执行5分钟,关注tps、响应时间、运行次数、服务器的cpu、内存等参数

阶梯测试:通过不断增压,找到拐点。关注tps、响应时间、运行次数、服务器的cpu、内存等参数

疲劳测试:多并发,7*24小时运行,无报错异常。(根据实际情况执行,有的要求持续运行8小时即可)

5)调优、报告

①首先在服务器执行top命令,查看CPU消耗,us、sy哪个消耗的比较多。
②找到消耗cpu的线程,再找到线程调用的方法。
③如果内存消耗比较多,检查日志级别。查看IO状况。
④检查是否存在慢sql。

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

只有通过不断地努力和奋斗,才能真正地实现自己的梦想,去创造自己的未来,去改变自己的命运,去赢得自己的成功,最终成为一名真正的赢家。

只有通过不断地努力和奋斗,才能真正地实现自己的梦想,去创造自己的未来,去改变自己的命运,去赢得自己的成功,最终成为一名真正的赢家。

只有通过不断地努力和奋斗,才能真正地实现自己的梦想,去创造自己的未来,去改变自己的命运,去赢得自己的成功,最终成为一名真正的赢家。

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

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

相关文章

js实现页面滚动时自动切换Sidebar标签,点击标签自动滚动页面

js实现页面滚动时自动切换Sidebar侧边导航标签&#xff0c;点击标签自动滚动页面 <van-sidebar class"sidebar" v-model"activeKey"><van-sidebar-item :title"i.title" click"onChange(i)" v-for"(i,k) in activeList&…

Android项目更新依赖和打包步骤和问题汇总

目录 1、Android 项目打包&#xff0c;32位包升级到64位包问题一&#xff1a;ERROR: Conflicting configuration : armeabi-v7a,x86-64,arm64-v8a,x86 in ndk abiFilters cannot be present when splits abi filters are set : x86,armeabi-v7a,arm64-v8a 2、Android项目依赖升…

使用DHorse发布SpringBoot项目到K8S

前言 在介绍DHorse的操作之前&#xff0c;先来介绍一下使用k8s发布应用的步骤&#xff0c;以SpringBoot应用为例进行说明。 1.首先从代码仓库下载代码&#xff0c;比如GitLab&#xff1b; 2.接着进行构建&#xff0c;比如使用Maven&#xff1b; 3.如果要使用k8s作为编排&am…

SAP gui 登录条目不让修改

今天碰到用户安装的GUI 770 版本&#xff0c;不让修改&#xff0c;也不让添加 后面再选项里面找到了

时尚灵感 | 数说故事《2024春夏时装周研究报告》发布

过去两个月&#xff0c;2024春夏时装周如火如荼&#xff0c;我们不仅看到后疫情时代多个世界级时尚地标恢复活力&#xff0c;明星大咖云集&#xff0c;也在各大品牌秀场中感受到了艺术、摩登、自然、人文的精彩碰撞。 时装周是流行的风向标&#xff0c;每一季四大时装周的举办…

实在智能出席山东省数据科学大会,构建产学研教数智创新生态

11月18日至19日&#xff0c;由山东大学、山东省科学技术协会、山东省大数据局主办的首届“山东省数据科学大会暨泰山科技论坛”在山东大学&#xff08;中心校区&#xff09;隆重召开&#xff0c;以“数聚慧能 科创未来”为主题&#xff0c;来自全国各地的高校、科研机构、企事业…

“茶叶创新:爆改营销策略,三个月狂销2300万“

我的朋友去年制作了一款白茶&#xff0c;并在短短三个月内将其销售量推到了2300万的高峰。你相信吗&#xff1f; 这位朋友并没有任何茶叶方面的经验&#xff0c;他只是一个有着冒险精神的企业家。他先找到了一家代工厂&#xff0c;帮助他把他的茶叶理念转化为现实。 当他把茶叶…

SAP ABAP ALV “报错用户接口 XXXX的状态 XXXX丢失“

会导致功能栏无法使用 原因如下这两个名字需要对的上&#xff0c;否则就会报错

Postgresql常用命令函数

1、string_agg()函数 1.1用法: string_agg(expression, delimiter)&#xff0c;参数类型(text, text) or (bytea, bytea)&#xff0c;返回类型和参数类型一致,第一个参数是字段名&#xff0c;第二个参数是样式&#xff0c;比如&#xff0c;或者#分隔。 1.2实战: SELECT * FR…

配置文件自动提示

1、引入依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId> </dependency> 2、修改IDEA配置

为什么 ConcurrentHashMap 中 key 不允许为null

考察目标 这是一个基础问题&#xff0c;主要考察 1 到 3 年经验的开发人员 ConcurrentHashMap 在实际应用中使用频率较高 考察这个问题的目的&#xff0c;是了解求职者的基本功。 所以为了表现更好&#xff0c;可以从 ConcurrentHashMap 的设计角度去回答。 问题解析 打开…

基于C#实现协同推荐 SlopeOne 算法

一、概念 相信大家对如下的 Category 都很熟悉&#xff0c;很多网站都有类似如下的功能&#xff0c;“商品推荐”,"猜你喜欢“&#xff0c;在实体店中我们有导购来为我们服务&#xff0c;在网络上我们需要同样的一种替代物&#xff0c;如果简简单单的在数据库里面去捞&am…

CTF-栈溢出-基本ROP-【ret2syscall】

文章目录 ret2syscallBxMCTF 2023 Anti-Libcmainwrite_bufflush_obufreadintread_buf 思路exp ret2syscall 即控制程序执行系统调用&#xff0c;获取 shell。 BxMCTF 2023 Anti-Libc main write_buf 写入字符的&#xff0c;待会输出 flush_obuf 把字符输出到屏幕 read…

集群创建(flannel)时候,没有自动创建出cni0网卡

给旧的集群加入四台新的服务器启动时候发现都是正常的&#xff0c;但是pod通信报错 集群通信失败&#xff0c;第一时刻想看看是不是cni0和flannel.1的网段是不是通的&#xff0c;点进去一看发现cni0网卡没有生成。 部署是通过kubeadm方式部署的集群&#xff0c;目前有两种解决…

mysql8 group by出错:this is incompatible with sql_mode=only_full_group_by

第一步&#xff1a;先检查自己windows电脑上有没有my.ini文件&#xff0c;没有则创建一个my.ini 第二步&#xff1a;将下面内容复制进入my.ini保存&#xff0c;重启Mysql即可 [mysqld] sql_modeSTRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,…

请求的接口响应状态为已取消的原因

有趣的iframe问题 今天遇到一个问题&#xff0c;当点击了按钮----跳转页面时----F12键点击网络中的状态报了已取消&#xff0c;类型是 document说明是前端页面的问题&#xff0c;如果是xhr那可能是接口的问题。 原本是写了3个iframe,页面刷新的时候请求了第一个iframe,然后就…

android生成jks文件

jks文件用来校验微信支付 生成的方法&#xff1a;

论文《A recurrent latent variable model for sequential data》笔记:详解VRNN

A recurrent latent variable model for sequential data 背景 1 通过循环神经网络的序列建模 循环神经网络&#xff08;RNN&#xff09;可以接收一个可变长度的序列 x ( x 1 , x 2 , . . . , x T ) x (x_1, x_2, ..., x_T) x(x1​,x2​,...,xT​)作为输入&#xff0c;并通…

install安装路径设定

因为安装路径的前缀 CMAKE_INSTALL_PREFIX 都在外面都写了。 所以在具体的dll 在安装时&#xff0c;就写相对路径就行了。

基于51单片机交通灯仿真_紧急开关+黄灯倒计时+可调时间(proteus+代码+报告+讲解视频)

基于51单片机交通灯_紧急开关黄灯倒计时可调时间 ☑️开题报告☑️仿真图&#xff08;提供源文件&#xff09;&#xff1a;☑️系统硬件设计☑️主控制器选择☑️系统硬件结构图☑️时钟及复位电路☑️指示灯及倒计时模块 ☑️倒计时模块&#xff1a;☑️程序☑️软件主流程框架…