View a markdown version of this page

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

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

运行测试场景

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

场景详细信息视图

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

任务状态表

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

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

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

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

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

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

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

测试执行工作流程

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

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

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

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

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

  5. 结果解析 -测试结束时,后台解析任务汇总并处理来自所有区域的结果。

测试运行状态

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

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

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

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

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

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

使用实时数据进行监控

如果您在创建测试场景时启用了实时数据,则可以在测试运行期间查看实时指标。实时指标部分显示四张图表,这些图表会随着测试的进展而持续更新,数据以一秒钟的间隔汇总。

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

图表描述

平均响应时间

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

虚拟用户

显示每个区域中活跃产生负载的并发虚拟用户的数量。该图显示了虚拟用户在测试期间如何提高水平并保持目标并发水平。

成功的请求

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

失败的请求

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

Multi-Region 可视化

在多个区域运行测试时,每个图表同时显示所有区域的数据。每个图表底部的图例标识了哪种颜色代表每个区域(例如,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执行该步骤,该步骤将再次运行 task-canceler Lambda 函数以停止所有剩余任务

注意

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