大家好,我是阿萨。
今天聊一个性能测试里的Spike testing 。
什么是峰值测试?
峰值测试是一种性能测试,我们通过让系统承受突然增加或减少的负载来观察它的行为。这种工作负荷的突然增加和减少就是峰值测试。它是性能测试的一部分,因此也是非功能测试。
峰值测试的目的
- 检查系统是否能经受住工作负荷的突然增加和减少(系统的可持续性)。
- 确定每次峰值测试后的恢复时间。
- 确定系统或应用程序的弱点。
- 观察软件在高峰期的响应时间。
- 确定其在峰值期间和之后的性能。
峰值测试中的工作负荷模型
- 恒定工作负载峰值模型
- 阶梯式工作负载峰值模型
- 随机工作负载秒杀模型
设计工作负载的负载类型
- 基本负载 - 这是给予系统的平均用户负载,以观察它在日常工作中的表现。
- 峰值负载 - 负载的突然增加,观察系统对它的反应。这种负载是为了检查系统是否能够处理现实生活中突然出现的用户高峰。
实现峰值测试的步骤
1. 设置环境 - 为了实现高质量的测试,总是设置一个有利于测试条件的环境。
2. 确定最大负载 - 要开始测试过程,首先确定你的系统可以处理的最大或极端负载。这也被称为最大用户负载能力,因为在这一步确定了可以同时访问应用程序的用户总数。
3. 负载的递增 - 负载被递增到其峰值,即形成一个峰值。这种增加不是逐渐的,而是突然的增加。这个峰值是通过任何可取的峰值工具创造的。
4. 分析峰值性能--创建的峰值被保留一段时间,以注意系统在突然增加的负载下的行为变化。在高峰期分析其响应时间、可持续性和性能。
5. 负荷的减少 - 负荷被减少到零或最小值。这次也是负载的突然下降,而不是逐步下降。整个设置是为了不改变突然的峰值。在这个时间段内,将检查应用程序的生存情况。
6. 性能图表分析 - 观察完成后创建图表。所有种类的因素都被考虑在内。
使用的工具
为了进行峰值测试,需要使用适当的工具来实现精确的结果。一些常用的工具有:
- Apache JMeter - JMeter最初被设计用来进行负载测试,但现在也被开发用于其他领域。它是一个开源的工具,支持Java语言。它是性能测试中最受欢迎的工具之一。
- LoadRunner - 这个工具也是最常用的测试工具之一,由惠普公司拥有。这个工具相当有效,可以为一个应用程序模拟数百个用户,并同时分析每个用户的性能。唯一的缺点是它不是一个开源工具,而且比JMeter要复杂一些。
让我们看看Spike测试的优点和缺点。
优点:
- 它有助于确定软件在极端条件下的强度。
- 防止应用程序崩溃。
- 使软件准备好应对现实生活中的情况。
- 解决最坏的情况,这在标准测试程序中通常是做不到的。这使系统更具有可持续性。
缺点:
- 需要性能测试方面的专家,不能由普通测试人员进行。
- 这个过程本身就很昂贵,因此,不是每个人都能负担得起。
- 与其他性能测试方法相比,进行尖峰测试需要更长的时间。这可能会导致产品的延迟部署。
结论
建议对环境进行适当的设置。最好是在大型项目上进行这种测试,因为它相当昂贵。一些常见的例子是,当任何电子商务网站开始季末销售时,当度假季节来临,成千上万的用户访问旅游和旅行网站时,当特定网站的某些内容成为病毒时,都需要进行尖峰测试,等等。JMeter比Loadrunner更受欢迎,因为它是免费的,而且有更好的用户界面,因此更容易使用。