Amazon web services 如何实现无服务器web应用程序端到端测试的自动化?

Amazon web services 如何实现无服务器web应用程序端到端测试的自动化?,amazon-web-services,aws-lambda,aws-api-gateway,serverless,aws-serverless,Amazon Web Services,Aws Lambda,Aws Api Gateway,Serverless,Aws Serverless,因此,我的应用程序堆栈在prod中如下所示: 后端:AWS API网关+Lambda+DynamoDB+ElastiCache(redis) 后端-algo:长时间运行的进程-在ECS上运行的停靠Java应用程序(Fargate) 前端:Angular应用程序,由S3提供 我想用于端到端测试,我想用于构建服务器 如何创建一个允许端到端测试运行的环境 选项: 1) 每次运行端到端测试时,使用Terraform为基础架构编写脚本并创建/拆除整个环境。就启动时间而言,这听起来像是一个巨大的开销。另

因此,我的应用程序堆栈在prod中如下所示:

  • 后端:AWS API网关+Lambda+DynamoDB+ElastiCache(redis)
  • 后端-algo:长时间运行的进程-在ECS上运行的停靠Java应用程序(Fargate)
  • 前端:Angular应用程序,由S3提供
我想用于端到端测试,我想用于构建服务器

如何创建一个允许端到端测试运行的环境

选项:

1) 每次运行端到端测试时,使用Terraform为基础架构编写脚本并创建/拆除整个环境。就启动时间而言,这听起来像是一个巨大的开销。另外,完全编写脚本的环境创建和设置听起来需要做很多工作

2) 创建一个专用的、长寿命的环境,我们将以增量方式部署该环境。这听起来会变得一团糟——对于运行测试的地方来说并不理想

3) 这样我们就可以在本地运行环境。因此,也许可以使用AWS或类似的项目


最后一个选项可能也回答了本地开发环境设置的问题,但是本地模仿无服务器技术的一切似乎都是测试版,我担心如果我沿着这条路走下去,我可能会在投入大量时间后遇到一些问题……

“此外,完全编写脚本的环境创建和设置听起来需要做很多工作“-是的。这也是正确的做法。它不仅允许您对代码进行版本设置,还允许您对代码运行的环境进行版本设置。自动化您的部署不仅仅是您的代码。我推荐这个

您可以使用无服务器框架将应用程序编码为代码,并创建测试



在我这方面,我将我的测试策略划分如下:

Api: -单元测试:(使用您喜欢的语言框架) -集成测试:这取决于您的Infrascode选择,如果您使用SAM或无服务器框架,那么您将能够在本地将事件直接注入到您的函数中。如果想添加像DynDoDB或S3交互这样的集成部分,则应该考虑使用LoopStalk()来模拟这些服务。 正面: -对于这一部分,我总是使用存根模拟API请求,并且只测试前端部分(我之前已经测试过API部分)。然后您将能够使用cypress或其他框架。

使用e2e和automation runner怎么样, 它允许您构建测试工作流,以自动化构建、部署、数据填充和验证(NoSQL:DynamoDB、Firebase或SQL:MySQL、BigQuery、PostgreSQL等)、日志(cloud watch)、消息总线(SNS、SQS、cloud Pus/Sub)、触发backrond或发送HTTP请求

你可以找到一些lambda,cloud函数/

或更多e2e生产项目:


谢谢,我支持将基础架构作为代码。对于短暂的环境(如本地开发人员、本地qa和端到端测试),这仍然是正确的方法吗?