什么是性能测试?

什么是性能测试?

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

为什么要进行性能测试?

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

性能测试的类型

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利用率
  • 硬件资源不足

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

原文地址:https://www.cnblogs.com/lixiaoyang/p/11584747.html

时间: 2024-08-03 00:30:23

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

app性能测试【通过loadrunner录制】

随着智能手机近年来的快速增长,从游戏娱乐到移动办公的各式各样的手机APP软件渗透到我们的生活中,对于大型的手机APP测试不仅要关注它的功能性.易用性还要关注它的性能,最近发现LoadRunner12可以对手机APP做性能测试,但由于LoadRunner12还没有破解版最多只有50个并发用户,所以我用LoadRunner12录制手机APP的脚本后放到LoadRunner8.0里进行压测,LoadRunner8.0可并发10000个用户. 1.下载CCProxy代理服务器,安装运行该软件用来检测本机

RC ORC Parquet 格式比较和性能测试

RC ORC Parquet 格式比较和性能测试 作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 为什么要比较这三者 为什么要比较,起因是为了提高Hadoop集群的存储和计算效率,尤其是离线Hive作业的效率,为什么比较的是这三者,是因为三者是目前Hive离线作业中正在大规模使用或可能大规模使用的三种主流的相对成熟的文件格式 对于ORC性能的评测,Hortonworks发过一

Android性能测试

测试应用的启动时间 adb shell am start -W packagename/activity,eg:adb shell am start -W com.tencent.mm/.ui.LauncherUI,显示的结果中,thisTime和totalTime的含义分别为: thisTime: just current activity launched time totalTime:the activity you started may be on the bottom of acti

性能测试指标

性能测试指标 通用指标(指Web应用服务器.数据库服务器必需测试项) Web服务器指标 数据库服务器性能指标 系统的瓶颈定义 稳定系统的资源状态 通俗理解: ·日访问量 ·常用页面最大并发数 ·同时在线人数 ·访问相应时间 案例:最近公司一个项目,是个门户网站,需要做性能测试,根据项目特点定出了主要测试项和测试方案: 一种是测试几个常用页面能接受的最大并发数(用户名参数化,设置集合点策略) 一种是测试服务器长时间压力下,用户能否正常操作(用户名参数化,迭代运行脚本) 一种则需要测试服务器能否接受

Android内存和Cpu性能测试

Android内存限制java虚拟机有内存使用上限的限制 adb shell进入手机,这此参数被纪录在/system/build.prop中,如果想直接查看可以使用adb shell getprop 单个应用程序最大内存限制,超过这个值会产生OOMdalvik.vm.heapgrowthlimit 应用启动后分配的初始内存dalvik.vm.heapstartsize 单个java虚拟机最大的内存限制,超过这个值会产生OOMdalvik.vm.heapsize 小米2S的一些内存限制 #查看单个

16、编译安装bind 9.10.6及queryperf性能测试 学习笔记

1.安装开发环境 [[email protected] ~]# yum -y groupinstall "Server Platform Development" "Development tools" 2.编译安装bind [[email protected] ~]# tar xf bind-9.10.6.tar.gz [[email protected] ~]# cd bind-9.10.6 [[email protected] bind-9.10.6]# ./

孰优孰劣?Dubbo VS Spring Cloud性能测试大对决!

最近我们试图从Dubbo迁移到Spring Cloud.为此对二者分别进行了性能测试.为了得出数据量不同的情况下的二者的性能表现,我们分别准备了一个25个属性pojo对象和一个50个属性的pojo对象,通过这样的方式我们也可以间接地了解二者在序列化方面的水平. 以下是测试结果: 25个属性,10W次: 50个属性,10W次: 分析:         由于Spring Cloud与Dubbo天生使用的协议层面不一样,前者是HTTP,后者是TCP(使用的是Netty NIO框架,序列化使用的阿里定制

利用apache ab命令完成性能测试

ab是什么 ab的全称是ApacheBench,是 Apache 附带的一个小工具,专门用于 HTTP Server 的benchmark testing,可以同时模拟多个并发请求. ab的用法 ab 的用法是:ab [options] [http://]hostname[:port]/path 例如: ab -n 1000 -c 200 http://xqtesting.blog.51cto.com/ 上例表示总共访问小强的博客这个脚本1000次,200并发同时执行. ab -n 1000 -

利用pylot进行性能测试

介绍 l 基于python编写的性能测试工具,简单.易用,可以完成不太复杂的性能测试. l 目前只能基于python2.5 32位来使用,比较遗憾,而且貌似已经不在维护了,唉 安装 l 先安装python2.5 32位,并修改环境变量 l 下载pylot压缩包,解压后直接可以用,不需要安装 l 还有两个包是和图形相关的,是exe文件,下载下来后直接安装即可 使用 1.最简单的使用 l 修改testcase.xml,添加你要测试的URL l cmd进入pylot目录,执行命令:python run

利用jmeter的集合点完成性能测试

jmeter是一个开源的轻量级工具,随着互联网的发展,jmeter应用的越来越广泛.除了可以完成我们的接口自动化,还可以完成我们所需的性能测试. 随着jmeter的应用和升级,之前与lr的差别越来越小.现在我们通过jmeter的Synchronizing Timer设置集合点进行性能测试. 一.添加集合点: 1.右键点击线程组,选择定时器 2.定时器中选择Synchronizing Timer 3.设置Number of Simulated Users to Group by 4.设置Timeo