我有一个aws lambda函数,它将在dynamodb中为s3存储桶中创建的每个对象写入s3文件元数据信息,为此我在s3存储桶上有事件触发器 . 所以我打算使用python自动化测试 . 任何人都可以帮助我如何使用unittest包自动化这个lambda函数来测试以下内容 .
验证dynamodb表的存在性
在事件触发器的s3中验证存储桶是否存在 .
验证s3存储桶中的文件计数并记录Dynamodb表中的计数 .
这可以使用 moto 和 unittest 来完成 . moto 将要做的是为AWS添加有状态模拟 - 您的代码可以像往常一样继续调用 boto ,但实际上不会对AWS进行调用 . 相反, moto 将在内存中 Build 状态 .
moto
unittest
boto
例如,你可以
激活DynamoDB的模拟
创建一个DynamoDB表
向表格添加项目
从表中检索项目并查看它们是否存在
如果您're building functionality for both DynamoDB and S3, you' d同时利用 moto 中的 mock_s3 和 mock_dynamodb2 方法 .
mock_s3
mock_dynamodb2
我写了一个关于如何做到这一点的教程(它使用 pytest 而不是 unittest ,但这应该是一个小的区别) . 看看:joshuaballoch.github.io/testing-lambda-functions/
pytest
1 回答
这可以使用
moto
和unittest
来完成 .moto
将要做的是为AWS添加有状态模拟 - 您的代码可以像往常一样继续调用boto
,但实际上不会对AWS进行调用 . 相反,moto
将在内存中 Build 状态 .例如,你可以
激活DynamoDB的模拟
创建一个DynamoDB表
向表格添加项目
从表中检索项目并查看它们是否存在
如果您're building functionality for both DynamoDB and S3, you' d同时利用
moto
中的mock_s3
和mock_dynamodb2
方法 .我写了一个关于如何做到这一点的教程(它使用
pytest
而不是unittest
,但这应该是一个小的区别) . 看看:joshuaballoch.github.io/testing-lambda-functions/