运行测试场景 - AWS 上的分布式负载测试

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

运行测试场景

创建测试场景后,您可以立即运行它,也可以将其安排在将来的特定时间运行。当您导航到正在运行的测试时,控制台会显示场景详细信息选项卡,其中包含实时任务状态和指标。

显示任务状态和实时指标的运行测试场景

场景详细信息视图

场景详细信息选项卡显示有关您的测试的关键信息。每个区域的任务状态表实时信息。

任务状态表

任务状态表显示每个区域的实时信息:

  • 区域-正在运行任务的 AWS 区域

  • 任务计数-为该区域配置的任务总数

  • 并发-每项任务的虚拟用户数

  • 正在运行-当前正在执行测试的任务数

  • 待处理-等待启动的任务数

  • 置备-正在置备的任务数

测试执行工作流程

测试开始时,会出现以下工作流程:

  1. 任务预置-该解决方案在指定的 AWS 区域预置容器(任务)。任务显示在 “配置” 列中。

  2. 任务启动-解决方案会继续配置任务,直到每个区域达到目标任务数。任务从 “置备” 变为 “待处理”,再到 “正在运行”。

  3. 流量生成-在解决方案配置一个区域中的所有任务后,它们会开始向您的目标终端节点发送流量。

  4. 测试执行-测试在配置的持续时间(上升 + 保持时间)内运行。

  5. 结果解析-测试结束后,后台解析作业会汇总和处理来自所有区域的结果。

测试运行状态

测试运行可以具有以下状态:

  • 已计划-测试计划在将来运行。

  • 正在运行-测试目前正在进行中。

  • 已取消-用户取消了正在进行的测试运行。

  • 错误-测试运行遇到错误。

  • 完成-测试运行成功完成,结果已准备就绪。

使用实时数据进行监控

如果您在创建测试场景时启用了实时数据,则可以在测试运行时查看实时指标。实时指标部分显示四个图表,这些图表会随着测试的进行而不断更新,数据每隔一秒钟聚合。

显示实时测试性能数据的实时指标图表

图表描述

平均响应时间

显示每个区域处理的请求的平均响应时间(以秒为单位)。Y 轴以秒为单位显示响应时间,X 轴显示一天中的时间。每个区域在图例中用不同的颜色表示。

虚拟用户

显示每个区域中主动生成负载的并发虚拟用户数量。该图显示了虚拟用户在测试期间如何增加以及如何保持目标并发级别。

成功请求

显示一段时间内每个区域成功请求的累积计数。该图显示了成功请求的处理速率。

失败的请求

显示每个区域一段时间内失败请求的累积计数。计数较低或为零表示测试执行良好。

多区域可视化

在多个区域运行测试时,每个图表会同时显示所有区域的数据。每个图表底部的图例标识了哪种颜色代表每个区域(例如 us-west-2 和 us-east-1)。

技术实施

Fargate 任务的 CloudWatch 日志组包含一个用于捕获测试结果的订阅筛选器。检测到该模式后,Lambda 函数会对数据进行结构化并将其发布到 AWS IoT Core 主题中。Web 控制台订阅此主题并实时显示指标。

注意

实时数据是短暂的,仅在测试运行时可用。Web 控制台最多可保存 5,000 个数据点,之后最旧的数据将替换为最新数据。如果页面刷新,图表将变为空白,并从下一个可用数据点开始。测试完成后,该解决方案会将结果数据存储在 DynamoDB 和 Amazon S3 中。如果尚无可用数据,则图表会显示 “没有可用数据”。

取消考试

您可以从 Web 控制台取消正在运行的测试。取消测试时,会出现以下工作流程:

  1. 取消请求将发送到 microservices API

  2. microservicesAPI 调用 task-canceler Lambda 函数,该函数会停止所有当前启动的任务

  3. 如果 task-runner Lambda 函数在初始取消调用后继续运行,则任务可能会继续短暂启动

  4. task-runnerLambda 函数完成后,AWS Step Functions 继续Cancel Test执行该步骤,该步骤将再次运行 Lamb task-canceler da 函数以停止任何剩余的任务

注意

取消的测试需要一段时间才能完成关闭过程,因为解决方案会终止所有容器。清理完所有资源后,测试状态将更改为 “已取消”。