热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

性能测试相关知识总结

性能测试概念:指测试系统在一定的负荷压力下,系统的响应时间、吞吐量、稳定性、系统可扩展性等性能指标,并结合应用框架和实现细节找出问题,最终确认问题得到解决的过程。性能测试目的:评估

性能测试概念:

指测试系统在一定的负荷压力下,系统的响应时间、吞吐量、稳定性、系统可扩展性等性能指标,并结合应用框架和实现细节找出问题,最终确认问题得到解决的过程。

性能测试目的:

  • 评估系统能力:测试中得到的负荷和响应时间等数据可被用于验证计划模型的能力,并帮助做出决策。
  • 识别体系中的弱点:受控的负荷可以被动增加并突破极限,从而修复体系的瓶颈或薄弱的地方。
  • 系统调优:重复运行测试,验证调整系统的活动时候获得预期结果,进而改进性能。
  • 验证稳定性:在一定负荷条件下执行测试一段时间,评估系统稳定性和可靠性是否满足需求。

性能测试关键指标:

  • 响应时间:系统对请求做出相应所需的时间,是用户感知软件性能的主要指标。
  • 并发数:同时访问系统的用户数。并发指从业务的角度模拟真实用户同时访问系统。
  • 吞吐量:指单位时间内系统处理用户的请求数。
  • TPS(Transaction Per second):指每秒系统能够处理事务或交易的数量,它是衡量系统处理能力的重要指标。
  • 每秒点击数:每秒用户向Web服务器提交HTPP请求数,Web应用特有指标。

性能测试方法:

  • 验收性能测试:通过模拟生产环境运行的业务压力量和使用场景组合,测试系统是否满足生产性能要求。是一种完全确定了系统运行环境和测试行为的测试方法。典型流程:确定用户场景 > 列出需关注的性能指标 > 测试执行 > 测试分析
  • 负载测试:站在用户的角度观察软件在一定条件下,系统性能是否满足用户需求。该指标一般体现为响应时间、交易容量、并发容量、资源使用率等。
  • 压力测试:指在超负荷的交易量、并发用户数等条件下系统的表现。压力测试的预期结果就是系统出现问题,要考察的是系统处理问题的方式。举个栗子:期望一个系统在面临压力时能够保持稳定,处理速度可以变慢,但不能崩溃。所以压力测试是为了识别系统的弱点和在极限负载条件下,程序将如何运行。
  • 并发测试:验证系统的并发处理能力。一般是和服务器建立大量的并发连接,通过客户端的响应时间和服务器端的性能监控情况判断系统是否达到既定的并发能力指标。并发测试往往涉及服务器的并发容量以及多进程、多线程协调同步可能带来的问题,是要特别注意且必须要测试的。
  • 基准测试:当软件系统新增一个模块时,需要做基准测试。操作:关闭模块后记录系统各项性能指标作为基准(Benchmark),然后与打开模块后的各项系统指标进行对比,以判断模块对系统性能的影响。
  • 可靠性测试:测试系统在一定负载下长时间运行后是否会发生问题。有些系统问题是需要时间积累才能够到能度量的程度。举个栗子:内存泄漏问题就粗腰啊经过一段时间积累才能显现出来,在软件运行初期很难检测到,内存泄漏的原因是客户端和服务器连接通路不能及时有效的释放导致的。
  • 配置测试:通过对被测系统软硬件环境的调整,了解各种不同环境对系统性能影响的程度,从而找到系统各项资源的最优分配原则。一般用于性能调优和规划能力。
  • 可恢复测试:用来校验当系统局部发生故障,用户能否继续使用系统,或者用户将受到多大程度的影响,测试系统能否快速的从错误状态中恢复到正常状态。并非所有系统都需要进行失效性测试。

     当接手一个软件项目后,在有限的资源条件下,选择去做哪种测试,应根据当前软件过程阶段和项目的本身特点来做选择。

性能测试应用领域:

  • 能力验证:最常用的应用领域,通常描述“某系统能否在A条件下具备B能力”。特点:①要求在已确定的条件下运行 ②需要根据典型场景设计测试方案及用例。
  • 规划能力:关心的是“应如何使系统具备满足需求的性能能力”。特点:①探索性测试 ②可被用于了解系统性能以及获得扩展性能的方法。
  • 性能调优:对系统性能进行调优。一般调优步骤:①确定基准环境、基准负载和基准性能指标 ②调整系统运行环境和实现方法,执行测试 ③硬件环境调整 ④系统设置的调整、应用级别的调整 ⑤记录测试结果,进行分析
  • 缺陷发现:主要目的是通过性能测试手段发现系统中存在的缺陷,并没有可参考的性能指标或需要达到的性能目标,因此不要采用并发测试方法,若需要关注压力及失效回复过程中的问题,则可以采用压力测试和失效恢复测试的方法。
  • 性能基准比较:在不设定明确的性能目标的情况下,通过比较得到每次迭代中的性能表现 变化,根据这些变化决定迭代是否达到预期目标。

性能测试流程:

一、性能需求分析

    性能需求分析需要得出的结论:

  • 明确是否真的需要做性能测试
  • 明确被测系统特点、基本业务、关键业务、用户行为
  • 明确性能测试范围
  • 明确性能测试指标及测试目标
  • 明确性能测试策略

二、性能测试计划

    该阶段用于生成指导整个测试执行的计划,主要完成以下活动:

  • 明确性能测试团队成员及其职责
  • 测试经理、测试设计、测试开发、测试执行、测试分析、支持
  • 明确测试时间
  • 明确测试环境及测试工具
  • 测试场景设计

三、测试设计与开发

    该阶段占据了很大的时间比重,主要完成以下工作:

  • 测试环境准备
  • 测试用例设计
  • 测试脚本开发与调试
  • 测试数据准备

四、性能测试执行阶段

    该阶段相对比较简单,主要工作是执行测试并记录结果,一般只需要使用菜单或按钮即可完成,记录测试的工作也可以依靠工      具完成。

五、性能测试报告

    性能测试报告是性能测试的里程碑,通过报告能展示出性能测试的最终成果,对测试结果进行分析,根据测试的目的给出测试      结论,并展示系统性能是否符合需求,是否有性能隐患。性能测试报告中需要阐明:

  • 性能测试目标、性能测试环境
  • 性能测试数据构造规则、性能测试策略
  • 性能测试结果、性能测试调优说明
  • 性能测试过程中遇到的问题和解决办法等


推荐阅读
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 如何利用Java 5 Executor框架高效构建和管理线程池
    Java 5 引入了 Executor 框架,为开发人员提供了一种高效管理和构建线程池的方法。该框架通过将任务提交与任务执行分离,简化了多线程编程的复杂性。利用 Executor 框架,开发人员可以更灵活地控制线程的创建、分配和管理,从而提高服务器端应用的性能和响应能力。此外,该框架还提供了多种线程池实现,如固定线程池、缓存线程池和单线程池,以适应不同的应用场景和需求。 ... [详细]
  • Java高并发与多线程(二):线程的实现方式详解
    本文将深入探讨Java中线程的三种主要实现方式,包括继承Thread类、实现Runnable接口和实现Callable接口,并分析它们之间的异同及其应用场景。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 在多线程环境中,IpcChannel的性能表现并未如预期般优于Tcp和Http通道。实际测试结果显示,在IIS6中通过Remoting创建的Ipc通道,其速度比Tcp通道慢了约20倍。本文详细分析了这一现象的原因,并提出了针对性的优化建议,以提升IpcChannel在高并发场景下的性能表现。 ... [详细]
  • Cosmos生态系统为何迅速崛起,波卡作为跨链巨头应如何应对挑战?
    Cosmos生态系统为何迅速崛起,波卡作为跨链巨头应如何应对挑战? ... [详细]
  • 尽管我们尽最大努力,任何软件开发过程中都难免会出现缺陷。为了更有效地提升对支持部门的协助与支撑,本文探讨了多种策略和最佳实践,旨在通过改进沟通、增强培训和支持流程来减少这些缺陷的影响,并提高整体服务质量和客户满意度。 ... [详细]
  • 建立项目接口文档_【学习】接口测试工具对比
    如今,接口测试工具这个市场,种类非常多,非常繁杂。国外接口测试工具巨头:postman、jmeter和loadrunner等 ... [详细]
  • 深入解析CAS机制:全面替代传统锁的底层原理与应用
    本文深入探讨了CAS(Compare-and-Swap)机制,分析了其作为传统锁的替代方案在并发控制中的优势与原理。CAS通过原子操作确保数据的一致性,避免了传统锁带来的性能瓶颈和死锁问题。文章详细解析了CAS的工作机制,并结合实际应用场景,展示了其在高并发环境下的高效性和可靠性。 ... [详细]
  • 线程能否先以安全方式获取对象,再进行非安全发布? ... [详细]
  • 本文深入解析了Django框架中的MVT(Model-View-Template)设计模式,详细阐述了其工作原理和应用流程。通过分析URL模式、视图、模型和模板等关键组件,读者将全面理解Django应用程序的架构体系,掌握如何高效地构建和管理Web应用。 ... [详细]
  • Python全局解释器锁(GIL)机制详解
    在Python中,线程是操作系统级别的原生线程。为了确保多线程环境下的内存安全,Python虚拟机引入了全局解释器锁(Global Interpreter Lock,简称GIL)。GIL是一种互斥锁,用于保护对解释器状态的访问,防止多个线程同时执行字节码。尽管GIL有助于简化内存管理,但它也限制了多核处理器上多线程程序的并行性能。本文将深入探讨GIL的工作原理及其对Python多线程编程的影响。 ... [详细]
  • 深入浅析JVM垃圾回收机制与收集器概述
    本文基于《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)》的阅读心得进行整理,详细探讨了JVM的垃圾回收机制及其各类收集器的特点与应用场景。通过分析不同垃圾收集器的工作原理和性能表现,帮助读者深入了解JVM内存管理的核心技术,为优化Java应用程序提供实用指导。 ... [详细]
  • MySQL数据库安装图文教程
    本文详细介绍了MySQL数据库的安装步骤。首先,用户需要打开已下载的MySQL安装文件,例如 `mysql-5.5.40-win32.msi`,并双击运行。接下来,在安装向导中选择安装类型,通常推荐选择“典型”安装选项,以确保大多数常用功能都能被正确安装。此外,文章还提供了详细的图文说明,帮助用户顺利完成整个安装过程,确保数据库系统能够稳定运行。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
author-avatar
比熊--悉尼
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有