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

性能测试相关知识总结

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

性能测试概念:

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

性能测试目的:

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

性能测试关键指标:

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

性能测试方法:

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

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

性能测试应用领域:

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

性能测试流程:

一、性能需求分析

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

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

二、性能测试计划

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

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

三、测试设计与开发

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

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

四、性能测试执行阶段

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

五、性能测试报告

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

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


推荐阅读
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • ejava,刘聪dejava
    本文目录一览:1、什么是Java?2、java ... [详细]
  • TiDB | TiDB在5A级物流企业核心系统的应用与实践
    TiDB在5A级物流企业核心系统的应用与实践前言一、业务背景科捷物流概况神州金库简介二、现状与挑战神州金库现有技术体系业务挑战应对方案三、TiDB解决方案测试迁移收益问题四、说在最 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • 深入理解Java虚拟机的并发编程与性能优化
    本文主要介绍了Java内存模型与线程的相关概念,探讨了并发编程在服务端应用中的重要性。同时,介绍了Java语言和虚拟机提供的工具,帮助开发人员处理并发方面的问题,提高程序的并发能力和性能优化。文章指出,充分利用计算机处理器的能力和协调线程之间的并发操作是提高服务端程序性能的关键。 ... [详细]
  • POCOCLibraies属于功能广泛、轻量级别的开源框架库,它拥有媲美Boost库的功能以及较小的体积广泛应用在物联网平台、工业自动化等领域。POCOCLibrai ... [详细]
  • java线程池的实现原理源码分析
    这篇文章主要介绍“java线程池的实现原理源码分析”,在日常操作中,相信很多人在java线程池的实现原理源码分析问题上存在疑惑,小编查阅了各式资 ... [详细]
  • 开发笔记:python协程的理解
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了python协程的理解相关的知识,希望对你有一定的参考价值。一、介绍什么是并发?并发的本质就是 ... [详细]
  • 一、死锁现象与递归锁进程也是有死锁的所谓死锁:是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 统一知识图谱学习和建议:更好地理解用户偏好
    本文介绍了一种将知识图谱纳入推荐系统的方法,以提高推荐的准确性和可解释性。与现有方法不同的是,本方法考虑了知识图谱的不完整性,并在知识图谱中传输关系信息,以更好地理解用户的偏好。通过大量实验,验证了本方法在推荐任务和知识图谱完成任务上的优势。 ... [详细]
  • 上图是InnoDB存储引擎的结构。1、缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。因此可以看作是基于磁盘的数据库系统。在数据库系统中,由于CPU速度 ... [详细]
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社区 版权所有