浸泡测试
浸泡测试是一种非功能测试,用于测量软件应用程序在较长一段时间内在大量负载下的性能。浸泡测试的目标是确保软件应用程序是否保持高使用量,并检查在其设计预期之外会发生什么情况。
下图描述了一个测试周期,其中显示了在哪个阶段对应用程序执行浸泡测试(性能测试类型)。

在这种类型的测试中,基本上监控的是系统中应用程序的内存利用率。在系统层面上进行测试,以确定系统是否经得起非常高的使用量,并看看在其设计预期之外会发生什么。
在本教程中,将了解-
- 为什么要做浸泡测试?
- 什么时候做浸泡测试?
- 浸泡测试策略
- 浸泡测试的特点
- 浸泡测试示例
- 浸泡测试期间观察到的常见问题
为什么要做浸泡测试?
系统在使用2小时时可能运行正常,但当同一系统连续使用10小时或更长时间时,它可能会出现故障或行为异常/随机/可能崩溃。为了预测这种故障,需要进行浸泡测试。
什么时候做浸泡测试?
浸泡测试应在以下情况下进行:-
- 在构建到客户端之前,即在特定平台上发布任何应用程序之前,当处于浸泡状态时,需要成功地经历一系列l,然后应该立即上报。
- 进行浸泡测试的最佳时间是在周末,因为应用程序需要长达一天或一夜的运行状态。浸泡测试是每个公司都需要非常严格遵守的最重要的合规性要求之一。
浸泡测试策略
长时间会话浸泡测试是一种策略,在此策略中,系统将承受更长时间的负载。
一个简单的例子是,用户登录系统长达数小时,执行多个业务事务。系统/数据库服务器上可能有大量负载,这可能会导致系统/数据库服务器停止/崩溃。
在长时间浸泡测试中,多天(比如30天)的活动在一个时间框架(比如2天)内执行。如有必要,Java虚拟机等设施的内存使用情况也很重要,需要对其进行监控。
以下是任何用户/测试人员在开始浸泡测试之前需要执行的更多检查:
-
监控数据库资源消耗情况。
-
监控服务器资源消耗情况(ex-CPU使用率)。
-
浸泡测试应该以真实的用户并发运行。
浸泡测试的特点
标准的浸泡测试方法应具备以下特点:
- 大多数浸泡测试的持续时间通常由可用的时间决定。
- 任何应用程序需要较长的时间段,则必须在不中断的情况下运行。
- 应该涵盖利益相关者同意的所有场景。
- 大多数情况下,每个系统都有一个定期的维护窗口时间段,而这些窗口时间段之间的时间是确定浸泡测试范围的关键驱动因素。
浸泡测试示例
- 对于银行领域,当有大量来自用户的数据时,测试人员会持续将系统加载70小时至150小时,以检查应用在此加载期间的表现。
- 假设有33,000个登录,需要通过系统,代表七天半的活动。在这种情况下,只有通过这样的测试,才能观察到在受控条件下性能的任何退化。
- 在视频、游戏的场景下,移动应用程序等涉及在各种操作模式(例如空闲、在标题屏幕暂停等)下让游戏或应用程序长时间处于运行状态,以确定应用程序是否可以处理持续预期的负载。
浸泡测试期间观察到的常见问题
- 内存分配(最终会导致内存危机的内存泄漏或只在一段时间内显现的舍入错误)。
- 数据库资源利用率(在某些情况下无法关闭数据库游标,最终会导致整个系统停顿)。
- 性能下降,即确保在长时间持续活动后的响应时间与测试开始时一样好。
- 无法关闭多层系统的各层之间的连接,可能会使系统的某些或所有模块停滞。
- 当内部数据结构在长时间测试期间变得效率较低时,某些功能的响应时间逐渐降低。
总结
- 在软件工程中,进行浸泡测试是为了确定被测试的应用程序是否能够承受持续的负载。
- 这是一种性能测试。
- 帮助系统确定它是否经得起非常高的使用量
- 在这种类型的测试中,基本上监视的是系统中应用程序的内存利用率
- 在开始浸泡测试之前,需要由任何用户/测试员执行的检查包括
- 监视数据库资源消耗。
- 监视服务器资源消耗(ex-CPU使用率)。
- 浸泡测试应以实际用户并发性运行。