2017-04-13 102 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/