概述

AWS 上的分布式负载测试可自动执行大规模性能测试,从而展示您的应用程序在不同负载条件下的运行表现,并在应用程序的整个生命周期(包括开发、预发布、生产及后期阶段)中识别潜在的性能问题。这款 AWS 解决方案能够模拟从数百到数百万不等的用户及事务,无需预置用户或服务器即可生成一致的事务。
该解决方案深入分析了多个关键领域,例如 Amazon Elastic Compute Cloud(Amazon EC2)实例、Amazon Elastic Container Service(Amazon ECS)或 Amazon Elastic Kubernetes Service(Amazon EKS)的可扩展性与可靠性;AWS Lambda 函数的冷启动和执行时间;Amazon Relational Database Service(Amazon RDS)的数据库查询性能;以及 Amazon CloudFront 的响应时间。通过模拟真实的负载场景,您能够在性能与成本效益之间实现基础设施的优化。
优势

通过准确了解应用程序在不同负载条件下的性能表现,合理规划基础设施规模,实现资源的高效分配,从而节省成本。
您可以通过调度负载测试或将此解决方案集成到持续集成、持续交付(CI/CD)管道中来实现负载测试自动化,从而简化测试流程。
从多个 AWS 区域模拟真实世界的流量,评测应用程序在不同地域负载下的运行情况,从而优化全球性能。
设计分布式负载测试并将其与 JMeter 脚本无缝,使您能够根据应用程序的独特需求定制测试。
技术详情

第 1 步
Amazon API Gateway API 可调用解决方案的微服务(AWS Lambda 函数)。
第 2 步
微服务提供业务逻辑来管理测试数据和运行测试。
第 3 步
这些微服务还与 Amazon Simple Storage Service(Amazon S3)、Amazon DynamoDB 和 AWS Step Functions 交互,以运行测试方案并为测试方案详细信息提供存储。
第 4 步
Amazon Virtual Private Cloud(Amazon VPC)网络拓扑结构包含在 AWS Fargate 上运行的解决方案 Amazon Elastic Container Service(Amazon ECS)容器。
第 5 步
容器包含 Taurus 负载测试 Open Container Initiative(OCI)合规容器映像,该映像可用于生成测试应用程序性能的负载。Taurus 是一个开源测试自动化框架。容器映像由 AWS 托管在 Amazon Elastic Container Registry (Amazon ECR) 公有存储库中。
第 6 步
由 AWS Amplify 提供支持的 Web 控制台部署到进行了静态 Web 托管配置的 S3 存储桶中。
第 7 步
Amazon CloudFront 提供至该解决方案的网站存储桶内容的安全公有访问。
第 8 步
初次配置期间,该解决方案还会创建一个默认解决方案的管理员角色,并且会向客户指定的用户电子邮件地址发送访问邀请。
第 9 步
Amazon Cognito 用户群体管理对控制台和 API Gateway API 的用户访问权限。
第 10 步
当您部署此解决方案后,您可以使用 Web 控制台创建定义一系列任务的测试方案。
第 11 步
这些微服务使用此测试方案在指定 AWS 区域中运行“Fargate 上的 Amazon ECS”任务。
第 12 步
除在 Amazon S3 和 DynamoDB 中存储结果外,测试完成后,输出结果还将录入 Amazon CloudWatch。
第 13 步
如果选择裡数据选项,则解决方案会在测试期间,将 Fargate 任务的 CloudWatch 日志发送到 Lambda 函数,用于测试运行的每个区域。
第 14 步
然后,Lambda 函数将数据发布到部署主堆栈所在区域的 AWS IoT Core 中的相应主题。Web 控制台订阅了该主题,您可以在 Web 控制台中运行测试时看到数据。

“在 Calabrio,我们的使命是帮助联络中心更智能、更快捷、更高效地工作。我们需要快速为一位重要客户设计一项全新的高性能功能。我们利用 AWS 上的分布式负载测试来大规模测试系统的性能,无需购买昂贵的企业测试许可证,也无需为开源工具编写自定义编排代码。借助这一 AWS 解决方案,我们在超出预期六倍的流量下设计并执行测试,并成功提前推出了这一新功能。”
相关内容

无论您是私人企业还是公共部门服务,您都需要确信您的应用程序可以随着用户负载的增加而扩展。AWS 上的分布式负载测试使您可以自动化应用程序测试、了解如何大规模执行测试,以及在发布应用程序前解决瓶颈。