`
yesjavame
  • 浏览: 689550 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

性能测试之场景设计思想(加了N多同事的观点,也是对之前一段时间产品性能测试的总结)

阅读更多

前段时间有幸收到珠海X公司性能题目,呵呵,接合之前的公司产品性能测试做以下总结。

个人认为有关性能测试场景问题,其实更佳着重于对性能测试目的考究。

以下也是我回复该公司邮件的一些择选:

验证测试是用于验证在特定的场景、时间、压力、环境和操作方式下系统能够正常的运行,服务器、应用系统和网络环境等软硬件设施还能否良好的支撑这些情况下用户的使用。验证性测试主要针对有明确的压力目标和预期结果,验证系统在这种压力下的各方面反映能够达到预期结果。


主要分以下几种:
压力测试:已知系统高峰期使用人数,验证各事务在最大并发数(通过高峰期人数换算)下事务响应时间能够达到客户要求。系统各性能指标在这种压力下是否还在正常数值之内。系统是否会因这样的压力导致不良反应(如:宕机、应用异常中止等)。

Ramp Up 增量设计 如并发用户为75人 系统注册用户为1500人 已5%-7%作为并发用户参考值。

一般以每15s加载5人的方式进行增压设计,该数值主要参考测试加压机性能,建议Run几次。

已事务通过率与错误率衡量实际加载方式。

Ramp Up增量设计目标 寻找已增量方式加压系统性能瓶颈位置 抓住出现的性能拐点时机 一般常用参考

Hits点击率与吞吐量、CPU、内存使用情况综合判断。

模拟高峰期使用人数,如早晨的登录,下班后的退出,工资发送时的消息系统等。

另一种极限模拟方式,可视为在峰值压力情况下同时点击事务操作的系统极限操作指标。

加压方式不变,在各脚本事务点中设置同集合点名称(如:lr_rendzvous("same");)

在场景设计中,使用事务点集合策略。以同时达到集合点百分率为标准,同时释放所有正在Run的Vuser.


稳定性测试:已知系统高峰期使用人数、各事务操作频率等。设计综合测试场景,测试时将每个场景按照一定人数比率一起运行,模拟用户使用数年的情况。并监控在测试中,系统各性能指标在这种压力下是否能保持正常数值。事务响应时间是否会出现波动或随测试时间增涨而增加。系统是否会在测试期间内发生如宕机、应用中止等异常情况。

根据上述测试中,各事务条件下出现性能拐点的位置,已确定稳定性测试并发用户人数。

仍然根据实际测试服务器(加压机、应用服务器、数据服务器三方性能),估算最终并发用户人数。

场景设计思想:从稳定性测试场景的设计意义,应分多种情况考虑:

针对同一个场景为例,以下已公文附件上传为例简要分析场景设计思想:

1)场景一:已压力测试环境下性能拐点的并发用户为设计测试场景,目的验证极限压力情况下测试服务器各性能指标。

2)场景二:根据压力测试环境中CPU、内存等指标选取服务器所能承受最大压力的50%来确定并发用户数。

测试方法:采用1)Ramp Up-Load all Vusers simultaneously

2)Duration-Run Indefinitely

3)在Sechedule-勾选Initalize all Vusers before Run


容错性测试:通过模拟一些非正常情况(如:服务器突然断电、网络时断时续、服务器硬盘空间不足等),验证系统在发生这些情况时是否能够有自动处理机制以保障系统的正常运行或恢复运行措施。如有HA(自动容灾系统),还可以专门针对这些自动保护系统进行另外的测试。验证其能否有效触发保护措施。


问题排除性测试:通过原有案例或经验判断,针对系统中曾经发生问题或怀疑存在隐患的模块进行验证测试。验证这些模块是否还会发生同样的性能问题。如:上传附件模块的内存泄露问题、地址本模块优化、开启Tivoli性能监控对OA系统性能的影响等等。


测评测试是用于获取系统的关键性能指标点,而进行的相关测试。主要是针对预先没有明确的预期测试结果,而是要通过测试获取在特定压力场景下的性能指标(如:事务响应时间、最大并发用户数等)


评测事务交易时间:为获取某事务在特定压力下的响应时间而进行的测试活动。通过模拟已知客户高峰期的各压力值或预期所能承受的压力值,获取事务在这种压力下的响应时间。


评测事务最大并发用户数:为获取某事务在特定系统环境下所能承受的最大并发用户数而进行的测试活动。通过模拟真实环境或直接采用真实环境,评测在这种环境下事务所能承受的最大并发用户数。判定标准阈值需预先定义(如响应时间,CPU占用率,内存占用率,已出现点击率峰值,已出现吞吐量峰值等)


评测系统最大并发用户数:为获取整个系统所能够承受的最大并发用户数而进行的的测试活动。通过预先分析项目各主要模块的使用比率和频率,定义各事务在综合场景中所占的比率,以比率方式分配各事务并发用户数。模拟真实环境或直接采用真实环境,评测在这种环境下系统所能承受的最大并发用户数。判定标准阀值预先定义(如响应时间,CPU占用率,内存占用率,已出现点击率峰值,已出现吞吐量峰值等)。取值标准以木桶法则为准(并发数最小的事务为整个系统的并发数)。


评测不同数据库数据量对性能的影响:针对不同数据库数据量的测试,将测试结果进行对比,分析发现数据库中各表的数据量对事务性能的影响。得以预先判断系统长时间运行后,或某些模块客户要求数据量较大时可能存在的隐患。


问题定位测试在通过以上测试或用户实际操作已经发现系统中的性能问题或怀疑已存在性能问题。需通过响应的测试场景重现问题或定义问题。如有可能,可以直接找出引起性能问题所在的代码或模块。
该类测试主要还是通过测试出问题的脚本场景,并可以增加发现和检测的工具,如开启Tivoli性能监控、开启HeapDump输出、Linux资源监控命令等。并在场景运行过程中辅以手工测试。

分享到:
评论

相关推荐

    性能测试之场景设计

    其中,场景设计是性能测试的核心部分,因为合理的场景设计能够确保测试数据的有效性和准确性,进而帮助识别系统瓶颈,进行系统优化。场景(Scenario)是通过模拟多种用户行为来产生服务器负载的工具,其目的是验证...

    XXX 金融项目性能测试场景设计

    总结来说,XXX金融项目性能测试场景设计是通过一系列精心设计的测试场景,评估系统在不同负载下的性能和稳定性,确保系统在高并发情况下仍能保持高效运行,为用户提供顺畅的交易体验。这个过程需要结合业务需求、...

    性能测试场景用例模版.doc

    性能测试是一种重要的软件质量保证活动,它旨在评估和优化系统在高负载或大量并发用户情况下的行为和性能。本文档提供了详细的性能测试场景用例模板,涵盖了从测试目的到测试结果的全过程,对于理解如何有效地进行...

    性能测试场景设计.docx

    ### 性能测试场景设计详解 #### 一、引言 性能测试是软件质量保障的重要组成部分,它旨在评估系统的性能特点及其在预期负载下的表现。性能测试不仅关注系统的响应时间和吞吐量,还关注资源利用率和其他关键性能...

    软件测试实验报告(使用LoadRunner进行性能测试实验)

    软件测试实验报告(使用LoadRunner进行性能测试实验) 一、性能测试简介 ...通过本次实验,我们学习了LoadRunner的使用和性能测试流程,掌握了性能测试的基准和方法,提高了我们对软件测试的理解和能力。

    测试用例实例(含:功能测试用例、性能测试用例、兼容性测试用例)

    - **测试过程说明:** 对各个功能场景进行测试,并记录期望性能与实际性能的差异。 - **前置条件:** 明确测试前需满足的条件,如环境配置等。 #### 二、性能测试用例 **定义与目标:** 性能测试用于评估软件系统...

    性能测试实战(一 ~ 五)+自动化接口实战接口(一 ~ 三)+ 电商项目测试实战(一 ~ 四)

    例如,性能测试实战(一 ~ 五)可能涵盖了如何设计测试场景、设置负载模型、监控系统资源、分析结果和调优策略等内容。 - 文件“性能测试实战(三).docx”和“性能测试实战(四).docx”及“性能测试实战(五)....

    loadrunner性能测试模板和性能测试计划模板

    1. **性能测试模板**:这是一个基础框架,用于指导测试人员进行性能测试的各个步骤,包括测试目标、测试环境设置、测试场景设计、测试执行和结果分析等。模板可能包含关键性能指标(如响应时间、事务率、吞吐量等)...

    软件性能测试与调优指南

    该指南详细阐述了性能测试的目标、类型、阶段、过程,强调了测试者在分析性能需求、制定测试计划、设计测试场景、编写测试程序与脚本、执行测试案例、分析测试结果,直至性能调优和性能回归测试的各个环节中应遵循的...

    服务器性能测试规范和基本点

    服务器性能测试是确保系统性能的重要一步骤,涉及到多个方面的知识点。本文将从性能测试流程、测试设计、测试执行、测试结果分析、调优和总结等方面进行详细的阐述。 性能测试流程: 性能测试流程可以分为需求分析...

    jmeter性能测试报告.docx

    JMeter是一款广泛使用的开源性能测试工具,适用于模拟多种负载条件,进行负载测试、压力测试、并发测试和容量测试,以验证系统的性能表现。 1.1 性能测试概念 性能测试包括负载测试和压力测试,前者用于了解系统在...

    Jmeter性能测试报告模板

    ### Jmeter性能测试报告模板知识点解析 #### 一、性能测试概述 性能测试是一种软件测试类型,用于评估软件系统的性能,特别是在高负载下系统的行为。它可以帮助开发人员和测试工程师了解系统在各种条件下的表现,...

    软件系统性能测试报告

    报告将涵盖测试的目的、关键术语、参考资料、测试需求、前置操作、测试环境设置、测试脚本设计、基础数据准备、人力资源分配以及负载场景配置和测试监控等方面。 【测试需求】 2.1 被测系统分析 在进行性能测试...

    性能测试方案模版.doc

    性能测试报告是整个测试过程的总结,也是后续系统调优的重要依据之一。 #### 六、性能调优与回归 最后一步是对系统进行性能调优,并进行回归测试以验证调优效果。这一阶段通常涉及对系统架构、代码逻辑等方面的...

    RabbitMQ性能测试报告

    报告中详细记录了其他测试场景的详细数据,包括多生产者与多消费者组合的测试,这些数据将有助于全面评估RabbitMQ的性能和可扩展性。 3 **测试结论** 通过单机和集群模式的测试,我们可以得出以下结论: - ...

    性能测试的分享PPT来自业界

    通过明确测试目标、选择合适的工具、设计有效的测试场景等十大必备技巧,结合跨团队协作、早期介入等最佳实践,可以大大提高性能测试的有效性和效率。此外,参考业界专家的经验和方法,如IBM Gary Coil的分享,对于...

    性能测试方案模板

    - 制定详细的测试计划时间表,包括测试准备阶段、执行阶段和总结阶段的具体时间安排。 #### 八、项目实施风险分析 - 识别潜在的风险点,如技术难题、资源限制等,并制定相应的应对措施。 - 定期审查项目进展,及时...

    京东金融性能测试指南

    - **性能测试报告与总结**:撰写详细的性能测试报告,总结测试过程中发现的问题及改进建议。 - **性能准入标准与建议**:制定了性能测试的准入标准,并提出了提高性能的最佳实践建议。 #### 三、性能分析与调优 - ...

Global site tag (gtag.js) - Google Analytics