Amazon web services 如何实现无服务器web应用程序端到端测试的自动化?
因此,我的应用程序堆栈在prod中如下所示: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为基础架构编写脚本并创建/拆除整个环境。就启动时间而言,这听起来像是一个巨大的开销。另
- 后端:AWS API网关+Lambda+DynamoDB+ElastiCache(redis)
- 后端-algo:长时间运行的进程-在ECS上运行的停靠Java应用程序(Fargate)
- 前端:Angular应用程序,由S3提供
最后一个选项可能也回答了本地开发环境设置的问题,但是本地模仿无服务器技术的一切似乎都是测试版,我担心如果我沿着这条路走下去,我可能会在投入大量时间后遇到一些问题……“此外,完全编写脚本的环境创建和设置听起来需要做很多工作“-是的。这也是正确的做法。它不仅允许您对代码进行版本设置,还允许您对代码运行的环境进行版本设置。自动化您的部署不仅仅是您的代码。我推荐这个 您可以使用无服务器框架将应用程序编码为代码,并创建测试
在我这方面,我将我的测试策略划分如下: 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生产项目: