【问题标题】:Acceptance testing functionality involving time-triggered azure function涉及时间触发 azure 功能的验收测试功能
【发布时间】:2018-01-10 18:08:20
【问题描述】:

我的验收测试基础架构使用 specrun 来创建模拟用户、调用我的 Web 服务并检查结果。这适用于测试涉及用户交互(调用 REST api、发送消息等)的功能。

但是,在后端,我还有一个功能,它涉及一个时间触发的 Azure 函数,该函数对某些 azure blob 执行一些操作,并通过 eventthub 向用户发送消息。如何接受涉及此天蓝色功能的测试功能? - 因为此 azure 功能每 6 小时仅触发一次,并且运行完整 6 小时的验收测试来测试此功能是不切实际的。

有人有处理过这种情况的经验吗?你有什么建议?

【问题讨论】:

  • 在试运行的时候手动触发这样的功能够吗?
  • AFAIK,我们无法手动触发/调用时间触发 azure 函数。
  • 我认为你可以(这就是门户中的“运行”按钮所做的)
  • 但这对我不起作用。我的测试必须完全自动化。
  • 按钮只调用你可以调用的API

标签: c# azure azure-functions acceptance-testing specrun


【解决方案1】:

虽然门户网站使用管理 API 来调用函数(您可以使用它 - 浏览器的 F12 工具可以向您展示它是如何工作的),但无法保证该 API 将保持不变。

另一种方法可能是分解您的函数,以允许您从计时器或测试调用“真实”逻辑:

  1. 使用您的逻辑创建一个 QueueTrigger 函数。
  2. 创建一个将消息放入队列的 TimerTrigger。这还具有失败重试的额外好处。
  3. 创建您自己的 HttpTrigger(默认情况下受密钥保护),您可以直接从测试中调用它。让这也将消息放入队列中。

或者,您可以不使用 QueueTrigger,而是在帮助程序库中实现所有逻辑,并且仍然公开 #2 和 #3 中的函数——只需让它们成为直接调用帮助程序的瘦包装器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-02
    • 1970-01-01
    • 2011-03-23
    • 1970-01-01
    • 1970-01-01
    • 2019-12-17
    • 2021-04-24
    • 2014-08-17
    相关资源
    最近更新 更多