【性能测试】性能测试学习笔记(2)

性能测试学习笔记(2)

上周学习了怎么估算出性能指标,进行压力测试,本周继续这个话题,通过《怎么正确做性能测试》这篇文章,深入学习下测试前辈们的性能测试流程。

性能测试关注点

1. 关注90线,舍弃平均值

  1. 平均值不靠谱,因为是没有去除最高分最低分平均的结果,说明不了问题的。(嫌弃脸)
  2. 90线 - 百分之90的请求响应时间小于XXX。更有参考价值。

2. 关注响应时间和吞吐量,选取系统的‘最优状态’

Optimal Rate

请认真看图。

压测时:

  1. 压力+++++++
  2. 系统性能------ (CPU,Memory,DB等变得不稳定)
  3. 响应时间++++++++++
  4. 系统吞吐-------------

这个点便是系统的Optimal Rate(软件的最稳定时的最大吞吐量)

我们要为‘响应’桑划一条底线,底线之前随便压,边压边关注‘吞吐’君的情况,一旦‘吞吐’君不行了往下掉,再回头看看‘响应’桑是不是high了(必须high),这个时候记录下他们两的record就行(如果这个record达不到要求指标,那么我们就要优化我们的系统了) ——————— 无意开车的Jenny

3.总结

一般且重要的关注点:

  • Thoughput吞吐量
  • Latency响应时间
  • 资源利用(CPU/MEM/IO/Bandwidth…)
  • 成功率
  • 系统稳定性

后期继续对这块进行系统的学习

走套路做性能测试

准备工作

  • 响应时间底线定值

    TP99定律:
    	a.	99.9%请求响应时间小于___ms;
    	b.	平均响应时间小于__ms;
    

响应时间底线的推算可以参考下性能测试学习笔记(1) //看不懂,我后面345678笔记继续写继续一起学习,还是不懂不要问我,谢谢。

  • 确保接口成功率100%

  • 压测刚开始,使用1个并发去做,查看了解系统的最优状态

开始工作

  • 考虑响应时间底线的情况下,压力++++,找出系统稳定时的最大吞吐值

    友情提示:
    	a.	压测数据 be smart
    	b.	线上压测注意步伐,小步快走为最优方案
    

不懂网上看-->性能测试关注点的第二点

  • 不考虑响应时间底线的情况下,压力+++,找出系统的最大吞吐值

    基本要求:
    	a.	接口成功率100%
    	b.	压测持续时间10min+
    

如果有条件就压,没有条件就不要压,不然线上的其他设备压坏了

// 对应理解的还有“最佳并发用户数”和“最大并发用户数”,下周再详细分析学习。

  • 低吞吐量和网络小包的测试 //没怎么接触,后面再了解看看

a轮压测

  1. 前提: 系统稳定时的最大吞吐值

  2. 测试策略: Soak Test

  3. 关注点: 系统性能

连续7天的不间断的压测系统。然后收集CPU,内存,硬盘/网络IO,等指标,查看系统是否稳定,比如,CPU是平稳的,内存使用也是平稳的。那么,这个值就是系统的性能


b轮压测

  1. 前提: 系统的最大吞吐值,系统稳定时的最大吞吐值

  2. 测试策略: Burst Test

  3. 关注点: 系统性能

    loop:
    	a.	在【系统稳定时的最大吞吐值】压测5min
    	b.	在【系统的最大吞吐值】压测1min
    

"如此往复个一段时间,比如2天。收集系统数据:CPU、内存、硬盘/网络IO等,观察他们的曲线,以及相应的响应时间,确保系统是稳定的。"

总结

关于报警值:

  1. 系统的软报警线:【系统稳定时的最大吞吐值】* 66.7%
  2. 系统的硬报警线:【系统稳定时的最大吞吐值】* 80%

*【系统的最大吞吐值】仅仅用来扛突发的peak

“工程是一门科学,而科学是严谨的。”


本次笔记学习资料:

Why Averages Suck and Percentiles are Great

怎么正确做性能测试

TCP的那些事儿(上)

TCP的那些事儿(下)

// TCP两个没怎么看,mark后面再单独学习下

本次笔记依旧是只写了个大概,并且搬砖学习大神的理念,下周继续学习

原文地址:https://www.cnblogs.com/jennyhui/p/5723987.html