执行测试时,LoadView 可以中止测试会话,并将它们标记为 未完成 状态。 在大多数情况下,此类会话不会显示任何对测试结果分析有意义的静态。 因此,默认情况下,我们不会将未完成的会话视为有故障的会话,并且不会将未完成的会话数据包含在错误统计和测试报告中。 但是,在某些情况下,您可能需要使用未完成的会话详细信息进行更深入的分析和故障排除。

通常,经验法则是,如果您在 日志 选项卡下显示负载测试会话详细信息,则无需分析未完成的会话报告。 否则,在 日志 选项卡下,选择在会话日志中 包含未完成的会话 ,并检查会话详细信息是否有错误。 如果在测试运行中未检测到错误,请确保测试持续时间是否足够长,以重播整个脚本。

有两种类型的未完成会话,具体取决于它们对测试结果的影响。

第一种类型是最常见的,包括测试结束时开始并因测试持续时间结束而流产的会话。 一旦测试持续时间延长,LoadView 在实际测试结束时间后再等待 30 秒,并自动中止所有未完成的测试会话。 如果某些测试会话在测试运行结束时开始,并且未在 30 秒内完成,则它们将被中止。 综上所述,此类会话没有能够影响测试统计的数据,在解释测试结果时可以省略这些数据。

例子

假设测试会话持续时间为 10 分钟,测试持续时间为 30 分钟。 如果在试运行的最后五分钟内开始会话,则没有足够的时间来完成会话,系统将中止会话。

第二种类型包括具有脚本重播问题的会话。 在这些情况下,部分或所有测试会话将在试运行期间流产。 虽然您可能仍然将测试结果提交到负载测试摘要报告中,但测试会话日志可能包含的会话数比您预期的要少或根本没有统计数据(如果所有测试会话都中止)。 要用此类未完成的会话排除测试,您需要解决脚本重播中出现的问题。

有两个主要问题导致脚本执行的流产:

  • 在脚本执行开始时发生的持续错误并显著增加脚本持续时间。 此类会话将在脚本完成超时(15 分钟)中止。
  • 当测试持续时间短于实际脚本持续时间时,脚本持续时间和测试持续时间不一致。 在这种情况下,将没有足够的时间来完成脚本重播,所有测试会话将在测试完成后中止。

在本文中,我们将仔细研究每种类型的未完成会议,并就如何避免相关问题提供建议。

具有脚本错误的会话

在脚本执行开始时重播脚本时发生的错误是未完成会话的第二个常见原因。 例如,由于负载下减速或脚本错误(例如,无效输入数据、验证失败),可能会发生错误。 如果 LoadView 未能重播脚本中的操作,则它会等待动作完成超时(根据操作类型从 50 秒到 2 分钟不等),然后转发到脚本中的下一个操作。 通常,脚本开头出现的错误会导致后续操作失败。 脚本中出现的故障操作更多,脚本持续时间将增加更多等待时间。 因此,当脚本很长时,脚本持续时间可能会显著增加并超过脚本完成超时(15 分钟)。 在这种情况下,LoadView 将自动中止会话。

如果问题在试运行期间持续存在,则所有会话都将流产,测试结果将不正确。 要排除此类问题,请查看未完成的会话详细信息和性能报告,并修复相应的脚本错误。

例子

假设您创建了一个脚本,开头有登录步骤,每个导航后有几个导航操作,然后是关键字验证。 如果由于脚本中提供的登录数据错误,系统未能在开始时重播登录步骤,则所有后续操作都将生成错误。

假设脚本持续时间为 2 分钟,则记录 6 个导航操作和 6 个相关关键字验证操作。 系统将在每个导航上等待 120 秒(导航完成超时)以完成操作,然后跳转到后续的关键字验证。 由于导航步骤因登录数据错误而失败,系统将无法找到关键字,并将等待另外 50 秒(验证完成时间)来完成验证。 在这种情况下,总等待时间是:

等待时间=7*(120秒+50)=1020秒或约17分钟

这样,脚本的实际执行时间将超过 15 分钟的超时,系统将中止包含错误并将其标记为未完成的会话。

由于测试持续时间短而未完成的长会话

测试会话流产的另外一个原因是测试脚本很长,而测试持续时间太短,无法重播整个脚本。 为了避免在测试中出现此类未完成的会话,请确保您的测试持续时间足以完成脚本重播。 为此,配置测试执行计划,使 测试持续时间 值至少比实际脚本持续时间大 5 倍:

Test Duration = Script Duration * 5

有时,脚本的实际持续时间可能不清楚,因为某些步骤(如关键字验证或步骤之间的延迟)可能会增加它。 此外,LoadView 会自动添加 用户延迟 以模拟真实的用户行为。 要查找脚本的实际持续时间,请检查测试设备验证结果。

未完成的会话和负载测试错误统计

未完成的会话不影响测试错误统计。 但是,如果有必要,您可以将它们包含在负载测试报告中。