zoukankan      html  css  js  c++  java
  • 【性能测试】性能测试学习笔记(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后面再单独学习下

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

  • 相关阅读:
    Lampda或Linq中的SqlFunctions.StringConvert()
    Quartz.NET配置
    C#中TransactionScope的使用方法和原理
    .NET中使用Redis(二)
    曲苑杂坛--修改数据库名和文件组名
    曲苑杂坛--修改数据库服务器名称
    系统数据库--修改tempdb的位置
    系统数据库--恢复Master数据库
    TSQL--游标Dem
    TSQL--约束基础和Demo
  • 原文地址:https://www.cnblogs.com/jennyhui/p/5723987.html
Copyright © 2011-2022 走看看