首页 > 其他分享 >性能测试理论基础一

性能测试理论基础一

时间:2024-08-20 20:57:11浏览次数:12  
标签:请求 处理 性能 系统 并发 吞吐量 测试 理论

一、性能测试概念

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. 持续改进
    • 性能结果分析是一个持续的过程,旨在通过不断地监测、分析和优化来提升系统的性能。通过定期的性能测试和分析,可以发现新的性能问题并及时解决,确保系统始终保持最佳状态。
不达标要做性能优化

标签:请求,处理,性能,系统,并发,吞吐量,测试,理论
From: https://blog.csdn.net/weixin_47314038/article/details/141337407

相关文章

  • 利用缓存优化网络性能:技术、策略与实践
    摘要缓存是提高网络性能的重要技术之一,它通过减少数据加载时间、降低服务器负载和网络带宽消耗,从而加速内容的交付速度。本文将详细探讨缓存的工作原理、不同类型的缓存机制、以及如何在Web开发和网络架构中有效利用缓存。1.缓存的基本概念缓存是一种将数据暂存的技术,以......
  • 性能测试中如何确定TPS和并发数
    性能测试中,最难的就是需求不明,无法获取到有效的需求指标,造成测试工作无法推进。所以,我给大家一个预估TPS和并发数的公式。1、 计算平均的并发用户数:C=nL/T 公式1中:c是平均的并发用户数;n是loginsession的数量;L是loginsession的平均使用时长;T是考察的时间段长度。2、并发用户......
  • LLM的API KEY获取和测试
    openaiopenai国内不能访问,只能通过第三方渠道访问,以F2API为例获取APIKEY地址:https://f2api.com/login测试APIKEY是否可用fromlangchain_openaiimportChatOpenAIllm=ChatOpenAI(openai_api_base="https://api.f2gpt.com",openai_api_key="******")res=llm.i......
  • ragas测试
    ragas可支持使用不同的embedding和llm进行计算,默认使用的是OpenAIEmbeddings(model="text-embedding-ada-002")、ChatOpenAI(model="gpt-3.5-turbo")。目前国内支持的大模型有:百度千帆、通义千问、百川、Yuan2、智谱ai下面以三种渠道的embedding和llm为例进行ragas测试。......
  • 2024浙江省信息通信行业职业技能竞赛信息安全测试员竞赛CTF比赛
    浙江省信息通信行业职业技能竞赛信息安全测试员竞赛CTF比赛MISC部分Author:Ns100kUpFrom:极安云科-服务中心Data:2024/08/07Copyright:本内容版权归属极安云科,未经授权不得以任何形式复制、转载、摘编和使用。培训、环境、资料、考证公众号:Geek极安云科网络安全群:62403......
  • AUTOSAR&UDS 理论要点及isolar实战-2F服务讲解及配置实战
    1.输入输出控制2F服务此服务服务用于代替ECU输入信号的值、电控单元内部参数或控制电子系统的输出值。举个例子:利用2F服务来实现简单的开关控制(转向灯,雨刮之类等)。报文格式:目前项目中主要是用到了00和03子服务,03: 在诊断模式中,请求该子ID的服务,会短暂控制输出,如上述:控制左......
  • Swift编译器代码生成策略全解析:优化你的性能与效率
    标题:Swift编译器代码生成策略全解析:优化你的性能与效率在Swift编程的高性能世界里,编译器的代码生成选项扮演着至关重要的角色。它们不仅影响应用的性能,还决定了最终代码的效率和大小。本文将深入探讨Swift编译器提供的代码生成选项,并通过实际代码示例,指导你如何利用这些选......
  • Geekbench AI 1.0 是一项全新基准,用于测试您的 PC 是否能处理复杂的 AI 任务
    GeekbenchAI1.0是一款尖端工具,可以让您评估设备处理AI任务的性能。这个基准测试软件专门设计用于测试设备的CPU、GPU和NPU在处理高要求的AI负载时的表现,给您一个清晰的答案,了解您的硬件是否能够跟上当今AI驱动的应用需求。GeekbenchAI1.0评估什么?GeekbenchA......
  • 优化问题的测试函数
    当你提出了一种新的优化算法后,你需要和别人之前提出的算法来进行PK看你的算法有没有提高,那么如何证明你的算法比较优秀呢?可以给把算法套在测试函数上,看谁的运行时间更短,求得测试函数的适应度更好目录一、四种常见的测试函数二、利用粒子群算法进行测试1.修改变量个数2.修改上下......
  • 【目标检测】Transformers在小目标检测中的应用:最新技术的基准测试和调查
    《TransformersinSmallObjectDetection:ABenchmarkandSurveyofState-of-the-Art》Transformers在小目标检测中的应用:最新技术的基准测试和调查原文:https://arxiv.org/abs/2309.049021研究背景和目的小目标检测(SOD)对现有目标检测方法具有挑战性,而Transformer......