性能常识 性能测试入门介绍

打工人 · 2021年08月08日 · 2553 次阅读

性能测试定义

是为描述测试对象与性能相关的特征并对其进行评价而实施和执行的一类测试。是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
应用在客户端性能的测试、应用在网络上性能的测试、应用在服务器端性能的测试,通常情况下,三方面有效、合理的结合,可以达到对系统性能全面的分析和瓶颈的预测
性能测试基础知识体系:

性能测试目的

  • 能力验证:关注在给定的软硬件条件下,系统能否具有预期的表现能力,比如:如何判断系统是否能支持 500 万用户/天的范围量
  • 规划能力:关注如何使系统具有我们要求的性能能力,或再某种可能发生的条件下,系统具有如何的性能能力,比如:系统计划一年达到 500w 用户量,系统到时候能否支持这么多用户量
  • 性能调优:系统性能调优,比如:接口响应时间越来越慢,如何优化?
  • 缺陷发现:发现缺陷或者重现问题,比如:高负载情况下发现 bug

性能测试流程

性能需求分析(确定性能指标、性能场景)->性能测试准备->性能测试执行(压测脚本、监控脚本)->结果分析与调优->测试报告输出

性能测试类型

  • 负载测试:是通过逐渐增加系统的负载,测试系统性能的变化,并最终确定在满足系统性能指标的情况下,系统所能承受的最大负载量的测试。简而言之,负载测试时通过逐步加压的方式来确定系统的处理能力和能够承受的各项阈值。

  • 压力测试:是通过逐步增加系统的负载,测试系统性能的变化,并最终确定在什么负载条件下,系统性能处于失效状态,并获得系统能提供的最大服务级别的测试。压力测试是逐步增加负载,使系统某些资源达到饱和和甚至失效。

  • 配置测试:主要是通过对被测试软件的软硬件配置进行测试,找到系统各项资源的最优分配原则。配置测试能充分利用有限的软硬件资源,发挥系统的最佳处理能力,同时可以将其与其他性能测试类型联合应用,从而为系统提供重要依据。

  • 并发测试:测试多个用户同时访问同一个应用、同一个模块或者数据记录时是否存在死锁或者其他性能问题,几乎所有的性能测试都会涉及一些并发测试。

  • 容量测试:在一定的软、硬件条件下,在数据库中构造不同数量级的记录数量,通过运行一种或多种业务场景在一定虚拟用户数量的情况下,获取不同数量级别的性能指标,从而得到数据库能够处理的最大会话能力,最大容量等。系统可处理同时在线的最大用户数,通常和数据库有关。

  • 可靠性测试:通过给系统加载一定的业务压力(如 CPU 资源在 70%~90% 的使用率)的情况下,运行一段时间,检查系统是否稳定因为运行时间较长,通常可以测试出系统是否有内存泄漏等问题。

    性能测试工具

  • LR 核心组件:VuGen(虚拟用户发生器)、Controller(控制器)、Analysis(分析器)

  • jmeter:建立一个线程池,多线程运行取样器产生大量负载,在运行过程中通过断言来验证结果的正确性,可以通过监听来记录测试数据

  • locust:使用 python 开发、基于事件、协程、支持分布式并提供 webUI 进行测试执行和结果展示的性能测试工具

性能测试指标

  • TPS:每秒事务数,单接口测试时 request/second 为单位,混合场景测试时 transaction/second 为单位,TPS 值与系统性能成正比
  • 并发数:系统同一时间进行同一操作的请求数
  • 错误率:错误请求数/请求总数
  • RT/ART:响应时间/平均响应时间,指一个事务完成花费多长时间,细分的话还有最小最大响应时间,50%、90%、99% 用户响应时间等
  • 资源利用率:CPU 利用率、内存使用率、磁盘 I/O、网络带宽
  • 系统稳定性:3*24 or 7*24

性能监控工具

测试结果分析

性能分析的目的是找出系统性能存在的瓶颈以及风险,包括压测工具结果分析、监控工具结果分析、系统异常 log 分析
性能调优是尽可能用更少的资源提供更好的服务,性能调优的过程也是一种平衡的过程,通常需要和开发协同工作,包括但不限于参数调优、代码调优、配置调优
测试报告:参考https://www.cnblogs.com/imyalost/p/10993600.html
更能性能测试知识可阅读:https://www.cnblogs.com/imyalost/category/848600.html

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册