首页 » 亚马逊云科技解决方案 » 应用程序开发与 DevOps » 分布式负载测试平台
分布式负载测试平台
用于 Web 应用程序性能测试的负载测试工具
概览
亚马逊云科技为客户提供可扩展、分布式、无服务器架构,以交付用于 Web 应用程序性能测试的负载测试工具。此解决方案可自动启动并配置在 Amazon Fargate 上运行的容器,从而帮助您轻松创建和模拟数千个连接用户,无需预置服务器便能每秒钟生成选定数量的交易。该解决方案提供应用程序性能监控,可帮助您理解您的应用程序如何以预期负载大规模地完成执行,在发布应用程序前识别瓶颈。
功能特性
无服务器化
您无需运维底层计算资源。 Amazon ECS Fargate 会依据您在 UI 控制面板上设置的并发请求数量,对底层资源进行分配,调度及扩展。
可视化
分布式负载测试平台包括 Amazon CloudWatch 控制面板,它可以近乎实时地显示您的自动化测试包含的所有任务的输出。
开源及定制化
包括负载引擎,测试框架,测试计划逻辑和测试仪表板在内的所有组件都是开源的,这意味着客户可以轻松地进行集成,自定义和审核,以确保应用的质量,灵活性和安全性。
成本优化
这个分布式负载压测平台的总体拥有成本(TCO)相较同类SaaS产品更具优势。您只需为实际的使用的服务按需付费即可。
技术详情
下图显示了您可以使用该解决方案实施指南和随附的 Amazon CloudFormation 模板自动部署的架构。
这个解决方案利用 Amazon CloudFormation 实现分布式压测平台的自动部署。整个方案由以下几个模块组成:
- 基于 Amazon API Gateway,Amazon Step Functions,Amazon Lambda 的测试调度模块。测试调度模块利用 Amazon Step Functions 实现测试流程的编排,通过 Amazon Lambda 调用 Amazon Elastic Container Service(Amazon ECS) Fargate 来启动容器集群并行执行测试脚本。
- 基于 Amazon ECS Fargate 的负载引擎模块。容器集群资源的创建,扩展,销毁等运维工作则交由 Amazon ECS Fargate 负责。集群单个任务完成后会将测试结果以 .xml 的格式存储在 Amazon S3 中留待进一步处理。
- 基于 Amazon Amplify 构建的Web控制台。这个控制台托管在 Amazon S3 中,通过 Amazon CloudFront 提供对该 Web 控制台的访问加速和安全调用。
- 基于 Amazon DynamoDB,Amazon S3 的测试数据存储模块。待所有指定任务完成后,测试结果将通过 Amazon Lambda 进行汇聚并存储在 DynamoDB 中。同时,利用 Amazon CloudWatch 实现对应图表的展示。
注意在 Amazon CloudFormation 启动时,您需要在选项中输入已备案的自有域名(CNAME)以便部署过程中同 Amazon CloudFront 进行关联。待解决方案部署完毕后,您可以通过该自有域名访问 Web 控制台开始创建测试用例,监控测试流程和查看测试结果。
除此之外,该解决方案会创建一个 Amazon Virtual Private Cloud(Amazon VPC)。VPC 为 Amazon ECS Fargate 容器集群提供了安全可靠,灵活可配的虚拟联网环境。
这个解决方案采用开源的 Taurus 测试自动化框架。Taurus主要被用于生成测试负载以测试用户应用程序性能。此解决方案在部署的时候,会从 Amazon 公共镜像库(Amazon ECR Public Gallery)中拉取含有 Taurus 及其依赖包的 Docker Image 此链接。出于安全性和网络性能考虑,用户也可以将该容器镜像拉取到本地并上传托管到您自己的 Amazon Elastic Container Registry(Amzon ECR)中。