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

目录:导读

    • 前言
    • 一、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.mzph.cn/news/154374.shtml

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

相关文章

AI生成技术威胁版权保护,水印技术和法律完善是关键/安圭拉小岛以.ai域名注册赚得3000万美元 |魔法半周报

我有魔法✨为你劈开信息大海❗ 高效获取AIGC的热门事件🔥,更新AIGC的最新动态,生成相应的魔法简报,节省阅读时间👻 🔥资讯预览 AI生成技术威胁版权保护,水印技术和法律完善是关键 Sam Altman对…

软件外包开发的验收流程

软件外包开发的验收流程是确保项目符合预期标准并满足客户需求的关键步骤。以下是一个通用的软件外包开发验收流程,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1.明确验收标准: 在项目…

jmeter接口自动化部署jenkins教程详解

首先,保证本地安装并部署了jenkins,jmeter,xslproc 我搭建的自动化测试框架是jmeterjenkinsxslproc 注意:原理是,jmeter自生成的报告jtl文件,通过xslproc工具,再结合jmeter自带的模板修改&…

【C语言】条件变量(pthread_cond_t)

一、概述 条件变量(pthread_cond_t)是POSIX线程(也称为pthread)库中用于线程同步的一种机制。在多线程程序中,条件变量通常与互斥锁(pthread_mutex_t)一起使用,以防止并发问题,如竞态条件和死锁。 二、条件变量(pthre…

渲染器之挂载与更新

讲解渲染器的核心功能:挂载与更新。 1、挂载子节点和元素的属性 当 vnode.children 的值是字符串类型时,会把它设置为元素的文本内容。一个元素除了具有文本子节点外,还可以包含其他元素子节点,并且子节点可以是很多个。为了描述…

IonQ、Rigetti、D-Wave公布2023年第三季度财报!

近期,量子计算公司Rigetti、IonQ和D-Wave均公布了各自在2023年第三季度的盈利收益。 这三家公司在近期均实现了收入增长,并助力客户实现相应的业务增长。然而,在追求实现量子霸权和超越经典硅基计算机系统的同时,这些公司仍面临着…

ECharts零基础使用思路 图表案例网站推荐

1、用npm安装echarts npm i echarts -S 2、引入 (1)可以在mian.js里全局引入 import echarts from ‘echarts’ Vue.prototype.$echarts echarts 将echarts挂载在Vue原型上 用时直接this.$echarts即可 (2)也可以在组件中按需引入…

安卓毕业设计:基于安卓android微信小程序的在线医生答疑系统

项目介绍 在线医生答疑开发使系统能够更加方便快捷,同时也促使在线医生答疑变的更加系统化、有序化。系统界面较友好,易于操作。具体在系统设计上,客户端使用微信开发者,后台也使用java技术在动态页面上进行了设计,My…

AR眼镜方案—单目光波导AR智能眼镜

光波导技术是一项具有前沿意义的技术,它能够将光线反射180度,使得眼镜框架内置的MicroLED屏幕的图像通过多次反射与扩散后准确地传递到人眼中。采用MicroLED显示技术的AR智能眼镜不仅体积显著缩小,屏幕只有0.68英寸大小,并且还能够…

KT142C语音芯片音乐前要空白音才行,声音会被截掉,实际语音是你好,播放变成好

KT142C语音芯片播放音乐前必须有一段空白音才行,不然声音会被截掉一部分,播放 温度1超高,如果前面没有空白音,就会变成 度1超高 出现这个问题,核心的原理在于功放芯片是受控了 这个问题只存在于,配置为DAC…

软考必须得从初级开始考吗?

软考是指软件技术专业资格考试,是由中国计算机技术职业资格认证中心(NCTC)主办的一项国家级考试。软考考试内容涵盖了软件工程、数据库、网络与信息安全、嵌入式系统等多个方面的知识,是评价软件技术人员专业水平的重要标准。 对于…

手机 IOS 软件 IPA 签名下载安装详情图文教程

由于某些应用由于某些原因无法上架到 appStore 或者经过修改过的软件游戏等无法通过 appStore 安装,我们就可以使用签名的方式对相应软件的IPA文件进行签名然后安装到你的手机上 这里我们使用爱思助手进行签名安装,爱思助手支持两种方式,一种…

visionOS空间计算实战开发教程Day 1:环境安装和编写第一个程序

安装 截至目前visionOS还未在Xcode稳定版中开放,所以需要下载​​Xcode Beta版​​。比如我们可以下载Xcode 15.1 beta 2,注意Xcode 15要求系统的版本是macOS Ventura 13.5或更新,也就是说2017年的MacBook Pro基本可以勉强一战,基…

从复杂大模型加载到3D PDF发布: EVGET HOOPS Framework如何助力高性能3D桌面应用开发?

在当今数字化时代,3D图形和CAD(计算机辅助设计)技术在各行各业中扮演着至关重要的角色。 HOOPS SDK是由Tech Soft 3D公司开发的一套强大的3D图形和CAD(计算机辅助设计)开发工具包。HOOPS致力于提供先进的3D复杂数据处…

数据结构与算法之美学习笔记:23 | 二叉树基础(上):什么样的二叉树适合用数组来存储?

目录 前言树(Tree)二叉树(Binary Tree)二叉树的遍历解答开篇 & 内容小结 前言 本节课程思维导图: 前面我们讲的都是线性表结构,栈、队列、链表等等。今天我们讲一种非线性表结构,树。问题&…

WebGoat通关攻略之 SQL Injection (intro)

SQL Injection (intro) 1. What is SQL? 本题练习SQL查询语句,就是写一句SQL获取叫Bob Franco所在的department SELECT department FROM employees WHERE first_name Bob AND last_name Franco成功通关! 2. Data Manipulation Language (DML) 本题…

安卓毕业设计:基于安卓android微信小程序的超市购物系统

运行环境 开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包&a…

喜报 | 思码逸 DevInsight 通过DaoCloud兼容性互认证

近日,北京思码逸科技有限公司(简称:思码逸)的 Devlnsight 一站式研发效能度量平台与上海道客网络科技有限公司(简称:DaoCloud)的 DaoCloud Enterprise 云原生操作系统 V5.0,经双方联…

数据结构:lambda表达式

基本概念 语法 // 1. 不需要参数,返回值为 2 () -> 2 // 2. 接收一个参数(数字类型),返回其2倍的值 x -> 2 * x // 3. 接受2个参数(数字),并返回他们的和 (x, y) -> x y // 4. 接收2个int型整数,返回他们的乘积 (int x, int y) -> x * y // 5. 接受一个 string 对…

配置中心

服务配置中心介绍 首先我们来看一下,微服务架构下关于配置文件的一些问题: 1. 配置文件相对分散。 在一个微服务架构下,配置文件会随着微服务的增多变的越来越多,而且分散 在各个微服务中,不好统一配置和管理。 2. 配置文件无…