性能测试理论基础一:性能测试概念和指标

一、性能测试概念

1.为什么程序会有性能问题,性能问题是怎么出现的?

2.性能测试和功能测试的区别是什么?

3.核心性能指标:吞吐量QPS/TPS

4.核心性能指标:并发量

5.核心性能指标:响应时间

1.性能和功能的区别

功能角度:验证程序是否满足功能性需求(有没有功能,能不能用)

性能:多角度分析(做的好不好,性能指标)

2.为什么程序会有性能问题,性能问题是怎么出现的?

任何程序运行都需要资源(CPU、内存、磁盘、网络)

资源不是无限的(程序运行受限,每一个后端请求)

3. 性能指标

用户角度(核心

(1)响应时间(速度快不快):一次操作的完成时间

响应时间=等待处理时间+处理时间

网页响应:js css json html 页面多个子资源加载累加计算

接口相应:但接口请求>接收响应的完整时长

(2)并发量:人多的时候能不能用

相对并发:某一段时间内向服务器发出请求的并发(业界通常以秒为单位),人的操作是有间隔的。

绝对并发:同一时间点 服务器收到的请求量(有些可能会到毫秒级,一般不用)

成本管理

(1)资源占用率

我们在程序运行过程中,对服务器资源占用:一个用户请求过来需要站多少CPU,多少网络带宽。

运维角度

(1)吞吐量 --一进一出 输入--处理--输出

应用角度--QPS、TPS

QPS:每秒查询率(Query Per Second)

针对查询类请求处理,每秒能处理多少笔 ;select,不涉及数据变更的操作

TPS:每秒处理的事务数(Transaction Per Second)

涉及数据变更的操作 从数据库围观,事务>多个操作

网络角度--字节/S 服务器 带宽

反应程序的处理能力综合体现(吞吐量越大越好)

吞吐量和并发量有什么区别?

定义

  • 吞吐量(Throughput):指系统在单位时间内能够处理的请求数量或事务数量,或者在网络设备中,指单位时间内成功地传送数据的数量(以比特、字节等为测量单位)。它常用于评估系统的性能和容量,反映了系统处理请求的总体能力。
  • 并发量(Concurrency):指系统能够同时处理的请求数量或事务数量,即在同一时间段内系统可以同时执行的任务数。它描述了系统的并发处理能力和承载能力。

区别

  1. 关注点不同
    • 吞吐量关注的是系统在单位时间内能够完成的工作量,即处理请求的总体速率。
    • 并发量则关注系统在同一时间内能够同时处理的请求数量,即系统的并发处理能力。
  2. 衡量标准不同
    • 吞吐量通常以每秒完成的请求数(RPS、TPS)或每秒处理的数据量(如比特、字节)来衡量。
    • 并发量则直接以同时处理的请求数量或用户数来衡量。
  3. 影响因素不同
    • 吞吐量受到系统处理能力、资源利用率、算法效率等多种因素的影响。
    • 并发量则主要受系统资源(如CPU、内存、数据库连接等)的限制,以及系统架构和并发处理机制的设计。
  4. 对系统性能的影响
    • 吞吐量的大小直接关系到系统的性能和稳定性,高吞吐量意味着系统能够高效地处理大量请求。
    • 并发量过高则可能导致系统资源紧张,进而影响系统的响应时间和稳定性。因此,在设计和测试系统时,需要合理控制并发量,确保系统能够稳定运行。

示例说明

  • 假设一个电商网站在高峰时段每秒能够处理1000个订单,那么它的吞吐量就是1000 TPS。这反映了网站处理订单的总体能力。
  • 同时,如果网站能够同时处理5000个用户的并发请求,那么它的并发量就是5000。这表示网站在同一时间内能够同时服务这么多用户。

吞吐量>并发量 ==轻松处理

吞吐量<并发量== 系统出问题

吞吐量受并发量影响,当并发量变大时。

二、性能测试核心步骤

1、梳理性能需求

性能测试不能脱离实际需求,不论是测试那种场景,有哪方面的性能需要,我们在执行测试的时候,都会涉及到具体的业务场景。

性能测试范围(首屏速度)--业务场景(APP首屏加载广告,这个广告信息是从后端接口拉取的;例:希望接口平均1.5S加载出来)--性能指标(响应时间)--性能测试用例(1.通过接口测试工具,反复针对这个接口进行多次测试, 取响应时间平均值;2.模拟贴近真实环境的用户数量,并发对这个接口进行测试,取响应平均值

2、执行测试

性能用例:

(1)使用工具模拟10个用户,并发对接口发起调用(持续2分钟)或者发起1000次调用);判断响应时间是否3秒以内

执行:

(1)工具:loadrunner、Jmeter、python(locust)等

(2)工具选型:能够方便快捷的模拟出性能场景

结果采集:

(1)Jmeter汇总报告

样本:总共发起请求数

平均值、最小值、最大值、偏差值:响应时间ms

异常:样本异常率

吞吐量:Jmeter没有区分TPS/QPS

接受、发送、平均字节:网络

(2)Jmeter查看结果树 一般用于调试阶段,正式压测一般是禁用的

3、性能结果分析

分析性能指标是否达标

  1. 识别性能瓶颈
    • 通过分析性能数据,识别出导致系统性能下降的关键因素或组件。这些瓶颈可能存在于硬件资源(如CPU、内存、磁盘I/O、网络带宽)、软件架构、数据库查询、第三方服务调用等方面。
  2. 优化系统性能
    • 基于性能瓶颈的识别,提出并实施针对性的优化策略。这可能包括代码优化、算法改进、数据库索引调整、缓存策略优化、硬件升级等,以提升系统的整体性能和响应速度。
  3. 确保系统稳定性
    • 评估系统在高负载或并发场景下的稳定性。通过模拟高压力测试场景,观察系统是否会出现崩溃、内存泄漏、响应时间过长等问题,以确保系统能够稳定运行并满足业务需求。
  4. 满足用户需求
    • 确保系统性能能够满足用户的使用需求。通过性能结果分析,验证系统是否能够在规定的时间内完成用户请求,并保持良好的用户体验。如果系统性能无法满足用户需求,则需要进行相应的优化或升级。
  5. 支持决策制定
    • 为管理层或决策层提供关于系统性能的客观数据和评估结果,以支持他们在项目规划、预算分配、技术选型等方面的决策。性能结果分析可以作为评估系统健康状况、预测未来需求以及制定长期发展规划的重要依据。
  6. 持续改进
    • 性能结果分析是一个持续的过程,旨在通过不断地监测、分析和优化来提升系统的性能。通过定期的性能测试和分析,可以发现新的性能问题并及时解决,确保系统始终保持最佳状态。

不达标要做性能优化

你可能感兴趣的:(性能测试,压力测试,功能测试,测试工具,可用性测试)