2017-04-13 106 views
3

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

  1. 验证dynamodb表existency
  2. 验证桶是否在S3的事件触发的存在与否。
  3. 验证s3存储桶中的文件数并在Dynamodb表中记录计数。

回答

0

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

例如,你可以

  1. 激活DynamoDB
  2. 模拟
  3. 创建DynamoDB表
  4. 项目添加到表
  5. 检索表中的项目,看看他们存在

如果您正在为DynamoDB和S3构建功能,则可以同时使用mock_s3mock_dynamodb2方法从moto

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