播种数据以进行AWS无服务器应用程序的验收测试

时间:2019-10-17 18:51:28

标签: amazon-web-services aws-lambda automated-tests serverless acceptance-testing

我开始使用AWS Lambda和无服务器CLI自学无服务器开发。到目前为止,一切进展顺利。但是,我在接受测试方面遇到了麻烦。

到目前为止,我正在做的是:

  • 使用生成的阶段名称将堆栈部署到AWS-我正在使用CI作业ID
  • 针对此部署运行所有测试
  • 删除部署
  • 使用“ Dev”阶段名称将堆栈部署到AWS

这很好,直到我需要一些数据为止。

在没有数据的情况下测试端点很容易-这是默认状态。因此,我可以测试GET /users/badid返回404。

为测试设置测试数据的典型方法是什么?

在我的正常开发中,我是通过在本地docker compose堆栈中运行完整的堆栈-UI,服务,数据库来实现的,测试可以直接与它们对话。这是要遵循的过程吗?测试是否直接与各种AWS数据存储对话?如果是这样,如何处理不同CF堆栈中的多个(DynamoDB)表,例如用于测试UI?

如果这不是正常的方法,那是什么?

还有,在测试之间清除数据的标准方法吗?例如,如果数据在该测试中不是恒定不变的,我就无法安全地测试搜索端点。 (如果未清除数据,那么系统中的数据将取决于测试运行的顺序,这很不好)

欢呼

1 个答案:

答案 0 :(得分:0)

因为,这与验收测试有关-应该将其设计为少关注体系结构(技术方面),而是更多地关注业务价值。毕竟,这种测试应该是黑匣子。从SLS或mSOA的经验来看,测试设置和挑战都非常相似。

  

为测试设置测试数据的典型方法是什么?

根据您的上下文,有很多方法/模式可以在这里完成工作。最适合我的是:

您可以在Fixture Teardown Patterns中查看

  

清除测试之间数据的标准方法

也许您不需要

  

让测试直接与各种AWS数据存储对话

因为您可能会创建不切实际的状态,所以如果您可以直接点击API /端点来为您完成工作。例如,无需管理多个DynamoDB实例的PutItem调用,而只需点击register新的用户API。有关后门操纵层here的更多信息。