python 中的 aws lambda 函数的自动化测试

Vij*_*jay 5 python automated-tests python-unittest aws-lambda

我有一个 aws lambda 函数,它将在 dynamodb 中为 s3 存储桶中创建的每个对象写入 s3 文件元数据信息,为此我在 s3 存储桶上有事件触发器。所以我计划使用 python 进行自动化测试。任何人都可以帮助我如何自动化此 lambda 函数以使用 unittest 包测试以下内容。

  1. 验证 dynamodb 表是否存在
  2. 验证s3中是否存在bucket以进行事件触发。
  3. 验证 s3 存储桶中的文件计数和 Dynamodb 表中的记录计数。

jay*_*jay 1

moto这可以使用和来完成unittest。要做moto的就是为 AWS 添加一个有状态模拟 - 您的代码可以boto像平常一样继续调用,但实际上不会对 AWS 进行调用。相反,moto将在内存中建立状态。

例如,您可以

  1. 激活 DynamoDB 的模拟
  2. 创建 DynamoDB 表
  3. 将项目添加到表中
  4. 从表中检索项目并查看它们是否存在

如果您正在为 DynamoDB 和 S3 构建功能,您可以mock_s3利用.mock_dynamodb2moto

我写了一个关于如何做到这一点的教程(它使用pytest而不是,unittest但这应该是一个微小的区别)。查看:joshuaballoch.github.io/testing-lambda-functions/