是为描述测试对象与性能相关的特征并对其进行评价而实施和执行的一类测试。是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
应用在客户端性能的测试、应用在网络上性能的测试、应用在服务器端性能的测试,通常情况下,三方面有效、合理的结合,可以达到对系统性能全面的分析和瓶颈的预测
性能测试基础知识体系:
性能需求分析(确定性能指标、性能场景)->性能测试准备->性能测试执行(压测脚本、监控脚本)->结果分析与调优->测试报告输出
负载测试:是通过逐渐增加系统的负载,测试系统性能的变化,并最终确定在满足系统性能指标的情况下,系统所能承受的最大负载量的测试。简而言之,负载测试时通过逐步加压的方式来确定系统的处理能力和能够承受的各项阈值。
压力测试:是通过逐步增加系统的负载,测试系统性能的变化,并最终确定在什么负载条件下,系统性能处于失效状态,并获得系统能提供的最大服务级别的测试。压力测试是逐步增加负载,使系统某些资源达到饱和和甚至失效。
配置测试:主要是通过对被测试软件的软硬件配置进行测试,找到系统各项资源的最优分配原则。配置测试能充分利用有限的软硬件资源,发挥系统的最佳处理能力,同时可以将其与其他性能测试类型联合应用,从而为系统提供重要依据。
并发测试:测试多个用户同时访问同一个应用、同一个模块或者数据记录时是否存在死锁或者其他性能问题,几乎所有的性能测试都会涉及一些并发测试。
容量测试:在一定的软、硬件条件下,在数据库中构造不同数量级的记录数量,通过运行一种或多种业务场景在一定虚拟用户数量的情况下,获取不同数量级别的性能指标,从而得到数据库能够处理的最大会话能力,最大容量等。系统可处理同时在线的最大用户数,通常和数据库有关。
可靠性测试:通过给系统加载一定的业务压力(如 CPU 资源在 70%~90% 的使用率)的情况下,运行一段时间,检查系统是否稳定因为运行时间较长,通常可以测试出系统是否有内存泄漏等问题。
LR 核心组件:VuGen(虚拟用户发生器)、Controller(控制器)、Analysis(分析器)
jmeter:建立一个线程池,多线程运行取样器产生大量负载,在运行过程中通过断言来验证结果的正确性,可以通过监听来记录测试数据
locust:使用 python 开发、基于事件、协程、支持分布式并提供 webUI 进行测试执行和结果展示的性能测试工具
性能分析的目的是找出系统性能存在的瓶颈以及风险,包括压测工具结果分析、监控工具结果分析、系统异常 log 分析
性能调优是尽可能用更少的资源提供更好的服务,性能调优的过程也是一种平衡的过程,通常需要和开发协同工作,包括但不限于参数调优、代码调优、配置调优
测试报告:参考https://www.cnblogs.com/imyalost/p/10993600.html
更能性能测试知识可阅读:https://www.cnblogs.com/imyalost/category/848600.html