软件测试——性能测试

什么是性能测试

1.概念
性能测试不是人工去操作的,性能测试人员借助性能测试工具,模拟系统在不同场景一下,系统性能指标是否达到预期。

2.性能测试和功能测试
功能测试:验证软件系统操作功能是否符合产品功能需求规格,主要焦点在功能(正向、逆向)。功能测试依靠人工执行的,不管在什么情况下,只要能够正常运行即可。
性能测试:验证软件系统是否满足业务需求场景,主要焦点在于业务场景的满足(时间、资源)。依靠工具完成,软件在一些极端的情况下,是否能够正常运行。

3.影响软件性能的因素有哪些
硬件:服务器CPU利用率,内存,磁盘操作频率,CPU核心数
软件:算法,编程语言
用户:用户数量,用户时长,用户访问频率

为什么要进行性能测试

  • 获取系统性能的指标,作为性能指标的基准
  • 验证系统的性能指标是否达到要求
    • 应用程序是否能够满足系统要求的各中性能指标
    • 应用程序是否能处理预期的用户负载并有盈余能力
    • 应用程序是否能处理业务所需要的事务数量
    • 在预期和非预期的用户负载下,应用程序是否稳定
    • 是否能确保用户在真正使用软件时获得舒服的体验
  • 发现系统的性能瓶颈,内存泄漏等问题。
  • 系统正常工作的情况下的最大容量。
  • 帮助系统运维部门能更好的规划硬件配置

性能测试流程

  1. 性能测试需求分析
  2. 性能测试计划
  3. 性能测试用例
  4. 测试脚本编写/录制
  5. 建立测试环境
  6. 执行测试脚本
  7. 性能测试监控
  8. 性能分析和调优
  9. 性能测试报告总结

常见的性能指标

并发用户数
并发用户会对系统造成压力,首先对系统用户数,在线用户数,并发用户数做一个区分。
系统用户数:简单地说就是该系统的注册用户数。例如,某个论坛里存在6666个注册用户,他们可以是活跃的,也可以是僵尸的。
业务层面的并发用户数:指的是同时向服务器发送请求的用户数量。
后端服务器层面的并发用户数:指的是同时向服务器发送请求的请求数量。

响应时间/平均响应时间(RT/ART)
从用户视角来考虑,响应时间反映了完成某个操作所需要的时间,标准定义是,应用系统从发出请求开始,到客户端接收完所有的字节数据所消耗的时间。
响应时间分为前端展示时间系统响应时间两部分。
前端展示时间指的是客户端收到服务器返回的数据后渲染前端页面,所耗费的时间。
系统的响应时间,分为web服务器,应用服务器,数据库服务器,等各种服务器之间通信和处理请求的时间。

事务响应时间(Transaction Reponse Time)
每秒完成的事务数,通常指每秒成功的事务数,性能测试中重要的综合性性能指标。
这里的一个事务是一个业务度量单位,是指一组密切相关的子操作的组合。

比如,一笔电子支付操作,后台处理的时候可能需要经过会员系统,账务系统,支付系统,银行系统等,这就是是一个关于支付事务里面包含的操作。而对于用户,往往也只关注整个支付花费了多长时间。

每秒事务通过数(Transaction Per Second)
TPS 是指每秒系统能够处理的事务数。它是衡量系统处理能力的重要指标。
当压力加大时,TPS曲线如果变化缓慢或者有平坦的趋势,很有可能是服务器开始出现瓶颈了。如果环境没有发生大的变化,对于同一系统会存在一个最大处理事务能力,它并不随着并发用户的增减而改变。
每秒事务通过的数量越多,说明软件性能越好

点击率(Hit Per Second)
每秒点击数代表用户每秒向Web 服务器提交的HTTP请求数。点击率越大,服务器压力越大。 这里的点击并不是鼠标的一次点击,一次点击肯有多洗HTTP请求。

吞吐量(Throughput)
这里的吞吐量以单位时间为度量衡量。
单位时间内系统处理的客户请求的数量,直接体现软件系统的性能承载能力,一般来说用 Requests/second,Pages/Second,Bytes/Second等。

思考时间(Think Time)
指模拟正式用户在实际操作时的停顿间隔时间,从业务的角度来讲,思考时间指的是用户在进行操作时,每个请求之间的间隔时间。

资源利用率
不同系统资源的使用情况。包含CPU,内存,硬盘,网络等。
资源利用率=资源的使用量/总的资源可用量*100%

常见性能测试分类

基准性能测试

  • 性能基准测试是通过性能测试获取系统的性能指标,建立一个性能基准,作为以后性能测试的参考。
  • 系统的第一个版本,研发团队也不清楚系统的性能能达到怎样的水平,这时需要我们进行的性能测试,其目标是获得系统标准配置下,有关的性能指标数据,作为将来性能改善的基准,这种测试称之为“性能基准测试。
  • 系统进行性能基准测试可以在系统开发的较早的阶段发现性能问题。

负载性能测试

  • 验证软件在一定的压力情况下,观察性能指标是否出现拐点。
    负载:向服务器发送请求数量,请求越多,负载越高。

压力性能测试

  • 系统处于饱和的情况下,观察系统性能指标变化(往往会把系统搞崩溃)。
  • 为了找到系统测试的性能瓶颈,一般会加大负载,甚至将负载一直增加上去,达到极限负载。
  • 在不断地加压过程中,一旦系统出现拐点,系统就可能会崩溃,暴露出高负载系统下的一些问题,比如说资源竞争、同步问题、内存泄漏等等。

可靠性能测试

  • 在系统稳定运行的情况下进行长时间测试,在这段时间内,观察系统各项性能指标是否正常。
  • 与压力测试不同的是服务器的负载并不是出于极限状态下。重点在于瞒住性能要求的情况下,服务器的稳定性,比如响应时间、TPS是否稳定。
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值