选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

Python 中的 AWS Lambda 函数测试

聚焦模式
Python 中的 AWS Lambda 函数测试 - AWS Lambda
注意

有关测试无服务器解决方案的技术和最佳实践的完整介绍,请参阅测试函数一章。

测试无服务器函数使用传统的测试类型和技术,但您还必须考虑对无服务器应用程序进行整体测试。基于云的测试将为您的函数和无服务器应用程序的质量提供最准确的衡量。

无服务器应用程序架构包括可通过 API 调用提供关键应用程序功能的托管服务。因此,您的开发周期应包括在函数与服务交互时验证功能的自动化测试。

如果您不创建基于云的测试,则可能会由于本地环境和已部署环境之间的差异而遇到问题。在将代码提升到下一个部署环境(例如 QA、暂存或生产)之前,您的持续集成过程应针对在云端预置的一套资源运行测试。

继续阅读本简短指南,了解无服务器应用程序的测试策略,或者访问无服务器测试示例存储库,深入了解特定于您所选语言和运行时系统的实用示例。

illustration showing the relationship between types of tests

对于无服务器测试,您仍需要编写单元集成端到端测试。

  • 单元测试 – 针对隔离代码块运行的测试。例如,验证业务逻辑以计算给定特定项目和目的地的配送费用。

  • 集成测试 – 涉及通常在云环境中交互的两个或更多组件或服务的测试。例如,验证函数是否会处理队列中的事件。

  • 端到端测试 – 验证整个应用程序行为的测试。例如,确保正确设置基础设施,并确保事件在服务之间按预期流动,以记录客户的订单。

测试无服务器应用程序

您通常会使用多种方法来测试无服务器应用程序代码,包括在云端进行测试、使用 Mock 进行测试,以及偶尔使用仿真器进行测试。

在云端进行测试

在云端进行测试对于各个阶段的测试(包括单元测试、集成测试和端到端测试)而言都很有价值。您可以针对部署在云端并与基于云的服务进行交互的代码运行测试。这种方法可以准确衡量代码的质量。

在云端调试 Lambda 函数的一种便捷方法是在控制台中使用测试事件。测试事件是函数的一个 JSON 输入。如果函数不需要输入,则事件可以是空 JSON 文档 ({})。控制台为各种服务集成提供示例事件。在控制台中创建事件后,您可以将其与团队共享,以简化测试并保持一致性。

注意

在控制台中测试函数是一种快速开始的方法,但自动化测试周期可确保应用程序质量和开发速度。

测试工具

有一些工具和技术可以加速开发反馈循环。例如,AWS SAM Accelerate 和 AWS CDK 监视模式都减少了更新云环境所需的时间。

Moto 是一个用于 Mock 模拟 AWS 服务和资源的 Python 库,以便您无需修改或稍作修改,就能使用装饰器拦截和模拟响应,以此测试函数。

Powertools for AWS Lambda(Python)的验证功可提供装饰器,以便您可以验证 Python 函数的输入事件和输出响应。

有关更多信息,请阅读博文使用 Python 对 Lambda 进行单元测试和 Mock 模拟 AWS 服务

要减少云部署迭代所涉及的延迟,请参阅 AWS Serverless Application Model(AWS SAM)AccelerateAWS 云开发工具包(AWS CDK)监视模式。这些工具会监控基础设施和代码的变更情况,再通过创建增量更新并将其自动部署到云环境中来响应这些变更。

使用这些工具的示例可在 Python 测试示例代码存储库中找到。

下一主题:

跟踪

上一主题:

日志记录
隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。