在python中自动测试aws lambda函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在python中自动测试aws lambda函数相关的知识,希望对你有一定的参考价值。
我有一个aws lambda函数,它将在dynamodb中为s3存储桶中创建的每个对象写入s3文件元数据信息,为此我在s3存储桶上有事件触发器。所以我打算使用python自动化测试。任何人都可以帮助我如何使用unittest包自动化这个lambda函数来测试以下内容。
- 验证dynamodb表的存在性
- 在s3中验证存储桶是否存在以进行事件触发。
- 验证s3存储桶中的文件计数和Dynamodb表中的记录计数。
答案
这可以使用moto
和unittest
完成。 moto
将做的是为AWS添加有状态模拟 - 您的代码可以像往常一样继续调用boto
,但实际上不会对AWS进行调用。相反,moto
将在记忆中建立状态。
例如,你可以
- 激活DynamoDB的模拟
- 创建一个DynamoDB表
- 将项目添加到表中
- 从表中检索项目并查看它们是否存在
如果您正在为DynamoDB和S3构建功能,那么您将利用mock_s3
中的mock_dynamodb2
和moto
方法。
我写了一个如何做到这一点的教程(它使用pytest
而不是unittest
,但这应该是一个小的差异)。看看:joshuaballoch.github.io/testing-lambda-functions/
以上是关于在python中自动测试aws lambda函数的主要内容,如果未能解决你的问题,请参考以下文章
AWS Lambda 自动化和 Python - 自动创建S3 Bucket lifecycle