【性能测试】性能测试的概念、策略、指标

news2024/9/23 9:29:38

一、性能测试的概念

1.1 什么是性能

- 时间:系统处理用户请求的响应时间

-资源:系统运行过程中,系统资源的消耗情况

1.2 什么是性能测试

使用自动化工具,模拟不同的场景,对软件各项性能指标进行测试和评估的过程

二、功能测试与性能测试的关系

2.1 功能测试和性能测试有什么不同

- 功能测试:验证系统的功能需求规格。焦点:功能(正向、逆向)

- 性能测试:验证系统的业务需求场景。焦点:时间、资源

2.2 功能测试和性能测试有什么关系

- 一般项目中,先功能测试通过后,后进行性能测试

三、性能测试的策略

常见的性能测试策略有:

基准测试

        - 建立基准,系统环境变化后对比确定对性能的影响。不会单独存在,为综合场景测试提供参考依据

负载测试(常用)

        - 逐步增加负载,找到满足系统性能指标情况下的系统最大负载量

稳定性测试(常用)

        - 用户正常负载下的长时间测试,保证系统长时间稳定运行

其他:

- 并发测试

        - 极短时间内,发送大量请求,验证并发处理能力

- 压力测试

        -高负载下,查看系统在峰值情况下的容错能力和可恢复能力

3.1 、基准测试

3.1.1 什么是基准测试

- 狭义上讲:就是单用户测试。(单用户循环多次得到的数据)

- 广义上讲:建立基准线,当系统的软硬件环境发生变化之后再进行一次基准测试以确定变化对性能的影响。

3.1.2 基准测试数据的用途

- 基准测试不会单独存在

- 为多用户并发测试和综合场景测试等提供参考依据

- 为系统/环境配置、系统优化前后的性能提升/下降提供参考指标

3.2、负载测试

3.2.1 什么是负载测试

通过逐步增加系统负载,确定在满足系统的性能指标(如响应时间等)情况下,找出系统所能够承受的最大负载量的测试。

3.2.2 作用

        系统最大负载量达到用户要求时,系统才能正式上线使用

3.3、稳定性测试

3.3.1 概念

在服务器稳定运行(用户正常的业务负载下)的情况下进行长时间测试(1天-1周等),并最终保证服务器能满足线上业务需求。

3.4、压力测试

3.4.1 压力测试的概念

在强负载下的测试,查看系统在峰值情况下是否功能隐患,系统是否具有良好的容错能力可恢复能力。

3.4.2 测试场景

- 极限负载情况下的破坏性压力测试

- 高负载下的长时间的稳定性压力测试

3.5、并发测试

3.5.1 并发测试的概念

并发测试(绝对并发):是指在极短的时间内,发送多个请求,来验证服务器对并发的处理能力。

四、性能测试的指标

  • 响应时间
    • 指用户从客户端发起一个请求开始,到客户端接收到从服务器端返回的结果,整个过程所耗费的时间。
    • 注意:
      • 通过HTTP接口请求消息来测试
      • 不包括 发消息时前端页面的处理时间和收到消息后前端页面的渲染显示时间
  • 并发数
    • 并发(用户)数:某一时刻同时向服务器发送请求的用户数。
  • 吞吐量
    • 吞吐量(Throughput):指的是单位时间内处理的客户端请求数量,直接体现软件系统的性能承载能力。从技术角度来看包括   - 单位:每秒事务数(TPS)、每秒查询数(QPS)
      • QPS(Query Per  Second)每秒查询数:即控制服务器每秒处理的指定请求的数量。
      • TPS(Transaction Per Second)每秒事务数:即控制服务器每秒处理的事务请求的数量。  事务:即业务,页面上的一次操作,可能对应一个请求/多个请求
  • 点击数
    • 指客户端向服务端发送请求时,所有的页面资源元素(如:图片、连接、框架CSS、js等)的请求总数量。
  • 错误率
    • 指系统在负载情况下,失败业务的概率。错误率=(失败业务数/业务总数)*100%
  • 资源利用率
    • 是指系统各种资源的使用情况,一般用“资源的使用量/总的资源可用量*100%”形成资源利用率的数据。
    • 根据经验,资源指标通常要求:
    1. CPU不高于75%-85%
    2. 内存不高于80%
    3. 磁盘IO不高于90%
    4. 网络不高于80%

五、性能测试的流程

  1. 性能测试需求分析:熟悉需求,获取性能需求指标
  2. 性能测试计划及方案:测什么、谁来测、怎么测
  3. 性能测试用例设计:用来验证系统是否符合需求
  4. 性能测试执行: 建立测试环境、编写测试脚本、性能调试监控、执行测试脚本
  5. 性能分析和调优:分析性能结果、针对性能bug调优
  6. 性能测试报告总结:测试结果总结

5.1 性能测试需求分析

        1. 明确被测系统

                - 熟悉被测系统的业务功能

                - 熟西被测系统的基数架构

        2. 明确测试内容

                业务角度:用户使用频率较高的关键业务功能

                技术角度:逻辑复杂度高的业务;数据量大的业务

        3. 明确测试策略

                负载测试;稳定性测试;并发测试...

        4. 明确测试指标

         有明确需求指标: 

                - 执行结果与预期指标进行对比

         无明确需求指标(分析指标)

                - 查找资料

               - 类似的系统对比

                - 对未来流量的预估     

5.2 性能测试计划和方案

01 测什么

        - 项目背景

        - 测试目的

        - 测试范围

02 谁来测

        - 进度与分工

        - 交付清单

03 怎么测

        - 测试策略

5.3 测试用例

性能测试用例模板

 5.4 性能测试执行

5.5 性能分析和调优

说明:性能测试人员经过对结果的分析以后,如果不符合性能需求,则会提出性能bug,然后由开发人员进行后续的调优。

 提示:

       - 调优 - 开发人员为主导,数据库管理员、系统管理员、网络管理员、性能测试分析人员配合进行

        - 验证  - 性能测试人员继续进行第二轮、第三轮......的测试,与以前的测试结果进行比对,从而确定经过调整以后系统的性能是否有提升。   

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/818255.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

适配器模式与装饰器模式对比分析:优雅解决软件设计中的复杂性

适配器模式与装饰器模式对比分析:优雅解决软件设计中的复杂性 在软件设计中,我们常常面临着需要将不同接口或类协调工作的情况,同时还要满足灵活性和可扩展性的需求。为了应对这些挑战,适配器模式和装饰器模式应运而生&#xff0c…

12-4_Qt 5.9 C++开发指南_创建和使用共享库

文章目录 1. 创建共享库2. 使用共享库2.1 共享库的调用方式2.2 隐式链接调用共享库2.3 显式链接调用共享库 1. 创建共享库 除了静态库,Qt 还可以创建共享库,也就是 Windows 平台上的动态链接库。动态链接库项目编译后生成 DLL 文件,DLL 文件…

【机器学习】Overfitting and Regularization

Overfitting and Regularization 1. 过拟合添加正则化2. 具有正则化的损失函数2.1 正则化线性回归的损失函数2.2 正则化逻辑回归的损失函数 3. 具有正则化的梯度下降3.1 使用正则化计算梯度(线性回归 / 逻辑回归)3.2 正则化线性回归的梯度函数3.3 正则化…

SpringCloud集成OpenTelemetry的实现

SpringCloud项目做链路追踪,比较常见的会集成SleuthZipKin来完成,但这次的需求要集成开源框架OpenTelemetry,这里整理下实现过程。相关文章: 【SpringCloud集成SleuthZipkin进行链路追踪】 【OpenTelemetry框架Trace部分整理】 …

JavaSE运算符

大体上,与C语言差不多,不同的地方,我用红色字体标注了 算术运算符 1. 基本四则运算符:加减乘除模 ( - * / %) int a 10 ; int b 20 ; System . out . println ( a b ); // 30 System . out . println ( a - b…

校园跑腿小程序开发需要哪些核心功能?

提起校园跑腿小程序大家都不陌生,尤其是对上大学的伙伴们来说,更是熟悉得不能再熟悉了,和我们的生活息息相关,密不可分。 对于现在的年轻人来说,网购是非常简单和方便的一种购物方式,随之快递也会越来越多。在我们国家…

白盒测试和黑盒测试的区别是什么?

前言 曾言道“黑猫,白猫,只要能抓住老鼠就是好猫”。我们的测试亦是如此,不管是黑盒测试还是白盒测试,只要能测试出来bug,可以找出问题所在,保障软件质量就是好的测试方法。 对于刚入门的软件测试小白来说…

【Git系列】Git到远程仓库

🐳Git到远程仓库 🧊1. github账号注册🧊2. 初始化本地仓库🧊3. 创建GitHub远程仓库🧊4. 给本地仓库起别名🪟4.1 查看远程库的连接地址🪟4.2 起别名 🧊5. git推送操作🧊6.…

【SEO基础】百度权重是什么意思及网站关键词应该怎么选?

百度权重是什么意思及网站关键词应该怎么选? 正文共:3253字 20图 预计阅读时间:9分钟 ​ 1.什么是网站权重? 这段时间和一些朋友聊到网站权重以及关键词,发现蛮多人对于这两个概念的认知还是存在一些错误的&#xf…

【Python】PySpark 数据计算 ② ( RDD#flatMap 方法 | RDD#flatMap 语法 | 代码示例 )

文章目录 一、RDD#flatMap 方法1、RDD#flatMap 方法引入2、解除嵌套3、RDD#flatMap 语法说明 二、代码示例 - RDD#flatMap 方法 一、RDD#flatMap 方法 1、RDD#flatMap 方法引入 RDD#map 方法 可以 将 RDD 中的数据元素 逐个进行处理 , 处理的逻辑 需要用外部 通过 参数传入 map…

RL— 深度强化学习简介

一、说明 深度强化学习是关于从我们看到和听到的东西中采取最好的行动。不幸的是,强化学习强化学习在学习概念和术语方面存在很高的障碍。在本文中,我们将介绍深度强化学习,并概述一般情况。然而,我们不会回避方程式和术语。它们提…

Linux虚拟机中安装MySQL5.6.34

目录 第一章、xshell工具和xftp的使用1.1)xshell下载与安装1.2)xshell连接1.3)xftp下载安装和连接 第二章、安装MySQL5.6.34(不同版本安装方式不同)2.1)关闭防火墙,传输MySQL压缩包到Linux虚拟机2.2&#x…

canvas实现图片平移,缩放的例子

最近有个水印预览的功能&#xff0c;需要用到canvas 绘制&#xff0c;canvas用的不是很熟&#xff0c;配合chatAI 完成功能。 效果如下 代码如下 原先配置是响应式的&#xff0c;提出来了就不显示操作了&#xff0c;模拟值都写死的 界面给大家参考阅读。 <!DOCTYPE html…

springboot基础--springboot配置说明

一、springboot中的配置文件 1、springboot为什么还需要用配置文件 方便我们修改springboot默认的配置;我们有其他的信息需要保存在配置文件中; 2、springboot中的配置文件有哪些 properties配置文件;yml配置文件; 3、springboot中的配置文件使用中注意事项 文件放入在sr…

黑客技术(网络安全)学习笔记

一、网络安全基础知识 1.计算机基础知识 了解了计算机的硬件、软件、操作系统和网络结构等基础知识&#xff0c;可以帮助您更好地理解网络安全的概念和技术。 2.网络基础知识 了解了网络的结构、协议、服务和安全问题&#xff0c;可以帮助您更好地解决网络安全的原理和技术…

Java版本spring cloud + spring boot企业电子招投标系统源代码+ 支持二次开+定制化服务

&#xfeff; 电子招标采购软件 解决方案 招标面向的对象为供应商库中所有符合招标要求的供应商&#xff0c;当库中的供应商有一定积累的时候&#xff0c;会节省大量引入新供应商的时间。系统自动从供应商库中筛选符合招标要求的供应商&#xff0c;改变以往邀标的业务模式。招…

在当下Android 市场下行时,能拿到offer实属不易~

作者&#xff1a;六哥 如今 Android 已不是前几年那么风光&#xff0c;但它的市场还在&#xff0c;“它”还是那个Android&#xff0c;还是那个我赖以生存、夜以继日陪伴着我的朋友。所以&#xff0c;我永远不会抛弃它。 好了&#xff0c;情感已经抒发的差不多了&#xff0c;我…

SecureCRT配置id_rsa和id_rsa格式问题

选项->会话选项 在弹出的窗口中继续&#xff1a; 连接->SSH2->公钥->属性 在属性会话框中证书文件里输入id_rsa路径&#xff1a; 一般情况下确定就可以了&#xff0c;但可能提示&#xff1a; Could not load the public key from the private key file使用ssh…

学习笔记23 stack和queue

一、stack概念 stack是一种按先进后出方法存放和取出数据的数据结构 java提供了一个stack类&#xff0c;其中有以下几种方法&#xff1a; 看个例子&#xff1a; import java.util.*;/*** This program demonstrates the java.util.Stack class.*/public class StackDemo1 {p…

Android 创建 Gradle Task 自动打包并上传至蒲公英

前言 Android 项目日常开发过程中&#xff0c;经常需要打包给到非开发人员验收或调试&#xff0c;例如测试阶段&#xff0c;就要经常基于测试服务器地址&#xff0c;打包安装包&#xff0c;给到组内测试人员进行测试&#xff0c;并且 BUG 修复完成之后也需要再次打包给到测试人…