性能测试该怎么做,终于找到方法了

目录

开头

分类

服务器与场景设计

计算TPS

设计场景

 场景运用

单交易最大压力:

单交易稳定性:

混合场景稳定性:

业务指标:

数据库

中间件

负载均衡:

最后:


开头

性能测试的工具有很多,但是总体还是思路和设计主导,再带入工具。此次我将依据工作中的实际场景,总结一下性能测试怎么入手

分类

性能测试主要分为几个大块

1. 服务器

2. 数据库

3. 中间件

4. 负载均衡

以上是需要测试到的地方

服务器与场景设计

计算TPS

任何系统都是需要人来使用的,那么有一个比较通用的公式能够很好的依据系统的预计使用压力,来设计我们的场景

系统的压力指标最直接的也就是TPS(系统吞吐量),按照二八原则,公式如下:

TPS=日交易次数*80%/(日开放的交易时间秒*20%)

举个例子:一个系统每天业务请求有2百万次,24小时开放。 那么对应的TPS为:2000000*80%/(24*3600*20%)= 3.7 次/秒

如果对系统性能需求较为严苛,则可以遵循一九原则

        

 

设计场景

在知道系统吞吐量以后,可以开始设计实际使用场景

1)单交易目标TPS=脚本配置占比*总目标TPS
2)单交易并发用户数=单交易目标TPS*ART
3)实际并发用户数=单交易并发用户数上取整
4)交易间隔时间=实际并发用户数/单交易目标TPS

由此设计出单业务TPS,单交易并发用户数,交易间隔时间。

 场景运用

单交易最大压力:

上面我们已经获得了单业务的吞吐量,按照单业务的并发量开始加压,压力不能小于单业务的吞吐量,并试探服务器的最大承受极限

服务器最大资源阈值达到系统最大处理能力时,为最大承受极限,最大tps和最大并发数依据最大处理能力填写,运行时间为半小时到一小时

单交易稳定性:

单个请求保持最大压力,持续12小时,测试系统稳定性

混合场景稳定性:

混合场景则按照计算的实际最大总吞吐量,按照百分比分配的单场景混合脚本运行,服务器指标和单交易稳定性一致

业务指标:

其中业务指标也需要考虑,如服务器硬性指标和业务指标任何一项未达到,则不合格

至此,场景设计完成。

数据库

数据库压力在性能测试中也至关重要,比如MySQL连接数,表的大小,insert和查询时间速度等

就用MySQL为例

通过分析,在一定数据量下,针对数据库的基本操作的时间不能超过上图范围

至于数据库工具,大家可以用Jmeter提供的现成的JDBC来进行测试

当然如果基于python技术栈,也可以自己写个时间方法,查询方法来的更快更灵活,并且可通过matpoltlib绘制直观的趋势图

同样数据库服务器的系统资源同样重要

中间件

中间件此处以Tomcat为例

其中JDBC连接等待数,线程繁忙率比较重要

JDBC连接等待数和繁忙率:

通过tomcat的probe工具,放入webapp下,输入对应的ip地址,对性能进行监控(此处不详细介绍probe,自行查资料)

负载均衡:

负载均衡有很多工具,用的比较多的应该有nginx反向代理。

此处我们要关注的不是nginx怎么配置与怎么工作,很简单,此处我们只需要知道输入和输出,并且对比

在最大TPS下,使用服务器性能监控工具(nmon等工具,自行查资料),对比多服务器之间的cpu使用差异率即可

最后:

大体的性能测试入手与思路介绍完成,具体应该根据实际业务情况,使用环境和工具做进一步的详细设计。

locust,sql性能等,完全可以自行写适合公司的框架来进行性能测试(个人建议)

感谢每一个认真阅读我文章的人!!!

我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。欢迎大家点击下方名片免费领取,千万不要错过哦。

                                                       

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

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

相关文章

FreeRTOS学习笔记—基础知识

文章目录 一、什么是RTOS二、前后台系统三、实时内核(可剥夺型内核)四、RTOS系统五、FreeRTOS系统简介六、FreeRTOS源码下载 一、什么是RTOS RTOS全称为:Real Time OS,就是实时操作系统,核心在于实时性。实时操作系统又分为硬实时…

Servlet

1.Servlet是什么 Servlet是一种实现动态页面的技术。是一组Tomcat提供给程序员的API,帮助程序员简单高效的开发一个web app 回顾 动态页面 VS 静态页面 静态页面也就是内容固定的页面,即使 用户不同/时间不同/输入参数不同,页面的内容也不…

LVS负载均衡群集

目录 企业集群的应用 1、什么是集群 2、集群使用在哪个场景 3、集群分类(三种 )集群类型 负载均衡 高可用 高性能运算 4、负载均衡集群的架构 5、负载均衡集群工作模式 6、LVS虚拟服务器 LVS ipvsadm LVS和nginx比较 7、LVS负载调度算法 8、案例LVS-NAT部署实战 企…

数学建模——曲线拟合

一、曲线拟合简介 1、曲线拟合问题的提法 已知一组数据(二维),即平面上n个点 (xi,yi)(i1,2,…,n), xi互不相同。寻求一个函数yf(x),使得f(x)在某种准则下与所有的数据点最为接近,即拟合得最好。 2、…

【雕爷学编程】Arduino动手做(149)---MAX9814咪头传感器模块

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&am…

docker框架02docker的安装

01.这次的docker是在centos版本下的Linux系统中安装的。 02.输入命令 01.先去卸载就得版本 02.安装工具包,和设置镜像仓库 03.由于网络的问题,访问国内的阿里云镜像 修改: 04.更新索引和安装社区版的docker 05.启动docker 06.用命令d…

postman不能进行并发测试

1.按照网上文档的配置 2.在登录接口里睡眠5s,如果是并发的话,所有的请求都会一起睡眠5s 3.测试结果:请求是每隔5s串行执行的

Microsoft遭遇DDoS攻击,3000万客户数据遭窃

6月初,微软部分服务遭遇严重中断,包括Outlook电子邮件、OneDrive文件共享应用程序和云计算基础设施Azure。 一个名为”匿名苏丹”的(又名“风暴-1359”)的组织声称对此次DDoS攻击负责。 匿名苏丹组织自2023年1月以来一直活动频繁,声称其目标…

反向代理缓存服务器 Squid 、Nginx、CDN部署讲解

目录 一、Squid 反向代理1.1 概念1.2 工作机制1.3 搭建 二、 Nginx 反向代理缓存 一、Squid 反向代理 1.1 概念 如果 Squid 反向代理服务器中缓存了该请求的资源,则将该请求的资源直接返回给客户端;否则反向代理服务器将向后台的 Web 服务器请求资源&a…

pytorch 的matmult()函数详解

torch.matmul()也是一种类似于矩阵相乘操作的tensor连乘操作。但是它可以利用python中的广播机制,处理一些维度不同的tensor结构进行相乘操作。 matmul 就是矩阵求 叉乘 如果是二维矩阵,两个矩阵的大小应该为m*n ,n*m。 一维向量的乘积&…

数据结构之队列

1.队列的定义 队列(Queue):也是一种运算受限的特殊线性表。其插入和删除操作分别在线性表的两端进行(只允许在表的一端进行插入,而在另一端进行删除)。允许删除的一端称为队头(front),允许插入的一端称为队尾(rear) …

python读取广州-湛江天气csv文件并做可视化仪表盘

1.读取广-湛.csv文件 import pandas as pd data pd.read_csv(广-湛天气.csv) data 2.去除多余字符 #去除多余字符 data[[最高温度,最低温度]] data[[最高温度,最低温度]].apply(lambda x: x.str.replace(,).replace(, 0)) data.head() 3.删除2023年数据,并计算平均温度保存到…