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

news2024/12/25 12:31:36

目录

开头

分类

服务器与场景设计

计算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.coloradmin.cn/o/716830.html

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

相关文章

Unity中的Bezier曲线与曲面上点的计算

上代码: //获取基于4个控制点的Bezier曲线上的点 Vector3 GetBezierPoint(Vector3 p0, Vector3 p1, Vector3 p2, Vector3 p3, float t) {t Mathf.Clamp01(t);float s 1f - t;return s * s * s * p0 3f * s * s * t * p1 3f * s * t * t * p2 t * t * t * p3; …

如何在 OpenCV 和 Python 中使用滑动窗口进行物体检测

文末附源代码的免费下载链接 目录 物体检测的滑动窗口技术讲解 使用 OpenCV 和 Python 实现滑动窗口技术 结论 代码下载链接

Python采集某漫画网站<灵剑尊>VIP漫画内容

前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 环境使用: Python 3.8 Pycharm 模块使用: requests >>> pip install requests 数据请求模块 parsel >>> pip install parsel 数据解析模块 安装方法: win R 输入cmd 输入安装命令…

【Django】列表数据Paginatior分页,动态返回页码,显示当前页、总页数、跳转页

问题 1、当返回数据较多,如设置每页展示10条,数据接近200条,返回页码范围1~20,前端每个页码都显示的话,就会出现页码超出当前页面,被遮挡的页码无法操作和显示不美观; 2、列表的所在页码,总分页数,跳转不在动态页面的页数 解决 在使用paginator转化为Page对象后,获…

BI测试(知识总结)

目录 前言 BI测试: 测试策略: 1、测试准备工作: 2、报表测试点 3、测试步骤(流程) 🎁更多干货 前言 由于之前做过一段时间大数据测试,故整理BI测试知识点以供学习。 BI测试&#xff1a…

2.网洛通讯模型

目录 osi七层参考模型 应用层——应用层序 表示层 会话层 传输层 网络层——ip地址,实现逻辑寻址 数据链路层(介质访问层MAC)(逻辑访问控制层LLC)——物理寻址 物理层——处理电信号 TCP/IP模型 TCP和UDP 不…

阿里领导给的Java八股文,包括15条技术线,已助1900人进入大厂!

为了更高的薪水跳槽无可厚非,但你要把握好一个度。 举个例子,如果你每次都只是为了能增长3%的年薪,而频繁地换工作。当HR看到你的简历时,你会被认为是一个对公司没有忠心、对自己的事业没有远见的人 如何准备? 除了…

Git 快速入门

文章目录 前言一、初识Git1.Git概述2. Git的功能3. Git运行图示 二、Git下载安装三、Git 代码托管服务1.常用的 Git 代码托管服务2.使用码云代码托管服务 四、Git 常用命令1.Git 全局设置2.获取Git 仓库3.工作区、暂存区、版本库 概念4.Git 工作区中文件的两种状态5.本地仓库常…

通信算法之170: 4G LTE物理层模块链路仿真

LTE标准协议,部分算法链路仿真记录 1. Crc 卷积/Turbo编码 速率匹配 加扰 调制 OFDM调制 CP 信道模型 2. 同步 OFDM解调 解调 解扰 解速率匹配 turbo译码 Crc 3. 读者2/3代码

远程debug调试

1、背景 测试验证过程中我们肯定都遇到过线上问题本地怎么都无法复现的经历,而这一类问题往往是需要我们通过经验尝试性的修复,过程也比较痛苦且低效,没办法快速定位到问题原因。此时可以尝试使用远程debug将线上部署程序像本地调试一样验证…

【机器学习】支持向量机(上)

支持向量机(上) 目录 一、导言二、何为支持向量机三、点到平面的距离计算四、构建目标函数(支持向量机的基本型推导)五、利用 KKT 条件对目标函数进行转换1、拉格朗日乘数法的引入2、KKT 条件的引入3、松弛互补条件的引入4、总结 …

获取R、G、B通道的直方图

clc;%clc的作用就是清屏幕 clear;%clear是删除所有的变量 close all;%close all是将所有打开的图片关掉。imageimread(E:\我的桌面\MATLAB\练习\2.jpg);%绝对路径的 Rimage(:,:,1); Gimage(:,:,2); Bimage(:,:,3); hrimhist(R); hgimhist(G); hbimhist(B); x0:1:255; figure…

只需根据接口文档,就能轻松开发 get 和 post 请求的脚本,你会做吗?

一般的接口文档描述的内容: 开发get请求的脚本,接口文档的描述如下: 在loadrunner里面创建一个空脚本: 在action空白处,点击insert—>step 输入web_custom_request,双击选择该函数,填入如下几…

Android Studio实现内容丰富的安卓外卖平台

如需源码可以添加q-------3290510686,也有演示视频演示具体功能,源码不免费,尊重创作,尊重劳动。 项目编号122 1.开发环境 android stuido jdk1.8 eclipse mysql tomcat 2.功能介绍 安卓端: 1.注册登录 2.查看公告 3.…

缓存更新策略,先更新数据库还是缓存呢?

学了这么多,相信大家对缓存更新的策略都已经有了清晰的认识。最后稍稍总结一下。 缓存更新的策略主要分为三种: Cache aside Cache aside Cache aside也就是旁路缓存,是比较常用的缓存策略。 (1)读请求常见流程 应…

CVE-2018-12613:本地文件包含

前言: phpMyAdmin是phpMyAdmin团队开发的一套免费的、基于Web的MySQL数据库管理工具。该工具能够创建和删除数据库,创建、删除、修改数据库表,执行SQL脚本命令等。 CVE-2018-12613,这是一个在phpMyAdmin4.8.x(4.8.2之前)上发现的…

obs录制功能源码分析

录制按钮 界面文件: 主界面:OBSBasic.ui 中开始录制按钮的objectName 是 recordButton 槽函数: void OBSBasic::on_recordButton_clicked() {//1 输出模式是否被激活if (outputHandler->RecordingActive()) {bool confirm config_get_bool(GetGlo…

【Cache】Rsync远程同步

文章目录 一、rsync 概念二、rysnc 服务器部署1. 环境配置2. rysnc 同步源服务器2.1 安装 rsync2.2 建立 rsyncd.conf 配置文件2.3 创建数据文件(账号密码)2.4 启动服务2.5 数据配置 3. rysnc 客户端3.1 设置同步方法一方法二 3.2 免交互设置 4. rysnc 认…

17-Linux环境搭建——使用云服务器

目录 1.环境搭建的主要4种方式: 2.使用云服务器 2.1.腾讯云 PS:轻量应用服务器和云服务器的区别 PS:首单特惠 2.2.阿里云 2.3.其他类似 3.使用终端软件连接到 Linux 3.1.什么是终端软件? 3.2.使用 XShell PS&#xff1…

No5.精选前端面试题,享受每天的挑战和学习

文章目录 说一下虚拟dom,结合vue和react白屏问题怎么优化java和javascript的区别Vue3.0和2.0对比,哪些方面更加出色 说一下虚拟dom,结合vue和react 虚拟DOM(Virtual DOM)是JavaScript框架如Vue和React中的一个重要概念…