zoukankan      html  css  js  c++  java
  • 性能测试入门

    基础知识知识点:
    1. 并发用户:
      严格意义:所有用户在同一时刻做同一件事或者操作(同一类型的业务)
      广义:不管用户给系统发出请求或者操作,这些操作既可以是相同的,也是不同的
    2.用户并发数量:
      针对应用服务器或者数据库服务器而言,是否并发的关键是看用户的操作是否对服务器产生了影响
    3.请求响应时间:
      客户端发送请求到得到响应的整个过程的时间
    4.事物响应时间:
      事物是有一系列的请求组成的
    5.吞吐量:
      在一次性能测试过程中网络上传输的数据流量的总和
    6.吞吐率:
      单位时间内网络上传输的数据流量(特定条件下可以指单位时间内处理的客户端请求数量)
    7.TPS:
      每秒钟系统处理的交易或者事物的数量
    8.点击率:
      每秒钟用户向服务器提交的HTTP请求数(Web应用的指标)
    9.资源利用率:
      分析系统性能指标而改善性能的主要依据
    性能测试种类:
    1.压力测试:
      通过确定一个系统的瓶颈或者不能接收用户请求的性能点,来获得系统能提供的最大服务级别的测试
    2.负载测试:
      响应时间超过预定指标或者某种资源已经达到饱和的状态
      (压力测试重点关注加压大小,负载测试重点关注加压时间)
    3.强度测试:
      为了测试系统在异常情况下的处理能力
    4.并发测试:
      多用户同时访问同一系统/同一模块/同一业务功能/同一数据记录时是否存在性能问题
    5.大数据量测试:
      5.1针对某些系统的新建记录、统计查询等业务进行的运行时的大数据量测试
      5.2历史大数据测试,测试存量数据达到一定量级下的性能
    6.配置测试:
      通过找到系统各项资源的最优分配原则(调整应用服务器各项参数达到较好的性能)
    7.可靠性测试:
      测试系统在一定压力下长时间运行后是否稳定可靠,主要用来测试是否可以长时间稳定对外提供可靠的服务
    8.狭义性测试:
      主要描述常规的性能测试,通过模拟生产运行时的使用场景和业务压力来测试系统的性能是否满足生产性能的指标
      性能测试的误区:
      1.提高硬件配置就可以提高性能了,因此性能测试不重要
       如果软件自身存在性能问题,再多的资源也不够利用。例如内存泄漏问题,随着时间的增长,内存终将会被耗尽,最后导致系统崩溃
      2.性能测试在所有其他测试完成后,测试一下就可以了
       数据库设计---大量内容放在一张表上,导致当并发用户较多时,数据库服务器无法及时并行处理用户请求,最后停止提供服务
      3.性能测试独立于功能测试
       很多性能问题是软件自身功能设计缺陷引起的。如果系统要求比较高,则性能测试和功能测试会同步进行
    4.性能测试就是用户并发测试
      应按照“启动---计划---实施---控制---收尾”
    5.系统存在瓶颈,不可以使用
      系统在性能方面能满足用户的需求并预留了30%~50%的扩展空间即可
    6.不切实际的性能指标
      性能调整基础
      1.确定问题
      1)应用程序代码
      2)数据库配置:参数调整
      3)操作系统配置
      4)硬件配置:磁盘速度、内存大小
      5)  网络:网络负载过重
      6)响应时间随时间增长而越来越长
      7)CPU的使用率很低而IO等待时间很高
    2.确定原因
      1)问题的影响是什么,是响应时间还是业务吞吐量
      2)系统资源监控的结果是否正常:CPU的使用是否到了极限?IO情况如何
      3)系统硬件配置是否够用
    3.确定调整方案
      1)提高系统吞吐量
      2)缩短响应时间
      3)更好的支持并发
    4.测试解决方案
      1)可以使用之前的场景来验证问题是否解决了
    5.分析调整结果
    全面性能测试分为:
    1.预期指标的性能测试 2.独立业务性能测试 3.组合业务性能测试 4.疲劳强度性能测试 5.大数据量性能测试 6.网络性能测试 7.服务器性能测试(操作系统、应用服务器、数据库服务器) 8.一些特殊测试
      A、 用户并发性能测试
        按逻辑顺序展开:
          1. 独立业务性能测试:核心业务模块的某一业务的并发性能测试,可以理解为“单元性能测试”
          2. 组合业务性能测试:一个或多个模块的多个业务进行并发性能测试,可以理解成“集成性能测试”
            1)独立核心模块用户并发性能测试场景设计
              收益:1)发现一些核心算法或者功能方面的问题
                   2)尽早发现性能问题,以降低修复缺陷的成本
            2)组合模块用户并发性能测试场景设计
              收益:1)发现接口方面的功能问题
                   2)尽早发现综合性能问题
        具有耦合关系的核心模块进行组合并发测试;
        彼此独立、内部具有耦合关系的核心模块组合测试;
    基于用户场景的并发测试;
      B、疲劳强度与大数量测试
        目的:检验系统长时间运行后的性能
          1)大数据量测试:
            实时大数据量:测试用户较多或某些业务产生较大数据时,系统能否稳定地运行
            极限状态下的测试:系统累计一定量的数据时,能否正常的运行业务
            前面两种的集合;
      C、网络性能测试
        1)硬件测试
        2)系统测试
          通过测试工具准确展示带宽、延迟、负载和端口的变化是如何影响用户的响应时间的
      D、服务器性能测试
        目的:通过性能测试找出各种服务器的瓶颈,为系统扩展和优化提供相关的依据
        1)初级服务器性能测试
          指在系统运行或进行前面的性能测试场景时,通过测试工具对数据库、应用服务器、操作系统的使用情况进行监控,然后进行综合分析,进而发现系统的瓶颈。
    五一测试场景设计:
      1)独立场景设计:
        按照系统潜在最大并发数的2~3倍来加压,总加压时间为1~2个小时,加压时间内完成的交易是其对应交易量的2~3倍。
      2)混合场景设计
        按照系统潜在最大并发数的2~3倍来加压,总加压时间为2~3个小时,加压时间内完成的交易是其对应交易量的3~5倍。
      3)峰值场景设计
        压力时间内的数量大于系统全天的数量
      4)疲劳场景设计
        通常涉及覆盖系统全部交易量80%以上,往往和批量操作同步执行
      5)容量场景设计
        从生产压力作为基准压力来加压,逐步加压到生产的5~10倍
          1)最佳并发数/最佳处理能力:
            业务处理能力满足上线需求且80%交易响应时间也满足用户需求
          2)最大并发数/最大处理能力(TPS):
            响应时间和业务吞吐量同时满足生产需求时系统所能支持的最大并发数
  • 相关阅读:
    CS224d lecture 16札记
    CS224d lecture 15札记
    CS224d lecture 14札记
    CS224d lecture 13札记
    将博客搬至CSDN
    三张图理解JavaScript原型链
    三道题理解软件流水
    网络安全密码学课程笔记
    “wuliao“(无聊)聊天软件
    大二小学期C#资产管理大作业小记
  • 原文地址:https://www.cnblogs.com/zhugongmeetyou/p/9480996.html
Copyright © 2011-2022 走看看