热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

性能测试_聊一聊性能测试指标

篇首语:本文由编程笔记#小编为大家整理,主要介绍了聊一聊性能测试指标相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了聊一聊性能测试指标相关的知识,希望对你有一定的参考价值。




















聊一聊性能测试指标














聊一聊性能测试指标






















前言






























上文说到了性能测试就是在功能测试通过的前提下,通过合理的加压方式及策略对系统进行性能测试,在这过程中监控并收集服务端应用程序的各项性能指标以及硬件资源使用情况(硬件资源包含了服务端及测试端)来评估系统是否存在性能问题。




本章作为性能测试系列更新的第二章,主要介绍下在服务端性能测试中常见的性能指标。




在说之前,先推一篇在刚接触性能测试时觉得不错的性能测试基础随笔:https://www.cnblogs.com/puresoul/p/5456855.html。testing写的第二系列也相当于是借鉴了这篇文章吧!




聊一聊性能测试指标






















性能测试指标






















不同群体性能










不同的群体由于视角的不同,关注的侧重点也不同。比如系统的用户只关心系统的一个响应速度及稳定性;而系统的开发者可能会更注重系统的架构、数据库的设计、代码是否存在性能问题、代码是否可以进一步的优化、代码的扩展性等问题;运维可能更关心服务器的一个资源情况、系统的上限(最大处理量)、系统存在那些瓶颈、怎么可以提升系统性能等。说到这里,可以看出,因为身处位置的不同,所以看待问题的方式也不一样,不同的群体关心的性能指标也不一样。






那么,在性能指标这方面,测试又该关心那些指标呢?






测试人员通常是作为软件质量控制的一个角色,不仅仅是找bug,需要对整个软件的质量负责,性能也属于质量的一部分,因此测试人员眼中的性能应该是全面的,考虑的东西也需要全面。


1、测试人员需要考虑全面的性能,包括用户、开发、管理员等各个视角的性能。


2、测试人员在做性能测试时除开要关注表面的现象如响应时间,也需要关注本质,比如用户看不到的服务器资料利用率,架构设计是否合理?代码是否合理等言方方面面。






说到这里,后面可能会更新一篇针对软件测试工程师的职责的文章。下面来看看软件测试工程师常关注的性能测试指标!




聊一聊性能测试指标
















性能测试分类











从性能测试分析度量的度角来看,可以分几个维度来收集考察各项性能指标。


1.系统性能指标


2.资源性能指标



3.中间件指标


4.数据库指标


5.稳定性指标


6.可扩展性指标



7.可靠性指标






下面分别介绍这几个维度的常见指标、指标含义及参考标准等方面,下述部分介绍及业内参考标准取自于百度百科。



聊一聊性能测试指标
















资源性能指标










聊一聊性能测试指标


资源性能指标




聊一聊性能测试指标











一般常见的资源性能指标有:CPU、内存、磁盘吞吐量、网络吞吐量。



聊一聊性能测试指标












聊一聊性能测试指标


CPU




聊一聊性能测试指标











介绍:CPU也叫中央处理器,作为计算机系统的运算核心和控制核心,是信息处理、程序运行的最终执行单元。cpu是计算机内的电子电路,通过执行由指令指定的基本算术、逻辑、控制和输入/输出操作来执行计算机程序的指令。






参考标准:CPU指标主要指的CPU利用率,包括用户态(user)、系统态(sys)、等待态(wait)、空闲态(idle)。



1.CPU利用率要低于业界警戒值范围之内,即小于或者等于75%



2.CPU sys%小于或者等于30%



3.CPU wait%小于或者等于5%




聊一聊性能测试指标












聊一聊性能测试指标


内存




聊一聊性能测试指标











介绍:内存是计算机中重要的部件之一,它是外存与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。内存(Memory)也被称为内存储器和主存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。






参考标准:现在的操作系统为了最大利用内存,在内存中存放了缓存,因此内存利用率100%并不代表内存有瓶颈,衡量系统内存是否有瓶颈主要靠SWAP(与虚拟内存交换)交换空间利用率,一般情况下,SWAP交换空间利用率要低于70%,太多的交换将会引起系统性能低下。



聊一聊性能测试指标












聊一聊性能测试指标


磁盘吞吐量




聊一聊性能测试指标











介绍:磁盘吞吐量简称为Disk Throughput,是指在无磁盘故障的情况下单位时间内通过磁盘的数据量。






参考标准:磁盘指标主要有每秒读写多少兆,磁盘繁忙率,磁盘队列数,平均服务时间,平均等待时间,空间利用率。其中磁盘繁忙率是直接反映磁盘是否有瓶颈的的重要依据,一般情况下,磁盘繁忙率要低于70%。



聊一聊性能测试指标














聊一聊性能测试指标


网络吞吐量




聊一聊性能测试指标













介绍:网络吞吐量简称为Network Throughput,是指在无网络故障的情况下单位时间内通过的网络的数据数量。单位为Byte/s。网络吞吐量指标用于衡量系统对于网络设备或链路传输能力的需求。当网络吞吐量指标接近网络设备或链路最大传输能力时,则需要考虑升级网络设备。






参考标准:网络吞吐量指标主要有每秒有多少兆流量进出,一般情况下不能超过设备或链路最大传输能力的70%。



聊一聊性能测试指标
















系统性能指标











一般常见的系统性能指标有:响应时间、系统处理能力、吞吐量、并发用户数、错误率。下面部分介绍及业内参考标准取自于百度百科。



聊一聊性能测试指标














聊一聊性能测试指标 


响应时间




聊一聊性能测试指标 















介绍:响应时间,简称RT。是指系统对请求作出响应的时间,可以理解为是指用户从客户端发起一个请求开始,到客户端接收到从服务器端返回的响应结束,整个过程所耗费的时间。直观上看,这个指标与人对软件性能的主观感受是非常一致的,因为它完整地记录了整个计算机系统处理请求的时间。






在性能检测中一般以压力发起端至被压测服务器返回处理结果的时间为计量,单位一般为秒或毫秒,由于一个系统通常会提供许多功能,而不同功能的处理逻辑也千差万别,因而不同功能的响应时间也不尽相同,甚至同一功能在不同输入数据的情况下响应时间也不相同。所以,在讨论一个系统的响应时间时,通常是指该系统所有功能的平均时间或者所有功能的最大响应时间。




参考标准:不同行业不同业务可接受的响应时间是不同的,一般情况,对于在线实时交易的系统:


  • 互联网企业:500毫秒以下,例如淘宝业务10毫秒左右。


  • 金融企业:1秒以下为佳,部分复杂业务3秒以下。


  • 保险企业:3秒以下为佳。


  • 制造业:5秒以下为佳。


  • 时间窗口:不同数据量结果是不一样的,大数据量的情况下,2小时内完成。





聊一聊性能测试指标








这里需要注意的是,响应时间的绝对值并不能直接反映软件性能的高低,它取决于用户对该响应时间的接受程度。








聊一聊性能测试指标 


系统处理能力




聊一聊性能测试指标 











介绍:系统处理能力是指系统在利用系统硬件平台和软件平台进行信息处理的能力。系统处理能力通过系统每秒钟能够处理的交易数量来评价,交易有两种理解:一是业务人员角度的一笔业务过程;二是系统角度的一次交易申请和响应过程。前者称为业务交易过程,后者称为事务。两种交易指标都可以评价应用系统的处理能力。




一般情况下,系统处理能力又用以下几个指标来度量:


  • HPS(Hits Per Second):每秒点击次数,单位是次/秒。


  • TPS(Transaction per Second):系统每秒处理交易数,单位是笔/秒。


  • QPS(Query per Second):系统每秒处理查询次数,单位是次/秒。





在互联网业务中,如果某些业务有且仅有一个请求连接,那么TPS=QPS=HPS,一般情况下用TPS来衡量整个业务流程,用QPS来衡量接口查询次数,用HPS来表示对服务器点击请求。






        参考标准:无论TPS、QPS、HPS,此指标是衡量系统处理能力非常重要的指标,越大越好一般情况下:





  • 金融行业:1000TPS~50000TPS,不包括互联网化的活动



  • 保险行业:100TPS~100000TPS,不包括互联网化的活动



  • 制造行业:10TPS~5000TPS



  • 互联网电子商务:10000TPS~1000000TPS



  • 互联网中型网站:1000TPS~50000TPS



  • 互联网小型网站: 500TPS~10000TPS









聊一聊性能测试指标












聊一聊性能测试指标 


吞吐量




聊一聊性能测试指标 











介绍:吞吐量是指系统在单位时间内处理请求的数量。






对于单用户的系统,响应时间可以很好地度量系统的性能,但对于并发系统,通常需要用吞吐量作为性能指标。






对于一个多用户的系统,如果只有一个用户使用时系统的平均响应时间是t,当有你n个用户使用时,每个用户看到的响应时间通常并不是n×t,而往往比n×t小很多(当然,在某些特殊情况下也可能比n×t大,甚至大很多)。一般而言,吞吐量是一个比较通用的指标,两个具有不同用户数和用户使用模式的系统,如果其最大吞吐量基本一致,则可以判断两个系统的处理能力基本一致。



聊一聊性能测试指标










聊一聊性能测试指标 


并发用户数




聊一聊性能测试指标 











介绍:并发用户数指在同一时刻内,登录系统并进行业务操作的用户数量。






并发用户数对于长连接系统来说最大并发用户数即是系统的并发接入能力。对于短连接系统而言最大并发用户数并不等于系统的并发接入能力,而是与系统架构、系统处理能力等各种情况相关。






与吞吐量相比,并发用户数是一个更直观但也更笼统的性能指标。实际上,并发用户数是一个非常不准确的指标,因为用户不同的使用模式会导致不同用户在单位时间发出不同数量的请求。






除了用户并发数还有在线用户数和系统用户数,一般三者的关系是:系统用户数 >= 在线用户数 >= 并发用户数



聊一聊性能测试指标












聊一聊性能测试指标 


错误率




聊一聊性能测试指标 











介绍:错误率简称FR,指系统在负载情况下,失败交易的概率。错误率=(失败交易数/交易总数)*100%。






参考标准:不同系统对错误率的要求不同,但一般不超出千分之六,即成功率不低于99.4%



聊一聊性能测试指标












中间间指标











常用的中间件例如Tomcat、Weblogic等,指标主要包括JVM、ThreadPool、JDBC。这个有兴趣的可以百度下。testing百度了一张图片,具体的如下:





聊一聊性能测试指标







参考标准:
当前正在运行的线程数不能超过设定的最大值。一般情况下系统性能较好的情况下,线程数最小值设置50和最大值设置200比较合适。


当前运行的JDBC连接数不能超过设定的最大值。一般情况下系统性能较好的情况下,JDBC最小值设置50和最大值设置200比较合适。


GC频率不能频繁,特别是FULL GC更不能频繁,一般情况下系统性能较好的情况下,JVM最小堆大小和最大堆大小分别设置1024M比较合适。



聊一聊性能测试指标










数据库指标











常用的数据库例如MySQL指标主要包括SQL、吞吐量、缓存命中率、连接数等,这个有兴趣的也可以百度下。testing百度了一张图片,具体如下:





聊一聊性能测试指标










参考标准:



  • SQL耗时越小越好,一般情况下毫米、微秒级别。


  • 命中率越高越好,一般情况下不能低于95%。


  • 锁等待次数越低越好,等待时间越短越好。





聊一聊性能测试指标
















稳定性指标













聊一聊性能测试指标




聊一聊性能测试指标












可扩展性指标













聊一聊性能测试指标




聊一聊性能测试指标












可靠性指标











对于服务端性能测试,从系统可靠性指标度量分析时,常见从三类来入手:






  • 双机热备


  • 集群


  • 备份和恢复





聊一聊性能测试指标












聊一聊性能测试指标 


双机备热




聊一聊性能测试指标 











对于将双机热备作为可靠性保障手段的系统,可衡量的指标如下:






  • 节点切换是否成功及其消耗时间。


  • 双机切换是否有业务中断。


  • 节点回切是否成功及其耗时。


  • 双机回切是否有业务中断。


  • 节点回切过程中的数据丢失量在进行双机切换的同时,使用压力发生工具模拟实际业务发生情况,对应用保持一定的性能压力,保证测试结果符合生产实际情况。









聊一聊性能测试指标












聊一聊性能测试指标 


集群




聊一聊性能测试指标 











对于使用集群方式的系统,主要通过以下方式考量其集群可靠性:






  • 集群中某个节点出现故障时,系统是否有业务中断情况出现


  • 在集群中新增一个节点时,是否需要重启系统


  • 当故障节点恢复后,加入集群,是否需要重启系统


  • 当故障节点恢复后,加入集群,系统是否有业务中断情况出现


  • 节点切换需要多长时间在验证集群可靠性的同时,需根据具体情况使用压力工具模拟实际业务发生相关情况,对应用保持一定的性能压力,确保测试结果符合生产实际情况。





聊一聊性能测试指标












聊一聊性能测试指标 


备份和恢复




聊一聊性能测试指标 











本指标为了验证系统的备份/恢复机制是否有效可靠,包括系统的备份和恢复、数据库的备份和恢复、应用的备份和恢复,包括以下测试内容:






  • 备份是否成功及其消耗时间。


  • 备份是否使用脚本自动化完成。


  • 恢复是否成功及其消耗时间。


  • 恢复是否使用脚本自动化完成指标体系的运用原则。


  • 指标项的采用和考察取决于对相应系统的测试目的和测试需求。被测系统不一样,测试目的不一样,测试需求也不一样,考察的指标项也有很大差别。


  • 部分系统涉及额外的前端用户接入能力的,需要考察用户接入并发能力指标。


  • 对于批量处理过程的性能验证,主要考虑批量处理效率并估算批量处理时间窗口。


  • 如测试目标涉及到系统性能容量,测试需求中应根据相关指标项的定义,明确描述性能指标需求。


  • 测试指标获取后,需说明相关的前提条件(如多少的业务量、系统资源情况等)。









聊一聊性能测试指标














结语















好了,第二篇文章到此结束,这篇文章写的稍微费力点。为了尽可能的写详细点,上述文章有些东西testing也是临时百度copy的,testing也顺便涨了一波见识。上面提到的后三个指标testing也没有具体了解过,大多数公司在开展性能测试的时候应该会很少涉及到这几个点,但这几个点从产品整体性能和质量来讲,又是不得不关注的点,这里算是给大家提供一些测试思路吧,有兴趣的可以百度了解了解。


朋友们看完后也可以看看前言testing说的那个随手博客。如果有问题可以联系testing或者评论区留言哦~















推荐阅读
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • PostgreSQL 最新动态 —— 2022年4月6日
    了解 PostgreSQL 社区的最新进展和技术分享 ... [详细]
  • ElasticSearch 集群监控与优化
    本文详细介绍了如何有效地监控 ElasticSearch 集群,涵盖了关键性能指标、集群健康状况、统计信息以及内存和垃圾回收的监控方法。 ... [详细]
  • 本文深入探讨了MySQL中常见的面试问题,包括事务隔离级别、存储引擎选择、索引结构及优化等关键知识点。通过详细解析,帮助读者在面对BAT等大厂面试时更加从容。 ... [详细]
  • 深入剖析JVM垃圾回收机制
    本文详细探讨了Java虚拟机(JVM)中的垃圾回收机制,包括其意义、对象判定方法、引用类型、常见垃圾收集算法以及各种垃圾收集器的特点和工作原理。通过理解这些内容,开发人员可以更好地优化内存管理和程序性能。 ... [详细]
  • 本文将详细介绍多个流行的 Android 视频处理开源框架,包括 ijkplayer、FFmpeg、Vitamio、ExoPlayer 等。每个框架都有其独特的优势和应用场景,帮助开发者更高效地进行视频处理和播放。 ... [详细]
  • 优化Flask应用的并发处理:解决Mysql连接过多问题
    本文探讨了在Flask应用中通过优化后端架构来应对高并发请求,特别是针对Mysql 'too many connections' 错误的解决方案。我们将介绍如何利用Redis缓存、Gunicorn多进程和Celery异步任务队列来提升系统的性能和稳定性。 ... [详细]
  • 深入解析BookKeeper的设计与应用场景
    本文介绍了由Yahoo在2009年开发并于2011年开源的BookKeeper技术。BookKeeper是一种高效且可靠的日志流存储解决方案,广泛应用于需要高性能和强数据持久性的场景。 ... [详细]
  • Java项目分层架构设计与实践
    本文探讨了Java项目中应用分层的最佳实践,不仅介绍了常见的三层架构(Controller、Service、DAO),还深入分析了各层的职责划分及优化建议。通过合理的分层设计,可以提高代码的可维护性、扩展性和团队协作效率。 ... [详细]
  • HTML基础入门指南
    本文将深入浅出地介绍HTML的基础知识,包括其定义、开发工具、制定机构、特性、基本标签及更多实用内容。 ... [详细]
  • 在安装 SQL Server 时,选择混合验证模式可以提供更高的灵活性和管理便利性。如果您已经安装了 SQL Server 并使用单一的 Windows 身份验证模式,可以通过以下步骤将其更改为混合验证模式。 ... [详细]
  • 本文详细阐述了云主机流量的概念,探讨其对网站性能和安全的关键影响,并提供了优化配置的实用建议。 ... [详细]
  • 本文详细探讨了Java中的ClassLoader类加载器的工作原理,包括其如何将class文件加载至JVM中,以及JVM启动时的动态加载策略。文章还介绍了JVM内置的三种类加载器及其工作方式,并解释了类加载器的继承关系和双亲委托机制。 ... [详细]
  • 2017-2018年度《网络编程与安全》第五次实验报告
    本报告详细记录了2017-2018学年《网络编程与安全》课程第五次实验的具体内容、实验过程、遇到的问题及解决方案。 ... [详细]
  • 本文详细探讨了Java中Volatile关键字的工作原理、优化技巧及其在实际开发中的应用场景,特别是在提高多线程环境下数据可见性和减少锁竞争方面的优势。 ... [详细]
author-avatar
手机用户2502941585_336
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有