`
yesjavame
  • 浏览: 656295 次
  • 性别: 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资源监控命令等。并在场景运行过程中辅以手工测试。

分享到:
评论

相关推荐

    性能测试之场景设计思想

    性能测试之场景设计思想、性能测试之场景设计思想

    性能测试之场景设计

    性能测试之场景设计,

    性能测试场景设计

    性能测试场景设计,

    软件性能测试之场景设计思想

    以下也是我回复该公司邮件的一些择选:验证测试是用于验证在特定的场景、时间软件性能测试之场景设计思想前段时间有幸收到珠海X公司性能题目,呵呵,以下是对公司产品性能测试的总结。个人认为有关性能测试场景问题...

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

    性能测试场景设计是为了明确性能测试范围,性能测试场景的设计与执行是整个性能测试活动的核心与灵魂。 性能测试的场景如何定义?我们可以理解为功能测试中的用例,即性能测试的场景就是性能测试的用例。性能测试的...

    基于场景的性能测试设计

    场景设计,性能测试设计,性能测试,loadrunner性能测试设计 本文重点介绍如何基于场景来设计性能测试。选择典型的用户场景来进行测试,不但可以大大降低执行成本,更能提高性能测试执行效率。

    性能测试场景设计及服务器监控实例

    2、3条线程任务,每一个持续时间是600秒,10个线程运行600秒后再加10个,共30个线程 3、100个线程按阶梯状递增运行,每5s内加载20个线程直到100,每个阶梯是600s,最后一个阶梯是1000s (并发100线程时运行1000s),...

    性能测试需求分析与脚本开发、场景设计、分析-3atesting.PDF

    性能测试需求分析与脚本开发、场景设计、分析-3atesting.PDF

    性能测试场景分析

    本文档是性能测试基础,用于在初期进行场景分析时,设计测试用例方法和分析。

    性能测试基本概念、应用场景

    一、 什么是软件性能 二、不同群体眼中的性能 三、性能测试类型 四、性能测试应用场景 五、性能测试基本概念 六、理发店模型和地铁进站模型 七、做好性能测试需要掌握的知识

    非常好的某网站性能测试用例

     首先,我不去在乎它要求的性能是什么,我只需要去做在一定的测试环境下对系统进行压力测试,找到各个性能指标的临界点就好了,至于是否达到性能指标,在和性能需求对照编写测试报告即可。  所以,针对这几个需要...

    Web性能测试实战

    本书是一本总结实践经验和成果的作品,主要为测试人员规划、设计、实施Web性能测试而编写。本书既包含Web性能测试的基础理论,又包含理论在实践中的应用。 本书第1章介绍了性能测试基础知识和性能测试常见的误区。第...

    性能测试场景的设计方法

    性能测试场景的设计方法 基准场景、 容量场景、稳定性场景、异常场景)来覆盖一个性能需求

    性能测试理论方法及loadrunner工具使用介绍PPT,用于测试岗位的性能测试,性能测试的需求分析,性能测试方法,测试场景设计

    性能测试理论方法及loadrunner工具使用介绍,用于测试岗位的性能测试,性能测试的需求分析,性能测试方法,测试场景设计和loadrunner工具使用介绍,适用于性能测试工作岗位,用于客户端+服务器应用环境,行业如银行...

    性能测试经验总结

    关于性能测试经验总结,其中包括测试计划、测试脚本生成、如何建立场景、如何运行场景、如何监视场景、最后分析测试结果等内容

Global site tag (gtag.js) - Google Analytics