关于软件性能测试的浅思(01)

直奔主题----

需要解决的问题:
问题1.  测试目的、输出结果
问题2.  如何评估测试环境结果数据的生产参考价值


先来看第一个问题:
分析思路:根据测试对象定制测试设计
    
A: 在没有指标数据情况下:(例如,没明确要求系统必须在200万并发时响应时间不超过5秒等;研发者想知道自己的系统性能情况)

    1. 被测对象是一个系统:
    例如: 新开发了一套业务系统,现在想知道该系统的负载能力;
    关键点:  吞吐量、并发量(为什么是这两个指标?这里早有专家做过深入的分析了,Throughput和Concurrency是性能测试的两大关键参量)
    参考步骤: (1)测并发量的时候,不断增加并发数,收集性能数据 (2) 测Throughput的时候,在最小化用户数的前提下让Throughput最大化
    结果数据: 系统最大负载、最佳负载及相应场景下性能相关数据。(CPU、Mem、Disk、TPS、最大并发、响应时长等)
    
    2. 被测对象是系统中新增的一个模块/功能:
    
    +情景A:
    已知系统性能数据的情况下(即,根据 1 的测试,已知系统的承载力),可以直接用系统最大负载进行测试,观察新模块在最系统大负载下的性能。
    结果数据:系统最大负载情况下新增模块的性能相关数据。
    
    +情景B:
    没有系统的先验性能数据情况下,单独对这一模块做性能测试。
    这时我们的目的可能有两个:
    -b1. 想知道该模块的最大负载数据
    -b2. 想知道指定负载下的性能相关数据(例如: 1万并发请求情况下的性能指标数据)
    -b3. 想知道新的模块在性能上是否合格
    
    b1,b2 都好实践。b3 就是一个模糊的概念了。而且 b3 引入了一个更值得深入思考的问题:“怎样的性能结果数据算合格?”
    
    解决办法参考:
    1. 和经验/直觉数据做对比
    例如: 一个百万用户的系统,在1万并发情况下,业务响应时长不高于 1 秒,CPU使用率不高于 40%;直观上来看,算合格了吧。
    2. 和系统中其它模块的性能数据做对比(如果有的话)
    3. 和自己做对比
    例如: 分别测试模块在1K、2K、5K、10K负载下的性能数据,分析性能损耗趋势
    
    
    
B:有硬性指标要求的情况下:
    这个就简单了,根据要求进行负载测试,不达标就继续优化。
    
    
再来看第二个问题:
    
分析思路:
    1. 被测对象是一个系统:
    测试环境的硬件配置不如生产环境好(生产有集群或负载均衡策略)。所以一般来说生产的性能数据都会比测试环境的结果数据好一些。
    
    2. 被测对象是系统中新增的一个模块/功能:
    这里需要注意了,单独测试一个模块时,系统中的其它业务模块可能是处于低负载或0负载状态,这与实际的生产运行情况是不一致的。
    所以这时候得出的单一模块性能结果数据,并没能反应出系统在实际运行时的性能状态,甚至也没能反应出系统运行时该模块的性能状态。

(待续)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值