什么是性能测试?

2023-11-03

什么是性能测试?

     压力测试软件性能测试是一种测试类型,旨在确定系统的性能以衡量性能,验证或验证系统的质量属性,例如在各种负载条件下的响应性,速度,可伸缩性,稳定性。在混合负载条件下对系统进行了测试,并检查了系统在各种工作负载下响应所需的时间。软件性能测试涉及对被测应用程序的测试,以确保应用程序在各种负载条件下都能按预期工作。性能测试的目标不仅是发现系统中的错误,而且还要消除系统中的性能瓶颈

为什么要进行性能测试?

   投入市场之前,应在各种负载条件下对软件系统进行速度,稳定性和可伸缩性测试。如果系统未进行性能测试就上线,可能会导致问题,例如运行速度缓慢,同时有多个用户访问系统,可用性差,这可能会导致不良声誉,并直接影响预期的销售目标。性能测试包含一系列不同的测试,这些测试可以分析系统的各个方面。性能测试将告诉您在上线之前需要解决的问题(主要是在各种负载条件下面临的问题)。

性能测试的类型

1)负载测试:
      负载测试是一种性能测试,用于检查系统并不断增加系统负载,直到负载达到其阈值为止。在这里,增加负载意味着增加并发用户,事务和检查被测应用程序行为的数量。通常在受控环境下进行以区分两个不同的系统。它也被称为”耐力测试”和“体积测试”。负载测试的主要目的是监视系统在重负载下运行良好时的响应时间和应用程序的保持能力。负载测试属于“;非功能性测试”,它旨在测试软件应用程序的非功能性需求。
执行负载测试以确保可以承受被测应用程序多少负载。仅在执行指定的测试用例且分配的时间没有任何错误的情况下,负载测试才能成功执行。
负载测试的简单示例:

  • 通过发送大量作业来测试打印机。

  • 编辑一个非常大的文档以测试文字处理器。

  • 连续读写数据到硬盘。

  • 在服务器上同时运行多个应用程序。

  • 通过访问数千个邮箱来测试邮件服务器

  • 如果是零容量测试,并且系统负载为零。

2)压力测试:

      压力测试是一种性能测试类型,用于在硬件资源(例如CPU,内存,磁盘空间等)不足时检查软件的稳定性。
            “确定或验证应用程序超出正常或峰值负载条件时的行为。”

      压力测试是一种负面测试,其中我们向软件加载大量并发用户/进程,而系统硬件资源无法处理这些并发用户/进程。此测试也称为疲劳测试,该测试应通过对应用程序的带宽容量进行测试来捕获应用程序的稳定性。
压力测试背后的主要思想是确定系统故障并密切关注系统如何正常恢复恢复,这种质量称为可恢复性。压力测试属于“;非功能测试;”,它旨在测试软件应用程序的非功能需求。该测试将在启动之前在受控环境下进行,以便我们可以准确地捕获大多数不稳定情况下的系统行为

3)峰值测试:


      峰值测试是压力测试的子集。当被测系统承受的工作负载模型和负载量在短时间内反复超出预期的生产操作时,将执行峰值测试以验证性能特征。

4)耐力测试:


      耐力测试是非功能性测试。耐久性测试涉及在很长一段时间内测试具有预期负载量的系统,以发现系统的行为。让我们举一个例子,其中系统被设计为可以工作3个小时,但是同一系统可以忍受6个小时,以检查系统的持久能力。执行最常见的测试用例以检查系统的行为,例如内存泄漏或系统故障或随机行为。有时,耐力测试也称为浸泡测试。

5)可伸缩性测试:


     可伸缩性测试是非功能性测试的类型,它是对软件应用程序的测试,用于确定其可扩展性的功能,例如其所支持的用户负载,事务数量,数据量等任何非功能性功能。如果进行此测试,其主要目的是了解系统在哪个峰值处阻止更多缩放。

6)体积测试:

      容量测试是非功能性测试,是指使用大量要处理的数据来测试软件应用程序,以检查应用程序的效率。该测试的主要目标是监视不同数据库容量下应用程序的性能。
顶级性能测试工具:

  • WebLOAD

  • LoadRunner

  • Apache JMeter

  • NeoLoad

  • LoadUI

  • OpenSTA

  • WAPT

  • LoadImpact

  • Loadster

  • Httperf

  • Rational Performance Tester

  • QEngine (ManageEngine)

  • Testing Anywhere

  • CloudTest

  • Loadstorm

性能测试流程:


      以下各节讨论在成功的性能测试项目中最常发生的七个活动。下图是通用的性能测试过程

 

 

 

 

 

 

1)确定您的测试环境–

      进行适当的需求研究并分析测试目标及其目的。还要确定测试范围以及测试启动清单。确定性能测试的逻辑和物理生产体系结构,确定启动性能测试所需的软件,硬件和网络配置。比较测试环境和生产环境,同时确定测试环境。解决与环境有关的问题(如果有),分析是否需要其他工具来进行性能测试。此步骤还有助于确定测试人员在进行性能测试时可能遇到的挑战。

2)确定验收标准–

      确定应用程序所需的性能特征,例如响应时间,吞吐量和资源利用率。
3)计划和设计性能测试–

      计划和设计性能测试涉及确定关键的使用方案,确定用户之间的适当可变性,标识和生成测试数据以及指定要收集的指标。最终,这些项目将为工作负载和工作负载配置文件提供基础。此阶段的输出是测试执行准备就绪,所有必需的资源,工具和测试数据准备就绪的前提条件。
4)配置测试环境–

     在执行之前,使用概念性策略,可用工具,设计好的测试以及测试环境进行准备。此阶段的输出是配置的负载生成环境和资源监视工具。
5)实施测试设计–

      根据测试计划和设计创建您的性能测试。
6)执行测试–

  • 收集和分析数据。

  • 问题调查,例如瓶颈(内存,磁盘,处理器,进程,缓存,网络等),资源使用情况(例如内存,CPU,网络等)

  • 生成包含应用程序所有性能属性的性能分析报告。

  • 根据分析准备推荐报告。

  • 修复错误并实施建议后,对从客户端收到的新版本重复上述测试

7)分析结果,报告并重新测试

       合并,分析和共享测试结果。
       根据测试报告,重新安排测试的优先级并重新执行相同的操作。如果在指定的度量标准限制内有任何特定的测试结果,并且所有结果都在阈值限制之间,则在特定配置上对相同方案的测试将完成。
常见的性能问题:

       在应用程序的软件测试中,速度是重要的属性之一。用户将不乐意使用缓慢的系统。性能测试发现性能瓶颈和缺陷,以保持用户的兴趣和注意力。这是在软件系统中观察到的最常见的性能问题列表:

  • 响应时间短

  • 加载时间长

  • 瓶颈

  • 可伸缩性差

  • 软件配置问题(针对Web服务器,负载平衡器,数据库)

  • 磁盘使用情况

  • 操作系统限制

  • 网络配置不佳

  • 内存利用率

  • CPU利用率

  • 硬件资源不足

结论:
     于软件系统的成功而言,性能测试在软件测试生命周期中起着关键作用。它确定了客户的满意度,并确定了产品故障的风险。因此,在进入市场之前进行性能测试非常重要。

posted on 2019-09-25 15:10  洒脱的风 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/lixiaoyang/p/11584747.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

什么是性能测试? 的相关文章

  • 华为OD机试 - 消消乐游戏(Java)

    题目描述 游戏规则 输入一个只包含英文字母的字符串 字符串中的两个字母如果相邻且相同 就可以消除 在字符串上反复执行消除的动作 直到无法继续消除为止 此时游戏结束 输出最终得到的字符串长度 输入描述 输入原始字符串 str 只能包含大小写英

随机推荐

  • python音频分析工具_python – 鸟鸣音频分析 – 查找两个剪辑的匹配程度

    要做出这个答案 因为评论太久了 我基本上在这个领域工作 所以我觉得我有一些知识 显然 从我的立场来看 我建议使用音频而不是图像 我还建议使用MFCC作为特征提取 您可以将其视为总结 表征音频特定子带的系数 因为它们 GMM是去的 要执行此任
  • SSM入门—SpringMVC框架

    1 SpringMVC概述 Spring Web MVC 是一种基于Java的实现Web MVC设计模式的请求驱动类型的轻量级Web框架 2 MVC的设计模式 M model 模型 业务模型 数据模型 实体 业务代码 数据代码 V View
  • websocket(一)--握手

    最近在琢磨怎么实现服务端的消息推送 因为以前都是通过客户端请求来获取信息的 如果需要实时信息就得轮询 比如通过ajax不停的请求 websocket相当于对HTTP协议进行了升级 客户端和服务端通过websocket协议握手成功后 两者之间
  • 动态内存管理—(malloc、calloc、realloc、free)及常见使用错误

    目录 存在动态内存分配的意义 动态内存函数的介绍 malloc和free calloc realloc realloc在调整内存空间的是存在两种情况 由于上述的两种情况 realloc函数的使用就要注意一些 补充一点 常见的动态内存错误 对
  • 关于Q格式数据总结

    Q格式表示为 Qm n 表示数据用m比特表示整数部分 n比特表示小数部分 共需要 m n 1位来表示这个数据 多余的一位用作符合位 假设小数点在 n位的左边 从右向左数 从而确定小数的精度 例如Q15表示小数部分有15位 一个short 型
  • 为什么有些人年纪轻轻就赚到了很多钱?富人的底层逻辑是什么?

    在 史记 司马迁的书中 除开项羽本纪 秦始皇本纪 高祖本纪英雄的叙述以外 还有一个十分关键的章节目录 那便是 货殖列传 这一章节 十分详尽的纪录那时候商业服务 经济发展 买卖的状况 也体现了司马迁对财富和化学物质的观点 简言之 便是一部有关
  • 安全服务工程师面试题

    文章目录 你如何保护系统和网络免受恶意攻击 你会使用哪些工具和技术 你对密码安全有什么了解 你如何确保用户密码的安全 你如何保护敏感数据和机密信息的安全性 你会使用哪些技术 你如何识别和应对网络威胁 你使用哪些工具和技术 你如何进行网络安全
  • 运行应用程序,提示无法正常启动(0xc000007b)的解决办法

    本文转载自VBcom大牛的博客 感谢VBcom 最后更新 2019 2 28 如图 0xc000007b这个错误使无数玩家烦恼 问题描述 出现这个错误 可能是硬件的问题 也可能是软件的问题 但是 由于硬件引起该问题的概率很小 并且除了更换硬
  • Linux Kernel 编译流程 (一)

    1 config 文件产生 研究Linux Kernel config文件的产生 添加自己的配置 Linux Kernel 4 18 20 Source Insight 3 5 Ubuntu 18 04 arm linux gnueabi
  • FIFO的使用攻略(一看就会)

    一 IP核的方式 1 打开IP核 含义 FIFO是一个先进先出的存储队列 与其他RAM不同的是FIFO没有地址 先入先出 作用 作用就是作为数据的队列通道 让数据暂时缓存 以等待读取 用于异步FIFO模块来实现接口 接口双方都在自己的时钟下
  • WEB安全系列之如何挖掘任意文件读取漏洞

    0x01 前言 任意文件读取漏洞 从代码审计的角度讲一讲 0x02 什么是任意文件下载漏洞 一般的网站都提供读取文件功能 常规的思路是使用一个动态页面 php jsp aspx asp等 将待下载文件作为参数一般参数名称为filename
  • Android面试必备!爆火超全的《Android性能优化全方面解析》

    一 前言 使用过Android系统手机的同学都知道 Android手机越用越卡 这个卡主要体现在手机系统越用越卡 打开APP的速度越来越慢 Android手机越用越卡的原因主要有 1 Android系统源码是开放的 像国内的几大手机厂商 都
  • 【数学建模】常用基本模型总结

    1 线性规划 Linear Programming 运筹学的一个重要分支 数学规划 线性规划是在一组线性约束条件的限制下 求一线性目标函数最大或最小的问题 概念 可行解 最优解 可行域 Matlab中求解线性规划的命令为如下 x返回决策向量
  • 宝塔Linux面板版本免费、专业和企业区别对比选择攻略

    宝塔Linux面板分为免费版 专业版 企业版和企业运维托管版 有必要购买专业版或企业版吗 宝塔Linux面板专业版 企业版和免费版有什么区别 使用免费版的Linux面板商用吗 新手站长来详细说下宝塔Linux面板免费版 专业版 企业版 企业
  • Magisk模块开发指南

    BusyBox Magisk整合了功能完整的BusyBox二进制文件 包括对SELinux的完整支持 执行文件位于 data adb magisk busybox Magisk的BusyBox支持运行时可切换的 ASH Standalone
  • ffmpeg基础五:单独解码裸流aac或MP3或H264

    av parse parse2 用于从输入的数据流中将流中的压缩编码数据一帧一帧的分离出来 也就是从一端数据码流中将需要解码的packet读取出来 由于H264由特殊的格式组成 StartCode NALU Header NALU Payl
  • Python - 实现logging根据日志级别输出不同颜色

    文章目录 一 完整代码 二 代码解释 三 附 自定义颜色对应代码 前段时间因为工作需要脚本打印不同颜色的日志 查找了网上的一些方法 大部分都需要再安装第三方模块 后来选择采用比较简易的办法 类似于print 函数自定义内容颜色 这种方式的缺
  • 14、mysql底层知识进阶-MySql中常用工具:mysqladmin、mysqlbinlog、mysqldump、mysqlimport、mysqlshow

    目录 1 MySql中常用工具 1 1 mysql 1 1 1 连接选项 1 1 2 执行选项 1 2 mysqladmin 1 3 mysqlbinlog 1 4 mysqldump 1 5 mysqlimport source 1 6
  • Qt 软件开发框架(详细版)

    该文章用图例 代码方式演示了 一个线上软件基本框架 精简 开发工具Qt VS2015 一 基本要素 这里会用简单的图例和完整代码 这里以Qt代码为例 说明一个线上软件基本的框架 一个线上windows软件 一般分为几个大的部分 1 UI模块
  • 什么是性能测试?

    什么是性能测试 什么是性能测试 压力测试软件性能测试是一种测试类型 旨在确定系统的性能以衡量性能 验证或验证系统的质量属性 例如在各种负载条件下的响应性 速度 可伸缩性 稳定性 在混合负载条件下对系统进行了测试 并检查了系统在各种工作负载下