pc性能指标有哪些和pc功能指标、可靠性指标、兼容性指标有何不同

软件性能测试中的性能指标有哪些和实施方法  

各种软件在系统实施过程中需要满足客户的一些特殊要求。如果软件系统没有经过测试和优化软件系统将无法满足鼡户的需求,还会给软件在实际应用中带来很大的风险一些公司缺乏必要的测试手段和工具知识导致测试不彻底,其中性能测试是整个軟件测试中一个重要方面如何做好性能测试,怎么做性能测试是在测试人员之间和论坛上经常讨论的一个话题

  为什么进行性能测試呢?

  目的是验证软件系统是否能够达到用户提出的性能指标有哪些,同时发现软件系统中存在的性能瓶颈优化软件,最后起到优化系统的目的

  一. 评估系统的能力,测试中得到的负荷和响应时间数据可以被用于验证所计划的模型的能力并帮助作出决策。

  二. 識别体系中的弱点:受控的负荷可以被增加到一个极端的水平并突破它,从而修复体系的瓶颈或薄弱的地方

  三. 系统调优:重复运荇测试,验证调整系统的活动得到了预期的结果从而改进性能。

  检测软件中的问题:长时间的测试执行可导致程序发生由于内存泄露引起的失败揭示程序中的隐含的问题或冲突。

  四. 验证稳定性(resilience)可靠性(reliability):在一个生产负荷下执行测试一定的时间是评估系统稳定性和鈳靠性是否满足要求的唯一方法

  性能测试类型包括负载测试,强度测试容量测试等

  负载测试:负载测试是一种性能测试指数據在超负荷环境中运行,程序是否能够承担

  强度测试: 强度测试是一种性能测试,他在系统资源特别低的情况下软件系统运行情况

  容量测试:确定系统可处理同时在线的最大用户数

  性能测试主要是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标有哪些进行测试。负载测试和压力测试都属于性能测试两者可以结合进行。通过负载测试确定在各种工作負载下系统的性能,目标是测试当负载逐渐增加时系统各项性能指标有哪些的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接收的性能点来获得系统能提供的最大服务级别的测试。

  在实际中作中我们经常会对两种类型软件进行测试:bs和cs这两方面的性能指标有哪些一般需要哪些内容呢?

  Bs结构程序一般会关注的通用指标如下(简):

  Web服务器指标指标:

  CS结构程序,由于一般软件后台通瑺为数据库所以我们更注重数据库的测试指标:

  当然,在实际中我们还会察看多用户测试情况下的内存CPU,系统资源调用情况这些指标其实是引申出来性能测试中的一种:竞争测试。什么是竞争测试软件竞争使用各种资源(数据纪录,内存等)看他与其他相关系统對资源的争夺能力。

  我们知道软件架构在实际测试中制约着测试策略和工具的选择如何选择性能测试策略是我们在实际工作中需要叻解的。一般软件可以按照系统架构分成几种类型:

  基于客户端/服务器的三层架构

  基于客户端/服务器的分布式架构

  基于浏览器/Web服务器的三层架构

  基于中间件应用服务器的三层架构l

  基于Web服务器和中间件的多层架构l

  在每种不同的系统架构的实施中开發人员可能选择不同的实现方式,造成实际情况纷繁复杂我们不可能对每种技术都详细解说,这里只是介绍一种方法提供给你如何选择測试策略从而帮助分析软件不同部分的性能指标有哪些,进而分析出整体架构的性能指标有哪些和性能瓶颈

  由于工程和项目的不哃,所选用的度量,评估方法也有不同之处,不过仍然有一些通用的步骤帮助我们完成一个性能测试项目步骤如下

  1. 制定目标和分析系统

  2. 选择测试度量的方法

  3. 学习的相关技术和工具

  制定目标和分析系统

  每一个性能测试计划中第一步都会制定目标和分析系统构成。只有明确目标和了解系统构成才会澄清测试范围知道在测试中要掌握什么样的技术。

  1. 确定客户需求和期望

  系统组成這里包含几方面含义:系统类别系统构成,系统功能等了解这些内容的本质其实是帮助我们明确测试的范围,选者适当的测试方法来進行测试

  系统类别:分清系统类别是我们掌握什么样的技术的前提,掌握相应技术做性能测试才可能成功例如:系统类别是bs结构,需要掌握 http协议,javahtml等技术 。或者是cs结构可能要了解操作系统,winsockcom等。所以甄别系统类别对于我们来说很重要

  系统构成:硬件设置,操作系统设置是性能测试的制约条件一般性能测试都是利用测试工具模仿大量的实际用户操作,系统在超负荷情形下运作不同的系統构成性能测试就会得到不同的结果。

  系统功能:系统功能指系统提供的不同子系统办公管理系统中的公文子系统,会议子系统等系统工能是性能测试中要模拟的环节,了解这些是必要的

  选择测试度量的方法

  经过第一步,将会对系统有清醒的认识接下來我们将把精力放在软件度量上,收集系统相关的数据

  * 制定改进策略

  * 制定结果对比标准

  学习的相关技术和工具

  性能测試是通过工具,模拟大量用户操作对系统增加负载。所以需要掌握一定的工具知识才能进行性能测试大家都知道性能测试工具一般通過winsock,http等协议纪录用户操作。而协议选择是基于软件的系统架构实现(web一般选择http协议,cs选择winsock协议)不同的性能测试工具,脚本语言也不同比如rational robot中vu腳本用类c语言实现。

  开展性能测试需要对各种性能测试工具进行评估因为每一种性能测试工具都有自身的特点,只有经过工具评估才能选择符合现有软件架构的性能测试工具。确定测试工具后需要组织测试人员进行工具的学习,培训相关技术

  任何测试的目嘚都是确保软件符合预先规定的目标和要求。性能测试也不例外所以必须制定一套标准。

  通常性能测试有四种模型技术可用于评估:

  *线性投射:用大量的过去的扩展的或者将来可能发生的数据组成散布图,利用这个图表不断和系统的当前状况对比

  *分析模型:用排队论公式和算法预测响应时间,利用描述工作量的数据和系统本质关联起来

  *模仿:模仿实际用户的使用方法测试你的系统

  *基准:定义测试和你最初的测试作为标准利用它和所有后来进行的测试结果进行对比

  设计测试用例是在了解软件业务流程的基础仩。设计测试用例的原则是受最小的影响提供最多的测试信息设计测试用例的目标是一次尽可能的包含多个测试要素。这些测试用例必須是测试工具可以实现的不同的测试场景将测试不同的功能。因为性能测试不同于平时的测试用例尽可能把性能测试用例设计的复杂,才有可能发现软件的性能瓶颈

  通过性能测试工具运行测试用例。同一环境下作的性能测试得到的测试结果是不准确的所以在运荇这些测试用例的时候,需要用不同的测试环境不同的机器配置上运行。

  运行测试用例后收集相关信息,进行数据统计分析找箌性能瓶颈。通过排除误差和其他因素让测试结果体现接近真实情况。不同的体系结构分析测试结果的方法也不同bs结构我们会分析网絡带宽,流量对用户操作响应的影响而cs结构我们可能更关心会系统整体配置对用户操作的影响。

7.1 总体性能指标有哪些要求
系统應保证7×24小时不间断运行系统硬件构成应具有冗余等安全措施。设备的MTBF(Mean Time Between Failure平均故障间隔时间)应小于或等于每年50分钟内。每年每台设備故障率不超过2%设备具有避免单点失效的功能,从而保证系统的可靠度不低于99.99%要求某一个设备的宕机不会影响业务的运行。具体可靠性措施如下:
? 系统能够避免单点失效即某台设备宕机不会影响到整个业务的运行
? 系统实现阵列级RAID备份
? 系统提供关键部件的冗余能仂
? 系统设计寿命应大于10年
? 系统的硬件与软件相互配合,提供对系统故障的管理能力
? 系统要求可靠、稳定平均故障时间间隔应不低於5000h,故障平均修复时间不高于1h硬件设备应有较高的可靠性和容错能力
? 关键部件在故障情况下,支持主备倒换
? 采集设备支持在线扩容

    ? 操作系统应采用开放的系统同时具有较高的可靠性、容错能力,系统不易崩溃和破坏具有良好的故障恢复能力。
    ? 操作系统应具有較强的网络功能应能支持通用的网络协议,应支持对不同机型互联
    ? 操作系统应能满足实时要求,具有同时进行联机事务处理的能力
    ? 操作系统应具备升级能力,并能做到向后兼容
    ? 操作系统应支持多个终端进行操作,支持多用户进程
    ? 操作系统应同时支持字符堺面和图像界面。 ? 在保证技术先进性的前提下采用成熟技术进行开发,并尽可能与硬件同步
    ? 以数据采集解析处理软件技术为平台核心应用技术,实现完善的数据采集解析处理体系实现海量数据的接收、处理、分发的平台软件功能。
    ? 支持多个远端工作站
    ? 分布式处理,模块化设计高内聚,低耦合故障隔离,无存储瓶颈和处理瓶颈具有良好的可扩展性,可平滑扩容
    ? 系统具有良好的开放性,应能实现纵向联网和横向联网
    采集设备要求可靠、稳定,平均故障时间间隔应>5000h故障平均修复时间<1h。硬件设备应有较高的可靠性和嫆错能力为了适应系统的容量增加,硬件设备应具有较强的扩展能力并应具备升级和向后兼容的能力。
    要求局域网和广域网混合相连系统的硬件性能优良、运行平稳可靠,并可以保证长时间的连续工作
    系统主要硬件的容量和性能指标有哪些(包括内存容量、处理器主频、硬盘容量、通信网带宽)应能适应整个系统处理能力、通信传输量、数据存储量和用户实际需求等各方面的要求。系统应根据实际需要配备各类外设:如磁带机或磁带库、光盘机、活动硬盘等设备
    采集设备应具备良好的可扩展性,能够适应系统容量的扩大和管理内嫆的增加包括软硬件平台、系统结构、功能设计、管理对象。
    随着管理功能的增加要求系统具有灵活的扩展性。
    系统的部署要充分考慮到各个逻辑单元的松耦合各个单元模块可以独立部署在单独的物理实体上,对于采集规模较小或小型试验点也可以根据实际情况部署茬同一物理实体上并且要保证各模块有较强的可扩展性,要充分考虑各模块中的功能点可以动态加载部署时要考虑性能冗余、系统的咹全性、可靠性、网络传输速率等。需要主机支持热备系统支持集群,系统支持负载均衡核心网络设备支持热备。
    ? 具备软件、硬件故障在线恢复的能力重大故障时间间隔应大于1年,故障平均修复时间小于1小时
    ? 需配置冗余热备份的电源模块,所有电源模块支持-48V直鋶供电和220交流电可按需配置。系统须配置冗余热备份的风扇散热系统
    ? 设备应采用具有电信级高可用性的操作系统。
    ? 采集层设备支歭命令行和控制台界面易于配置和管理。

如果你对性能测试感兴趣但是叒不熟悉理论知识,可以看下面的系列文章

我们在学习性能测试之前需要有个新的认识:性能测试,不再是像功能测试一样单纯的找 Bug洏是去找性能指标有哪些

  • 在做功能测试、自动化测试的时候,我们基本都是依托界面进行测试也称 GUI 测试,我们的目的就是为了跑通功能、程序并成功找到 Bug
  • 但在做性能测试的时候,我们大部分是 headless 模式(所谓的:无头无界面模式),目的不再是单纯的为了找到 Bug而是要分析性能指标有哪些等等(后续讲到)

性能测试的时间一般会比自动化、功能测试长,为啥

  • 因为性能测试的步骤跟自动化、功能测试的步驟不一样,比如说前期的准备(了解系统环境搭建),后期的压力测试(7*24h)等等
  • 在后面我们通过讲述性能测试步骤来仔细了解

性能测試一定要工具,手工不行吗

  • 性能测试是模拟系统在被很多很多用户同时使用时,系统能不能正常使用和提供服务
  • 功能测试:一个人点点點就知道功能通不通有没有 Bug 了
  • 性能测试:用手工的话,可以模拟几个、十几个用户但是当需要模拟上千万个用户时,手工又怎么模拟數据量多的场景呢
  • 类比,吃饭场景:一个人可以吃好几碗但是叫你吃几百碗是不可能的
  • 结论:工具就可以模拟大数据量的场景,可以莋到人做不到的事情

大数据量测试是性能测试吗

简单理解:一个接口返回的数据比较多(假设:不使用分页,把所有数据同时返回)

  • 返囙大数据量的接口的响应时间会变长
  • 这么大的数据量我们需要考虑:网络传输数据、服务器查询这些数据、服务器处理这些数据等等分別需要多少时间
  • 这已经跟响应时间挂钩,所以已经属于性能测试的范围但不归纳于性能分析范围

大数据测试是性能测试吗?

大数据测试嘚功能属于功能测试哦

性能测试过程发现问题需要立即提交吗

在性能测试过程中发现一些问题,假设定位到某一段代码有问题可以截圖提交 Bug 给开发,但这并不是我们性能测试的最终目的最终目的是找出性能指标有哪些

  • 比如说响应时间:10个人、100个人 、1000个人 、10000个人向服务器发起请求,服务器响应请求的平均响应时间是多少这就是一个指标
  • 又好比TPS:服务器在当前的配置下,不同用户数发起请求服务器的 TPS 處理能力是多少,这也是一个指标
  • 性能测试过程中发现的 Bug 属于一个衍生品并不是最终得到的结果
  • 但像功能测试,最终目的就是为了找出 Bug
  • 莋性能测试当数据量变大后,会出现连接超时、连接拒绝、500、502异常问题;在性能测试中这些异常问题基本都会出现的,但不会去立即提
  • 对于性能测试工程师我们要做的是分析为什么在当前数据量下会出现连接超时、连接拒绝,响应时间超时、服务器异常等异常问题
  • 這就需要我们去分析性能瓶颈并不会单独去某个异常问题出现在哪里,而是分析为什么会出现这个异常问题分析的是服务器或者是玳码,而不是让开发人员马上来修复这些异常问题

我们常说的压测是指压力测试吗

  • 并不是,而是指负载测试一般都是为了找出系统的朂大负载量
  • 就好像你老板说:你去压测下,看看系统能支撑多少用户同时访问我们的系统
  • 通过工具找出或获得系统在不同工况下的性能指标有哪些值
  • 性能测试过程中,重点是找出性能指标有哪些而不再是找出 Bug,
  • 性能测试的产出绝对不只是 Bug

跑步100米用时多少?运动员的心跳、步伐频率是多少

  1. 跑步100米:业务场景
  2. 运动员的心跳、步伐:性能指标有哪些值

性能指标有哪些值和响应时间是否满足当前业务场景的朂低要求(合格线)

什么时候能找出性能指标有哪些值

电商系统,下单业务目前还不知道系统支持多少人同时下单,那么我们需要找到垺务器能正常支持多少人同时下单

性能测试初始阶段(第一次做)

  • 先把基础的性能指标有哪些值找出来(第一次性能测试也叫做基准测试)
  • 比如:100个人同时下单系统正常但120个人同时下单就会出现部分请求的响应时间超长,连接异常
  • 那么100-120范围内的某个值就是当前服务器能达箌的性能指标有哪些值(基准值)

版本迭代进行第二次做性能测试,重新跑一遍之前的性能脚本

  • 又会得到一些性能指标有哪些值对比仩个版本的性能指标有哪些值,看是否有优化(性能变化)
  • 假设这个时候120个人同时下单是正常的150个人才有异常,那么接口已经有优化了

假设公司是从0开始做性能测试

  • 第一阶段:做好性能测试得到性能指标有哪些值
  • 第二阶段:假设性能比之前差,哪些性能指标有哪些值不滿足预期值就需要分析是哪里有问题
  • 只要与服务器性能指标有哪些相关的测试都属于性能测试
  • 比如:响应时间、并发用户数、服务器处悝能力、吞吐量等性能指标有哪些
  • 负载测试、压力测试、容量测试、可靠性测试都属于性能测试
  • 通常嘴巴上说的做性能测试就是广义的性能测试,它包括了很多内容并不只是针对某一个测试类型

 什么是负载测试?

  • 逐步增加系统负载测试系统性能变化,并最终确定系统所能承受的最大负载量
  • 通俗理解:看看你几斤几两

通过增加“用户数”就是常说的并发数

天平秤,称东西的时候需要逐步加砝码,最终達到砝码和物品重量的平衡点因为它不可能一下子就达到平衡点【好比不可能一下子找到系统能承受的最大负载量】

  • 达到平衡点:找到朂大负载量
  • 有一个业务,增加到40个人的时候服务器还能正常使用,没有异常
  • 当你增加到50个人的时候服务器已经开始有异常了,那么就能确定40-50之间某个值就是系统所能承受的最大负载量【出现性能拐点找到了服务器性能瓶颈的范围值】
  • 最后减小加压梯度(比如:从40个人開始每次增加1个人、2个人),确认最大负载量【确认性能拐点】

服务器又有哪些可能会出现的异常呢

  • 响应时间超长:正常服务器处理请求時间是 1s但现在变成3s - 5s
  • 服务报错:无法同时正常响应多个请求
  • 服务器宕机:系统完全用不了
  • 在较大的性能压力下,持续运行一个比较长的时間看看系统服务是否正常及系统资源的利用率情况
  • 关键字:较大压力 + 较长时间
  • 注意:不是满负荷压力哦

问:大家什么时候会觉得工作压仂大?

答:996、007;因为你不会觉得955压力山大吧

结论:所以在我们日常工作中长时间工作强度高,才会觉得压力大;如果你一周就加班一天吔说压力大...(那就别干这一行了)

工作压力大你还能坚持下去(那稳定性肯定好吧),那如果你很快就离职了(那稳定性肯定差都宕機罢工了)

  • 生产环境下,系统隔三差五的出现不稳定的情况
  • 这个时候就需要通过压力测试去测试系统的稳定性情况

啥情况算不稳定?稳萣性差

隔三差五的出现下面的情况

  • 服务异常:响应错误、响应时间超时等

怎么分析是服务异常还是服务器异常 

  • 如果所有请求都是一片红,应用程序发送的所有请求都报红就是服务器出现了异常
  • 如果有些请求偶尔成功响应,偶尔又失败则是服务异常,出现不稳定的情况
  • 茬负载测试中我们确认了系统所能承受的最大负载量
  • 压力值 < 最大负载量,一般取80%左右

负载测试一般时间比较短压力测试时间比较长,歭续运行时间短就能正常使用但持续运行时间长就可能崩掉了,这是什么原因呢

  • 栗子一:电脑保持开机状态很长时间,会逐渐变卡洇为内存的东西会越来越多,得不到有效的回收 就会越来越卡
  • 栗子二:当你经常工作压力很大,且你的心理所能承受的压力逐渐达到最夶值时你就可能会选择离职

压力测试长时间运行,可能会逐渐增加系统的内存占用空间若得不到有效的内存回收,当达到内存最大值時系统就会崩掉

压力测试持续运行时间要多久?

  • 标准性能测试里面一般是7*24小时,或者是它的倍数
  • 但是实际工作中并不会这么久,否則成本太高
  • 所以会以小时为单位比如:4个小时、8个小时...晚上下班之后做,第二天早上上班看结果

先负载测试还是压力测试

  • 负载测试可鉯找到服务器性能瓶颈的范围值,若生产环境中系统稳定性较差再做压力测试
  • 所以压力测试是可做可不做的
  • 在给定的一定的业务压力下,持续运行一段时间查看系统是否稳定
  • 关键字:是否稳定,一定业务压力

电商秒杀场景几十个商品几十万个人同时秒杀抢购

  1. 编写性能腳本:假设一秒内有一万个人同时发起请求
  2. 有压力吗?一万个人同时发起请求
  3. 但是持续时间,不像压力测试一样需要持续一段时间
  4. 目的是为了验证当这么多人同时发起请求时成功秒杀的用户能否继续完成后续下单付款等操作【一定业务压力下,系统是否稳定运行】
  • 茬一定的软、硬件条件下在数据库不同数据量级数据量的情况下,对系统中读/写比较多的业务进行测试从而获得不同数据量级下的性能指标有哪些值

数据库数据量对性能测试结果有没有影响?

  • 比如数据库已经有几百条数据和几百万条数据查询的速度肯定不一样,所以肯定会影响性能测试结果
  • 数据量级的差异会影响TPS、响应时间、网络等

从一袋米中找一个绿豆,和一碗米中找一个绿豆找的时间肯定是芉差万别的

我要回帖

更多关于 性能指标有哪些 的文章

 

随机推荐