在python中自动测试aws lambda函数

问题描述 投票:3回答:1

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

  1. 验证dynamodb表的存在性
  2. 在s3中验证存储桶是否存在以进行事件触发。
  3. 验证s3存储桶中的文件计数和Dynamodb表中的记录计数。
python automated-tests aws-lambda python-unittest
1个回答
0
投票

这可以使用motounittest完成。 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/

© www.soinside.com 2019 - 2024. All rights reserved.