性能测试怎么做?性能测试步骤指标

news2024/10/5 21:21:20

前言
性能测试的目的是发现系统处理能力的瓶颈而系统调优才是最终的目的,如果能进一步提高各业务服务器、数据库服务器的调优技能,对性能测试工作来说是如虎添翼。

相信我们进行性能测试的时候,都遇到过这样的问题:
1、你的性能测试方案是什么样的?
2、我们现在系统整体性能状况如何?
3、为什么你会设计这样的方案(如并发、迭代、思考时间、各项指标)
4、你设计的这个方案假使过了,能保证生产环境不出问题吗?

准备阶段
必要性分析
分析是否有必要进行性能测试;

被测对象分析
确认被测对象,并根据被测对象性质确认测试方案;

测试技术准备
根据被测对象准备测试技术不同协议测试工具、测试重点及方案是有区别的,例如http接口、rpc、websocket、udp测试技术不同,应根据不同的测试对象准备不同的测试方案

目标评估
评估被测服务性能指标预期结果

峰值QPS
已上线的需求可以按目前线上状态评估,这样最准未上线的需求一种方式可以找类似其它功能,没有相似功能的话可以找类似其它产品无法参照的话可按全量工具评估总请求,平均到秒后再按“帕累托法则(八二法则)”乘以对应系数估算

QPS
大部分单一接口的QPS=HPS,一条请求就是一次query,有少部分需求可能一次Hit有多次Query,需了解具体业务实现

TPS
复杂业务评估指标可使用TPS(每秒处理事务数),常见的情况像一次转账业务可能包含查询、转账、核对等几个连续动作,这种连续动作可称为一次T,TPS经常用来评估逻辑处理的能力和用时;

响应时间
不同产品对响应时间的要求是不相同的,内存处理一般请求的响应时间应该在10ms以内,有数据库读写的情况可能稍长(redis一般是十毫秒级别,mongo稍长,mysql最长,但一般大小的数据也应该在百毫秒级别)超过百毫秒的情况需要确认具体需求,及这类情况占比,响应时间指标一般有下面几种级别;

平均响应时间
总时间/总请求数
TP50:所有请求中处理最快的前50%请求中的最长耗时
TP90:所有请求中处理最快的前90%请求中的最长耗时
TP95:所有请求中处理最快的前95%请求中的最长耗时
TP99:所有请求中处理最快的前99%请求中的最长耗时
TP999:所有请求中处理最快的前99.9%请求中的最长耗时

错误响应数占比
所有请求中非200返回码的请求数占比

超时率
所有请求中超时的请求数占比需在压测工具中定义一个超时时间

被测服务资源占用指标预期
服务器cpu预期
程序有大量运算的情况下cpu可能成为瓶颈,例如dsa加密、大量检索运算;

服务器内存预期
1、程序启动时需要load大量数据到内存;
2、程序运行时需要使用大量内存以增加处理速度(空间换时间)的情况;

存储预期
绝大多数的web服务存储开销都在log等功能需求上,且一般情况log文件会定时传走&清理,这里要注意清理过程是否会存在log积压;

带宽预期
一般过大的静态资源应放在专用的资源服务器上,带宽问题常见于大量数据资讯返回或流媒体服务中;

端口数预期
端口问题常见于长连接服务,和需要作为client端向子服务请求的需求;
常见问题:1、time_wait过多;2、服务阻塞导致端口无法释放;

磁盘io预期
磁盘io问题常见于写log的功能,业务逻辑中需要做磁盘io的需求已经不多了,因为数据在程序启动时会被加载到内存中以提升读写速度;

相关依赖预期评估
依赖后端子服务
处理一个请求时需要向一个或多个后端服务请求资源;

依赖后端DB
处理一个请求时需要做db读写操作;

依赖运行环境,例如K8S集群等
服务运行的环境可能导致性能不满足预期,例如当服务部署在虚机时,需要评估虚机处理能力;如果部署在k8s集群时,需评估宿主机和集群前端proxy处理能力;如请求流包含多个环节时,每个环节都有压力存在;

依赖外部资源,例如CDN服务等
场景:业务逻辑回返回cdn地址,客户端收到地址后直接去cdn获取数据;
这类场景需要对cdn服务的处理能力和带宽预期做评估;

依赖磁盘空间,例如log存储
评估服务日志量大小;

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

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

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

相关文章

Docker+Consul+Registrator 实现服务注册与发现

第四阶段 时 间:2023年8月8日 参加人:全班人员 内 容: DockerConsulRegistrator 实现服务注册与发现 目录 一、服务注册中心引言 CAP理论是分布式架构中重要理论: 二、服务注册中心软件 (一)Zoo…

SpringBoot+MyBatis多数据源配置

1.先在配置文件application.yml中配置好数据源 spring:datasource:type: com.alibaba.druid.pool.DruidDataSourcedb1:driver-class-name: com.mysql.cj.jdbc.Driverusername: rootpassword: rootjdbc-url: jdbc:mysql://192.168.110.128:3306/CampusHelp?useUnicodeyes&…

adb 命令行执行单元测试

文章目录 1、配置 adb 环境变量2、adb 执行测试3、官方文档解读 adb 使用(1)第一条执行测试的adb命令(2)am instrument 参数(3)-e 参数 的 key-value键值对(4)用法用例 4、存在问题 …

【Spring】实现FactoryBean接口

FactoryBean FactoryBean是一个接口,需要创建一个类来实现该接口,该接口中有三个方法,通过重写其中的两个方法,获得一个对象,三个方法分别是: 1.getObject():通过一个对象交给IOC容器管理2.getObjectType(…

【DMA】如何保证 DMA 和 cache 的一致性

一方面,当 CPU 要从cache 读取数据时,会先检查cache是否命中,如果命中就直接返回,此时便不再访问内存;另一方面,DMA 在 向内存写入数据。这样一来就造成了DMA 传输的内容和cache中缓存的内容不一致。 DMA 向…

【ztree应用】基于jquery实现带检索功能的ztree文件夹折叠效果(附源码下载)

文章目录 写在前面涉及知识效果展示1、搭建dom2、引入ztree和jquery3、实现搜索功能及调用4、源码分享1)百度网盘2)123云盘3)邮箱留言 总结 写在前面 前些日子,领导要求做一个关于数据库管理的工具,主要想支持一些批量…

根文件系统制作

1.官网下载工具 制作工具:busybox https://busybox.net/downloads/ 2.制作根文件系统 2.1准备工作 a.把压缩包放在FSP1M目录下,并解压 2.2正式开始 2.2.1配置交叉编译工具链 1. 打开Makefile文件 2. 修改ARCH ?$(SUBARCH) &#xf…

抑郁症与肠道微生物群有何关联

谷禾健康 抑郁症肠道菌群 当一个人面临抑郁症时,一切看似平常的事都会变得很有挑战性。上班、与朋友社交,甚至只是起床都感觉很困难。 抑郁症是如今已是世界上最普遍的精神障碍之一,一直是心理学和医学领域的研究热点。抑郁症是一种需要预防和…

Android监听电量变化广播(动态广播代码)

activity_main.xml中 <?xml version"1.0" encoding"utf-8"?><LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent&quo…

华为云Classroom赋能—TooKit助力开发者上云

对于资深程序员而言&#xff0c;IDE是必不可少的&#xff0c;它好比是剑客手中的宝剑&#xff0c;IDE帮助程序员更快更丝滑的去编程&#xff0c;同时插件就是这把剑上的各种Buff&#xff0c;为宝剑赋能&#xff0c;提供更好的升级打怪体验。 什么是Huawei Cloud Toolkit Huaw…

预测赢家(力扣)dfs + 备忘录 JAVA

给你一个整数数组 nums 。玩家 1 和玩家 2 基于这个数组设计了一个游戏。 玩家 1 和玩家 2 轮流进行自己的回合&#xff0c;玩家 1 先手。开始时&#xff0c;两个玩家的初始分值都是 0 。每一回合&#xff0c;玩家从数组的任意一端取一个数字&#xff08;即&#xff0c;nums[0]…

售价18-25万元:比亚迪海豹DM-i预定价格公布,新一代主流轿车?

比亚迪海豹DM-i&#xff0c;全新一代主流中型轿车&#xff0c;已从7月19日起开始大规模生产。 此款汽车的目标市场是挑战传统中型轿车领域&#xff0c;预计售价区间为18-25万元&#xff0c;并计划于第三季度正式投放市场。官方宣称&#xff0c;这款混合动力轿车是同级别中仅有…

《Zookeeper》源码分析(四)之ServerCnxnFactory的启动过程

目录 ServerCnxnFactory1. 创建ServerCnxnFactory2. 配置属性configure()3. 启动start() ServerCnxnFactory Zookeeper使用ServerCnxnFactory管理与客户端的连接&#xff0c;服务端每与一个客户端就会创建一个ServerCnxn实例并由ServerCnxnFactory管理&#xff0c;ServerCnxnF…

SAP MM学习笔记15-物料调达中的Master数据(3)-购买情报

SAP中做一个购买发注的时候&#xff0c;涉及到以下Master数据&#xff1a; 1&#xff0c;仕入先Master&#xff08;供应商&#xff09;&#xff1a;跟谁买 2&#xff0c;品目Master&#xff08;物料&#xff09;&#xff1a;买什么 3&#xff0c;购买情报&#xff1a;什么价…

[C++项目] Boost文档 站内搜索引擎(5): cpphttplib实现网络服务、html页面实现、服务器部署...

在前四篇文章中, 我们实现了从文档文件的清理 到 搜索的所有内容: 项目背景: &#x1fae6;[C项目] Boost文档 站内搜索引擎(1): 项目背景介绍、相关技术栈、相关概念介绍…文档解析、处理模块parser的实现: &#x1fae6;[C项目] Boost文档 站内搜索引擎(2): 文档文本解析模块…

【使用基于二阶积分器的结构生成正交信号】基频共振而无延迟地滤波信号的正交信号生成模块,为单相系统创建 α/β 信号(Simulink实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Nacos本地部署-开发使用

有些项目&#xff0c;需要在本地启动nacos&#xff0c;否则会与其他开发人员产生冲突&#xff0c;这里是写给该场景下的开发人员使用的文档 一、如何本地部署和使用 Nacos 1.下载编译后的压缩包 可以在 github 上 Nacos Release 版本列表中下载最新的稳定版本。地址&#xf…

用Shap-E生成3D模型

Shap-E 是 OpenAI 开发的突破性模型&#xff0c;它使用文本或图像作为输入生成一系列 3D 对象&#xff0c;以其创新方法改变了 3D 应用领域。 这项非凡的技术可以在 GitHub 上免费获取&#xff0c;允许用户在计算机上无缝运行它&#xff0c;而无需 OpenAI API 密钥或互联网连接…

AAAI论文阅读

文章目录 Open-Vocabulary Multi-Label Classifcation via Multi-Modal Knowledge Transfer——知识蒸馏的范畴Med-EASi: Finely Annotated Dataset and Models for Controllable Simplifcation of Medical Texts——医学领域数据集构建“Nothing Abnormal”: Disambiguating M…

测试数据不会造?可以用这个工具Faker

在测试过程中&#xff0c;大家应该都遇到过各种各样的数据构造问题。e.g. 构造一批通讯录、构造一批用户三要素(姓名手机号身份证)、构造一批银行卡数据…… 这时候&#xff0c;测试数据大多数可能是这样的: 张三, 130 0000 0001 李四, 130 0000 0002 王五, 130 0000 0003 …