一、什么是性能测试
1.1 什么是性能:
来描述产品除功能外的所具有的速度,效率和能力的综合能力评价
1.2 什么是性能测试:
对软件的性能进行定性的测量过程
1.3 常见的性能测试类型:
压力测试
定义:系统在一定饱和状态下,例如CPU、内存等饱和情况下,系统能够处理的会话能力,以及系统是否会出现错误。
特点:
a. 该方法的主要目的是检查系统处于压力情况下是应用的性能表现;
b. 该方法通过增加访问压力,是系统资源使用保持在一定水平,检验此时应
用的表现,重点在于有误出错信息产生,系统对应用的响应时间等;
c. 该方法一般通过模拟负载等方法,使得系统的资源使用达到较高的水平;
d. 该方法主要目的是找到系统处理能力的极限;
负载测试
定义:在被测系统上不断增加压力,直到性能指标(如响应时间)超过预期指标或者某种资源使用已经达到饱和状态。可以找到系统的处理极限,为系统调优提供数据;
特点:
a. 该方法在给定的测试环境下进行,通常需要考虑被测系统的业务压力和典
型场景;
b. 该方法一般用来了解系统的性能容量,或者是配合性能调优来使用性能容量:系统在保证一定响应时间的情况下能够允许多少并发用户的访
问;
并发测试
定义:模拟多用户同时访问同一个应用、模块或者数据记录时是否存在死锁或者其他性能问题
特点:
a. 该方法主要目的是发现系统中可能存在的并发访问时的问题;
b. 该方法主要关注系统中可能存在的并发问题。比如:线程锁和资源争用等
问题;
c. 该方法可以在开发的各个阶段使用,需要相关的测试工具的配合和支持可靠性测试定义:给系统施加一定的业务压力,让其持续运行一段时间,测试在这种条件下能否稳定运行;
特点:
a. 该方法的主要目的是验证系统是否支持长期稳定的运行;
b. 该方法需要在压力下持续一段时间的运行;
c. 测试过程中需要关注系统的运行情况;
比如:内存使用或者其他资源的使用以及响应时间有无明显变化,是否产生内存泄漏等。
其他测试
还有很多性能测试的类型,比如说:基准测试、稳定性测试、验收性能测试、失效恢复测试等等。
二、主流性能测试工具介绍
2.1 性能测试工具用途
性能测试在实际执行过程中,往往会有各类复杂的性能业务场景需要实现,无论是大批量的用户,还是相对较长的执行时间,也包括运行时会需要做很多数据的记录、展示,生成各种我们所需要的数据报表等,这些内容都可以基于工具来全部获取,并且通过工具的使用,可以简化整个前期的性能测试准备工作,以及系统性能数据结果获取,完成性能测试阶段下的一部分工作内容。但是,工具≠性能测试。工具,只是为了满足性能测试的一些需求而使用的一种手段,仅此而已。
2.2 性能测试工具
Jmeter:
Apache旗下推出的一款开源性能测试工具,完全基于Java语言实现,支持脚本自
定义与二次开发,如果个人Java能力相对较强,可以自主编写代码,搭配Jmeter实现更多性能测试。
LoadRunner:
Micro Focus旗下的一款付费性能测试工具,虽然支持多语言的自主脚本编写,但是在HTTP网络协议下的性能测试脚本默认还是以C语言的形式来实现。LR也是性能测试领域下的老牌软件。
Locust:
基于Python语言实现的一个开源的编程式性能测试框架,所有的测试脚本都是基于Python编程语言来实现,提供有运行过程中的持续监控Web服务,也可以自定义搭配持续集成技术进行使用。具有较高的自由度,且在实际上可以支持各类协议。
Gatling:基于Java实现的一款开源的性能测试工具,支持Scala、Java、Kotlin进行测试脚本的编写。对于HTTP有着出色的支持能力,同时,理论上也可以支持到其他的各类协议。
其他:
性能测试工具:
ab等性能监控平台:
skywalking、telegraf、influxDB、grafana、prometheus等
三、企业级性能测试全流程
3.1 性能需求分析
基于系统需求以及用户的实际应用场景,对系统性能指标进行定义和提取,确保系统能够符合到实际场景,满足运行时的性能需求。并结合需求内容进行性能场景的设计,确保所有指标都可以被合理化的场景所覆盖。
3.2 环境准备
基于性能指标和确定的性能场景,搭建系统环境,并提前生成测试时所需的相关数据,搭建
性能测试时所需的工具环境。
3.3 脚本编写
通过工具录制、代码编写等手段,将测试脚本完成,依据性能场景对有需要的脚本进行各类脚本增强,满足到实际的性能场景测试需求。
3.4 脚本执行
运行测试脚本,获取系统的实际性能数据。
3.5 判断指标是否满足
基于系统的实际性能数据反馈,结合性能测试需求进行评估,检验性能指标是否达标。
3.5.1 达标
继续进行进一步的性能测试,用以测试系统的阈值、测试系统是否具备有抗风险的能力。
3.5.2 不达标
结合实际性能数据,进入性能诊断阶段,对系统性能不达标项进行分析。
3.6 性能诊断
针对未通过项指标,进行追踪与定位,分析系统未达标原因,结合完整的系统架构,从网络、架构中间件,业务流,数据库,代码块,服务端硬件资源等等等等,通过各种手段与工具,在各个维度进行问题的排查,准确定位到引起性能不达标的原因所在,以便于后续的优化与整改。
3.7 提供优化建议
针对已经排查确定的性能问题,测试方给出优化的建议,对接到不同角色一同商讨如何对现有问题进行优化,并最终确立解决方案,进行性能优化。
【测试】性能测试常见工具及名次解释
最新推荐文章于 2024-11-08 13:09:25 发布