涉及时间触发 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 功能的验收测试功能的主要内容,如果未能解决你的问题,请参考以下文章