性能测试开始前的需求调研

news/2024/5/9 12:48:51/文章来源:https://blog.csdn.net/wqda125/article/details/130389773

之前的博客聊聊性能测试开始前的准备工作,聊了一些关于性能测试开始前要做的准备工作。这篇博客,来谈谈性能测试开始前的需求调研阶段,我们要做什么,关注那些Point。。。

一、基本信息

信息类型说明
项目名称项目归属的业务线,项目名称
项目类型新建、迭代、重构。。。
项目背景因为什么原因,需要进行性能测试
测试目的进行性能测试的目的:容量规划、性能验证或者其他原因
测试范围被测系统业务模块,属于什么业务,有什么特点
里程碑设立此次性能测试的里程碑,即不同阶段的达成以什么为结束标志,比如:测试方案、环境准备、测试实施等
影响因素要实施此次性能测试,有哪些潜在问题,影响因素

二、环境信息

信息类型说明
系统架构图/网络拓扑图通过系统架构图/网络拓扑图,可以快速直观的了解到系统的结构,数据流
部署方式/部署层级集群、分布式、微服务/web、app、db层
性能测试环境PAT、UAT、SIT不同环境对测试结果的影响不同
被测系统环境的软硬件配置比如服务器是几核几G,有多少台;数据库是几核几G,有多少台
关键参数线程池、最大连接数、消费者数量、内存分配等
网络负载机和被测系统的网段、防火墙策略、带宽、CDN等
特殊因素是否存在某些特殊因素,会影响测试结果

三、应用信息

信息类型说明
业务模型比如支付类业务、批量审核或提交、库存业务、查询业务等
业务场景什么时间什么用户做什么操作
协议/接口HTTP、Socket、Dubbo。。。
连接方式长连接、短连接
通信策略同步、异步
变更策略参数的加解密、拼接、动态变化、依赖关系等

四、性能指标

指标类型说明
user包括注册用户数、在线用户数、并发用户数等
TPS每秒事务数,包括服务端和数据库
RT包括ART、%RT、MaxRT、MinRT
吞吐量吞吐量在一定程度上可以用来衡量系统的容量
交易量日/月/某个时间段内的交易量,可更好的衡量系统的容量和存在的压力
交易成功率即事务成功率、请求成功率,根据具体需求设定阈值,一般要求99.99%甚至更细的粒度
资源使用率包括CPU%、Memory%、I/O速率等
可扩展性随着并发数的上升,系统的性能表现是否会正比例线性增长

五、测试数据

数据信息说明
限制条件用户操作权限、数据引用次数、数据过期设定(次数、绝对时间)
数据量实际生产环境的数据量为多少,在性能测试环境如何等量代换
数据类型基础数据、测试数据、特殊数据
数据特点是否可以复用、是否具有唯一性、自增、加密、拼接、转义等
准备方式copy真实环境数据、预埋铺底数据、脚本脱敏生成数据
隔离方案如何避免测试数据的污染?分库分表?环境隔离?标记区分?

六、配置参数

参数类型说明
测试环境性能测试环境是否和生产环境保持一致的配置?如不能,如何解决或等量代换?
操作系统操作系统的版本、超时设置、内存空间等
软硬件版本尽可能保证和生产环境一致的版本
中间件比如JVM的内存分配/GC算法、Tomcat连接数/超时时间、MQ的消费者数量等

七、测试模型

模型~交易量说明
交易占比测试交易笔数占总业务量的比例(可忽略占比很少的交易数据)
选取思路①、选取交易量最高的时间段;②、每种交易进行单独的数据统计
异常选择①、如果各时段的交易比例类似,则可按照生产的配比进行转化;②、如比例差距大,则独立统计
交易配比单交易统计后,基于各交易的RT,结合并发用户数,使总交易数达到交易占比数
ThinkTime根据各交易类型和具体场景,选择ThinkTime是统一设定/随机设定/按实际场景设定

以上即为性能测试需求调研阶段,我们要做的事情和关注的Point,仅供参考。。。

这里为你准备了200G软件测试教程9资料,包括用例模板、计划模板、报告模板、性能调优、自
动化教程、测开模板、简历模板、面试技巧、大厂真题等!点击下方自行获取:

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

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

相关文章

Python制作一个自动发送弹幕的工具,让你看直播不冷场

前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 让我们先看看效果: 名字我就打码了,当然名字不是关键,我直接截图展示算了,GIF的话,太麻烦了。 环境使用: Python 3.8 / 编译器 Pycharm 2021.2版本 / 编辑器…

【Micropython】ESP8266通过NTP同步本地RTC时间

【Micropython】ESP8266通过NTP同步本地RTC时间 📌相关篇《【MicroPython esp8266】固件烧写教程》✨本案例基于Thonny平台开发。✨ 📋实时时钟 (RTC) 🔖RTC属于machine模块中的子类。 datetime([value]): 获取或设置当前时间。如果没有指定…

JS类的学习

文章目录 一、JavaScript 类(class)二、JavaScript 类继承三、 JavaScript 静态方法总结 一、JavaScript 类(class) 类是用于创建对象的模板。 我们使用 class 关键字来创建一个类,类体在一对大括号 {} 中,我们可以在大括号 {} 中定义类成员的位置&…

Python小姿势 - Python操作MongoDB数据库

Python操作MongoDB数据库 MongoDB是一个基于分布式文件存储的数据库。由C语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。 现在&a…

Tomcat源码:Pipeline与Valve

参考资料: 《Tomcat组成与工作原理》 《Tomcat - Container的管道机制:责任链模式》 《Tomcat源码解析系列 Pipeline 与 Valve》 前文: 《Tomcat源码:启动类Bootstrap与Catalina的加载》 《Tomcat源码:容器的生命…

Linux安装miniconda3

下载Miniconda(Python3版本) 下载地址:https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh 安装Miniconda(需要连网) (1)将Miniconda3-latest-Linux-x86_64.sh上传到/o…

ASP.NET Core MVC 从入门到精通之Razor语法

随着技术的发展,ASP.NET Core MVC也推出了好长时间,经过不断的版本更新迭代,已经越来越完善,本系列文章主要讲解ASP.NET Core MVC开发B/S系统过程中所涉及到的相关内容,适用于初学者,在校毕业生&#xff0c…

Go语言基础----Go语言简介

【原文链接】Go语言基础----Go语言简介 一、Go语言简介 Go语言,又称Golang,是Google公司的Robert Griesemer,Rob Pike 及 Ken Thompson开发的一种静态强类型、编译型的语言。Go语言语法和C语言接近,但是功能上内存安全&#xff…

Day2_vue集成elementUI完善布局

上一节,实现了从O到vue页面主体框架的搭建,这一节补充完善搜索框;新增、删除、导入、导出等按钮;表格设置;分页;面包屑的实现! 目录 搜索框 新增删除、导入、导出按钮 表格设置 设置边框&a…

AI剧本拆解,教你利用AI快速拆解剧本

AI剧本拆解是一项将影视、戏剧等剧本进行分析和优化的技术,可以帮助制作团队更好地规划角色、情节、场景等元素,并提升作品的艺术水平和观赏体验。 1、为什么要拆解剧本? 剧本拆解是制片人和导演的第一项工作,把剧本中各项要素分…

AI 编程

GitHub Copilot(收费) 开发者:微软 openAI 2022年8月22日之后开始收费,10美元/月,100美元/年。 CodeGeeX(免费) CodeGeeX 可以根据自然语言注释描述(支持中英文注释&#xff09…

flask+apscheduler+企业微信消息机器人推送

简介:APScheduler是一个轻量级的Python库,用于在后台运行定时任务和延迟任务。它可以轻松地安排任务并支持多种类型的触发器,例如固定间隔、日期/时间表达式、CRON表达式等。APScheduler还提供了多个后台调度器实现,例如基于线程池…

Qt连接MySQL数据库最详细的教程

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1.直接通过MySQL的驱动加载数据库1)所需代码2)解决QMYSQL driver not loaded 2.通过ODBC连接MySQL数据库1)官方解释2…

taro之项目初始化模版

项目初始化模板 一直以来,在使用 Taro CLI 的 taro init 命令创建项目时,CLI 会提供若干内置模板给开发者选择。但是很多团队都有自己独特的业务场景,需要使用和维护的模板也不尽一致,因此 Taro 支持把项目模板打包成一个能力赋予…

《Netty》从零开始学netty源码(四十四)之PoolChunk释放内存

free 当PoolChunk需要释放内存空间时可调用free方法,具体的源码过程如下: 在这个过程中最重要的是第三步的collapseRuns方法,当释放了空间以后要更新runsAvail和runAvailsMap的信息,如果handle对应的内存空间的上边界以及下边界是…

任务调度原理 通俗详解(FreeRTOS)

寄存器说明 以cortex-M3,首先先要了解比较特别的几个寄存器: r15 PC程序计数器(Program Counter),存储下一条要执行的指令的地址。 r14 LR连接寄存器(Link Register ),保存函数返回地址&#x…

代码随想录算法训练营第四十三天|1049. 最后一块石头的重量 II 、494. 目标和、474.一和零

文章目录 背包问题题型1049. 最后一块石头的重量 II494. 目标和474.一和零 背包问题题型 等和子集 —0-1背包能否装满最后一块石头—0-1背包尽量装满目标和—0-1背包装满,且有多少种装的方式(组合问题) 1049. 最后一块石头的重量 II 题目链…

从数据处理到人工智能(常用库的介绍)

Python库之数据分析 ​​​​​​​​​​​​ 可以这么理解pandas通过扩展了对一维数据和二维数据的一种表示,因而能够形成更高层对数据的操作,简化数据分析的运行 Python库之数据可视化 Matplotlib — Visualization with Python seaborn: statistic…

C++ 编程笔记(本人出品,必属精品)

文章目录 Part.I IntroductionChap.I 快应用 Part.II C 基础Chap.I 一些待整理的知识点Chap.I 常用的库或类 Part.III 杂记Part.X Others WorkChap.I 大佬的总结Chap.II 大佬的轮子 Part.I Introduction 前言:C 用的人还是比较多的,主要是它比较快并且面…

不是什么高深玩意,Arrays.asList、ArrayList.subList需要注意的坑

前言 集合是日常工作中几乎每天都在用的玩意,也是八股文中被翻烂的东西,诸如List、Map,确实很重要也很实用,但是不注意细节就比较容易踩坑。比较常见的就是今天要整理的Arrays.asList和ArrayList.subList。不是什么高深的东西&…