性能测试之场景设计思想
关键字: 性能测试 场景设计 前段时间有幸收到珠海X公司性能题目,呵呵,以下是对公司产品性能测试的总结。个人认为有关性能测试场景问题,其实更佳着重于对性能测试目的考究。 验证测试是用于验证在特定的场景、时间、压力、环境和操作方式下系统能够正常的
前段时间有幸收到珠海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系统性能的影响等等。
测评测试是用于获取系统的关键性能指标点,而进行的相关测试。主要是针对预先没有明确的预期测试结果,而是要通过测试获取在特定压力场景下的性能指标(如:事务响应时间、最大并发用户数等)。
评测事务交易时间:为获取某事务在特定压力下的响应时间而进行的测试活动。通过模拟已知客户高峰期的各压力值或预期所能承受的压力值,获取事务在这种压力下的响应时间。
原文转自:http://www.ltesting.net