涉及时间触发 azure 功能的验收测试功能

Posted

技术标签:

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

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

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

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

【问题讨论】:

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

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

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

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

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

【讨论】:

以上是关于涉及时间触发 azure 功能的验收测试功能的主要内容,如果未能解决你的问题,请参考以下文章

验收测试和功能测试的区别?

单元测试、功能测试、验收测试和集成测试有啥区别? [关闭]

验收/功能测试中的性能分析

程序员使用啥技术来编写可维护的集成/功能/验收测试?

149下单元测试集成测试系统测试验收测试回归测试等

Codeception - 验收测试有效,但功能测试无效