需求分析与定义

  针对本次项目性能测试的必要性评估,敏捷开发团队确定实施该次性能测试活动,并利用开源性能测试工具Jmeter开展,根据被测对象的应用特性,获取具体的性能测试需求。

  一般而言,被测对象的性能需求,会在用户需求规格说明书中给出,如单位时间内的访问量需达到多少、业务响应时间不超过多少、业务成功率不低于多少、硬件资源耗用要在一个合理的范围中,性能指标以量化形式给出。

  对于相对规范的产品,产品团队一般会给出类似下表的性能测试要求:

  要求:

  性能测试要求

  测试项

  响应时间

  业务成功率

  并发数

  CPU使用率

  内存使用率

  随机购买商品

  <=5秒

  100%

  100

  <=80%

  <=80%

  上表给出的性能指标非常明确。性能测试活动实施过程中,测试工程师只需收集商品购买业务的响应时间、访问成功率、并发数、CPU使用率、内存使用率等相关指标的监测数据,与上表的量化指标比对即可。满足相关指标,则测试通过,若未满足,则需要进行问题分析定位,最终进行调优与回归,直至达到性能测试需求。

  有明确性能需求时,测试活动相对来说较为容易开展

  但实际工作中,经常会碰到没有明确性能需求的测试要求。因此,测试工程师须具备根据不同输入分析,获取性能需求的能力。以本次项目为例,产品团队并未指明性能测试需求,那么测试工程师如何分析提取量化的性能指标呢?

  从用户应用角度考虑,被测对象常用业务性能存在瓶颈的话,很容易引起客户的反感。以登录功能为例,输入用户名与密码,点击登录按钮到显示成功登录信息,如果耗时1分钟,这样的速度用户绝对无法忍受。用户不常用的功能。

  比如年度报表汇总功能,三个季度甚至是一年才使用,等个10分钟或者更长时间也是正常的。不同的应用频率,决定了用户的使用感受,也决定了测试的需求。

  针对本次ECShop电商系统而言,商城用户经常使用的功能,且存在大量用户使用的业务为用户注册、登录、随机浏览商品及购买业务等,而其他功能则相对用户较少,具体的数据如果系统已经运营,则可从系统运营日志分析。如果尚未上线运营,则需要调研用户或根据自身经验进行分析获取。