• 性能测试详解(理论篇)



    性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。

    一.性能测试的分类

    性能测试类型包括负载测试、强度测试、容量测试等。

    1.负载测试

    当负载逐渐增加时,系统各项性能指标的变化情况,系统是否能够承担

    2.强度测试

    在系统资源特别低的情况下,系统能否运行正常,这个资源低的下限在哪

    3.容量测试

    测出系统的界限和极限值

    负载测试和压力测试的区别:
    负载测试是确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。
    压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。

    二.性能测试的指标

    1.并发用户数

    在客户端指一批用户同时执行一个操作,并发数反映了软件系统的并发处理能力

    2.响应时间

    客户端发出请求到得到响应的整个过程所经历的时间
    响应时间= 客户端发起请求 + 网络传输时间 + 服务器处理时间

    3.吞吐量

    指单位时间内系统处理的客户请求的数量,直接体现软件系统的性能承载能力

    4.资源利用率

    指系统资源的使用程度,比如服务器的CPU利用率、内存利用率、磁盘利用率、网络带宽利用率、jvm利用率等

    三.性能测试的目的

    1.评估系统的能力
    2.识别系统的弱点
    3.系统调优
    4.验证稳定性、可靠性

    四.性能测试的范围

    1.用户所体会到的系统响应时间是否够快?
    2.应用服务器的资源使用情况是否合理?
    3.数据库服务器的资源使用情况是否合理?
    4.系统最多能支持多少用户访问?最大的业务处理量是多少?
    5.系统是否支持7*24小时的业务访问?
    6.系统是否能够实现扩展?更换哪些设备可以提高系统性能?
    7.系统的架构设计是否合理?
    8.数据库设计是否合理?
    9.代码是否存在性能问题?
    10.内存使用是否合理?
    11.线程同步是否合理?
    12.资源竞争是否合理?
    13.如果存在性能瓶颈,应该如何调整?

    五.性能测试流程

    1.需求分析

    测试需求分析
    测试计划制定

    2.测试设计

    测试脚本编写
    测试脚本调试
    测试场景设计

    3.测试执行

    测试环境搭建
    测试场景部署
    测试场景执行
    测试脚本调试

    4.结果分析

    测试结果分析
    性能瓶颈分析
    测试报告评估

    六.性能测试环境

    性能测试环境的搭建是性能测试的基础,那么环境最基础的是什么呢?当然是服务器软硬件资源。

    1.硬件必须与生产环境一致

    性能测试过程中,需要真实模拟生产的服务器硬件配置,这就要求在性能测试环境中使用与生产环境一致的服务器,比如服务器是几核CPU,几个G的内存,磁盘读取策略等等。

    2.操作系统版本与生产环境一致

    性能测试过程中,也需要真实模拟生产的操作系统,比如操作系统是Centos的还是Linux其他的版本,是32位的还是64位的,另外操作系统的补丁最好跟生产环境一致等等。

    按道理测试环境应该与生产环境保持一致,但往往测试环境不具备像生产环境一样大的环境,这种情况下,我们该如何以测试环境下的数据去评估生产性能的可能状况呢?
    评估。通过测出系统的性能指标,再根据硬件之间的对比进行评估

    七.性能测试结果分析

    查找瓶颈时按以下顺序,由易到难:
    服务器硬件瓶颈 —— 网络瓶颈 —— 服务器操作系统瓶颈(参数配置) —— 中间件瓶颈(参数配置,数据库,Redis,web服务器等) —— 应用瓶颈(SQL语句,数据库设计,业务逻辑,算法等)

    从哪几个角度对测试结果进行分析呢?
    根据场景运行过程中的错误提示信息;
    根据测试结果收集到的监控指标数据

  • 相关阅读:
    拓展认知边界:如何给大语言模型添加额外的知识
    拥抱变革:了解汽车制造商正在采用的组合式业务的‘四大原则’
    今日话题:---自卑
    sitk::ERROR: No ImageJ/Fiji application found.
    GPU学习(1)
    c++vector容器
    《Channel-wise Knowledge Distillation for Dense Prediction》论文详解
    将MindSpore运行结果输出到log文件
    Day59|leetcode 503.下一个更大元素II、42. 接雨水
    C专家编程 第11章 你懂得C,所以C++不再话下 11.7 如何调用成员函数
  • 原文地址:https://blog.csdn.net/qq_43096786/article/details/126012626