【性能测试】一、哪那么多概念,不就是这一条吗?

简介: 【性能测试】一、哪那么多概念,不就是这一条吗?

网上一搜性能测试,就会出现很多诸如性能测试、负载测试、压力测试、强度测试等一堆专有名词的解释。


但实际上我们不需要区分这么多。


那什么是性能测试?


高楼老师在[性能测试实战30讲]中给出了一个定义,我觉得参考价值很大。


性能测试针对系统的性能指标,建立性能测试模型,制定性能测试方案,制定监控策略,在场景条件之下执行性能场景,分析判断性能瓶颈并调优,最终得出性能结果来评估系统的性能指标是否满足既定值


这个定义,其实也就是一个完整的性能测试流程了。


为什么要弄清楚?因为这些概念要抹平沟通的误解,让不同层级,不同角色的人,可以在同样的知识背景下沟通,也可以让做事情的人有清晰的逻辑思路。


1268169-20210713232008617-1292086499.png


一、性能测试需要有指标


指标这个东东通常在很多公司并没有明确的定义。可能老板随口一句“把系统压挂”,下面人就得开始张罗了。但是这个“把系统压挂”其实就是一种指标。


通常来说,有三种指标:时间指标容量指标资源利用率指标,具体这里先不展开。


二、性能测试需要有模型


模型,可以理解为场景。


比如说,要对一个返回广告的接口进行性能测试。那么用户进入首页之后,可能有50%的人会点击 banner 位广告,30%的人会点击中部位的广告,最后20%的人会点击侧边框广告。


那么,你基于这样的一个模型,在施加压力的时候就需要控制好比例。这些业务数据,通常来说是有渠道可以获得的。


三、性能测试要有方案


需要确定性能测试方案,以便指导后续的工作。


通常来说,内容如下:


  • 测试环境
  • 测试数据
  • 测试模型
  • 性能指标
  • 压力策略
  • 准入准出
  • 进度风险


其中每一项内容的细化程度,要具体参考项目需要。


四、性能测试中要有监控


关于监控:


  • 分层、分段
  • 全局监控、定向监控


具体这里先不展开。


五、性能测试要有预定的条件


在测试场景执行之前,通常要确定如下的条件:


  • 软、硬件环境
  • 测试数据
  • 测试执行策略
  • 压力补偿


六、性能测试中要有场景


场景:在既定的环境(包括动态扩展等策略)、既定的数据(包括场景执行中的数据变化)、既定的执行策略、既定的监控之下,执行性能脚本,同时观察系统各层级的性能状态参数变化,并实时判断分析场景是否符合预期。


性能场景也要有分类,通常逃不出如下四大类


1. 基准性能场景


这里要做的是单交易的容量,为混合容量做准备


2. 容量性能场景


是最核心的性能执行部分。根据业务复杂度的不同,这部分的场景会设计出很多个


3. 稳定性性能场景


最核心的元素是时间,而时间的设置应该来自于运维周期,而不是来自于老板、产品和架构等这些人的“拍脑袋”。


4. 异常性能场景


要做异常性能场景,前提就是要有压力。在压力流量之下,模拟异常。


那需要哪些异常?这也是要明确定义出来的。比如有宕主机、宕应用、宕网卡、宕容器、宕缓存、宕队列、宕流量控制、宕熔断等等。


总之,实际的场景中需要模拟什么异常,不是拍脑袋决定的,而是根据系统的业务架构和部署架构分析来的,不是看到有什么都宕一下


另外,关于场景下对应的测试用例,不仅要描述测试脚本和测试数据,而且要描述需要哪些实时的判断和动态的分析,否则会影响性能结果


七、性能测试中要有分析调优


相信有很多跟我一样的测试工程师,在进行性能测试的时候,其实也仅仅做的是性能验证,很少有进行分析调优,因为很难(o(╥﹏╥)o)。


但是,分析调优才是一个更能体现性能测试价值的重要元素。


八、性能测试肯定要有结果报告


结果报告是性能测试活动的价值内容体现,自然要展示领导关心的内容,比如调优前后的 TPS、响应时间以及资源对比。相比较而言,用了多少人,花了多少时间可以往后放一放。


九、总结


一图流。


1268169-20210713233816756-577226891.png

相关文章
|
Java 测试技术 Maven
JAVA单元测试概念与实战
单元测试是软件开发中的一个测试方法,用于验证软件代码中最小的、独立的单元是否按照预期工作。在Java中,这通常指的是单个的方法或者一个类的个别功能。单元测试的目的是隔离代码的每个部分,并确保各个部分是正确的。
202 4
|
jenkins 测试技术 持续交付
软件测试:基础概念
软件测试:基础概念
258 0
|
消息中间件 分布式计算 大数据
大数据-123 - Flink 并行度 相关概念 全局、作业、算子、Slot并行度 Flink并行度设置与测试
大数据-123 - Flink 并行度 相关概念 全局、作业、算子、Slot并行度 Flink并行度设置与测试
489 0
|
测试技术 API 数据库
性能测试概念
**性能测试评估系统在负载下的表现,关注响应时间、吞吐量、并发用户数和资源利用率。关键指标包括RT、HPS、TPS、QPS、RPS等。并发数可由QPS和平均响应时间计算。提升压力的技术手段涉及多进程、多线程,各有优劣。P90、P95、P99等分位数用于描述数据分布,揭示不同负载场景下的系统性能。**
|
测试技术 网络安全
什么是软件测试? 软件测试都有什么岗位 ?软件测试和调试的区别? 软件测试和开发的区别? 一位优秀的测试人员应该具备哪些素质? 软件测试等相关概念入门篇
文章全面介绍了软件测试的基本概念、目的、岗位分类、与开发和调试的区别,并阐述了成为优秀测试人员应具备的素质和技能。
1359 1
什么是软件测试? 软件测试都有什么岗位 ?软件测试和调试的区别? 软件测试和开发的区别? 一位优秀的测试人员应该具备哪些素质? 软件测试等相关概念入门篇
|
测试技术 UED
PTS压测问题之资源准备好慢如何解决
PTS(Performance Testing Service)是一项面向网站、应用等提供的压力测试服务,用于模拟不同场景下的用户访问,评估系统的性能表现;在进行PTS压测时,可能会出现一些异常或报错,本合集将PTS压测中频繁出现的问题及其解决办法进行汇编,旨在帮助用户更有效地进行性能测试和问题定位。
363 1
|
分布式计算 Hadoop Unix
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
212 1
|
前端开发 测试技术 程序员
在工作中会涉及到的几个环境(概念补充) 办公环境、开发环境、测试环境、线下环境、线上环境/生产环境都是什么,他们之间的关系?
本文解释了在职场中可能会接触到的不同环境,包括办公环境、开发环境、测试环境和生产环境(线上环境),以及它们之间的关系和重要性。
462 1
|
Kubernetes 监控 Java
发布策略:蓝绿部署、金丝雀发布(灰度发布)、AB测试、滚动发布、红黑部署的概念与区别
发布策略:蓝绿部署、金丝雀发布(灰度发布)、AB测试、滚动发布、红黑部署的概念与区别
2750 1